Untitled

 avatar
unknown
plain_text
12 days ago
901 B
1
Indexable
# 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