Update tradingagents/cross_asset_correlation/multi_asset_processor.py
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
This commit is contained in:
parent
528dcd8b57
commit
b7954d4723
|
|
@ -346,17 +346,22 @@ class MultiAssetProcessor:
|
||||||
class_correlations.loc[class1, class2] = np.nan
|
class_correlations.loc[class1, class2] = np.nan
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Get correlations between classes
|
# Get correlations between classes using vectorized operations
|
||||||
class_corr_values = []
|
sub_matrix = corr_matrix.loc[assets1, assets2].values
|
||||||
for a1 in assets1:
|
|
||||||
for a2 in assets2:
|
if class1 == class2:
|
||||||
if a1 != a2: # Exclude self-correlation
|
# For intra-class correlation, use upper triangle (excluding diagonal)
|
||||||
corr_value = corr_matrix.loc[a1, a2]
|
if len(assets1) > 1:
|
||||||
if not np.isnan(corr_value):
|
corr_values = sub_matrix[np.triu_indices_from(sub_matrix, k=1)]
|
||||||
class_corr_values.append(corr_value)
|
else:
|
||||||
|
corr_values = np.array([])
|
||||||
if class_corr_values:
|
else:
|
||||||
class_correlations.loc[class1, class2] = np.mean(class_corr_values)
|
# For inter-class correlation, use the whole sub-matrix
|
||||||
|
corr_values = sub_matrix.flatten()
|
||||||
|
|
||||||
|
# Calculate average correlation, ignoring NaNs
|
||||||
|
if corr_values.size > 0:
|
||||||
|
class_correlations.loc[class1, class2] = np.nanmean(corr_values)
|
||||||
else:
|
else:
|
||||||
class_correlations.loc[class1, class2] = np.nan
|
class_correlations.loc[class1, class2] = np.nan
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue