Untitled
# Define the metrics to analyze for outliers metrics = ['Spread', 'Junior Bonds (%)', 'Financial Sector (%)', 'Cash (%)'] # Create a copy of the dataframe to preserve the original df_outliers = df_account_metrics.copy() # Initialize columns to store outlier flags for metric in metrics: df_outliers[f'{metric} Outlier'] = False # Identify outliers for each strategy for strategy in df_outliers['Strategy'].unique(): df_strategy = df_outliers[df_outliers['Strategy'] == strategy] for metric in metrics: mean = df_strategy[metric].mean() std_dev = df_strategy[metric].std() # Flag outliers (more than 1 standard deviation away) df_outliers.loc[ (df_outliers['Strategy'] == strategy) & ((df_outliers[metric] > mean + std_dev) | (df_outliers[metric] < mean - std_dev)), f'{metric} Outlier' ] = True
Leave a Comment