Introduction¶

This is the code for our Master Thesis "A Comparative Study of Active Management in Norway and the US: Analysing Mutual Fund Performance and Fees" by by Lars Christian Wiig & Hjalmar Kristoffer Bjørgan. In this notebook we have divided our code into sections with a little introduction to each section. The code uses a excel file that is included.

In [ ]:
# Imports
import pandas as pd
import seaborn as sns
import numpy as np
import scipy as sp
import matplotlib.pyplot as plt
import statsmodels.api as sm
from statsmodels.stats.diagnostic import het_white
from statsmodels.stats.diagnostic import acorr_breusch_godfrey
import datetime as dt
import warnings
warnings.filterwarnings('ignore')

pd.options.display.float_format = '{:.3f}'.format # To not get scientific notation
In [ ]:
Norway = False # Use Norwegian Data else using US Data
level = 100 # Sign level -> set to 100 for using all results

# Change benchmark
change_benchmark = False
bench = 'MSCI_ETF' #If benchmark is changed

# Period
min_months = 12 # Need atleast this amount of months to be in the dataset
start_year = 2012 # Starting from this year
end_year = 2022 # Whole year

Preparing data¶

In this section, we prepared the dataset. Firstly, we imported the data from Excel, which was already imported from Eikon. Then, we structured the necessary dataframes required for conducting our analysis. Further, we removed funds and standardize the gross returns, net returns, expense ratio, and factors.

Preparing data¶

In [ ]:
# Selecting country
if Norway:
    sheet = 'NAV_NOR'
    factor = 'FF+MOM-GLOBAL'
    sheet_for_EXP_ratios = 'EXP_NOR'
    currency = 'NOK'
else:
    sheet = 'NAV_US'
    factor = 'FF+MOM-GLOBAL'
    sheet_for_EXP_ratios = 'EXP_US'
    currency = 'USD'

if Norway:
    var = 'Norway'
else:
    var = 'USA'
In [ ]:
# Importing excel files
NAV = pd.read_excel('fund_data.xlsx', sheet_name=sheet)
FF = pd.read_excel('fund_data.xlsx', sheet_name=factor)
exp = pd.read_excel('fund_data.xlsx', sheet_name=sheet_for_EXP_ratios)
FF['date'] = pd.to_datetime(FF['date'], format='%Y%m%d') #standarizing dates

# Setting dates as index
FF.set_index(FF['date'], inplace=True)
NAV.set_index(NAV['date'], inplace=True)
exp.set_index(exp['date'], inplace=True)

NAV.columns = list(map(lambda x: x.replace(' - TOT RETURN IND',''),NAV.columns))
exp.columns = list(map(lambda x: x.replace(' - TOT EXPENSE RATIO',''),exp.columns))


# Limit the columns to those that is being used
F = FF[['Mkt-RF','SMB','HML','MOM','RMW','CMA','RF']]



# Making a matrix for all results of Regressions
results = pd.DataFrame()
#results[['Name','Alpha','Mkt-RF','SMB','HML','MOM','EXP','ADJ_R_SQ']] = 0
results[['Name','Alpha','Mkt-RF','SMB','HML','MOM','RMW','CMA','EXP','ADJ_R_SQ']] = 0
results['Name'] = NAV.columns[1:]
results.set_index(NAV.columns[1:],inplace=True)
                  
# The result matrices
res_CAPM_ = results[['Alpha','Mkt-RF','ADJ_R_SQ']]
res_FFC_ = results[['Alpha','Mkt-RF','SMB','HML','MOM','ADJ_R_SQ']]
res_FF3_ = results[['Alpha','Mkt-RF','SMB','HML','ADJ_R_SQ']]
res_FFC_EXP = results[['Alpha','Mkt-RF','SMB','HML','MOM','EXP','ADJ_R_SQ']]
res_FF5_ = results[['Alpha','Mkt-RF','SMB','HML','RMW','CMA','ADJ_R_SQ']]

# Used for EXP ratio storage 
temp = res_FFC_EXP.copy(deep=True)

# Removing the date column since it is set as index
exp = exp.drop(['date'],axis=1)
NAV = NAV.drop(['date'],axis=1)

# Setting the start and end year of the data set as inputed above
NAV = NAV[str(start_year):str(end_year)]
exp = exp[str(start_year):str(end_year)]
F = F[str(start_year):str(end_year)]

# List of factors
CAPM = ['Mkt-RF']
FAMA3 = ['Mkt-RF','SMB','HML']
FAMAC = ['Mkt-RF','SMB','HML','MOM']
FAMA5 = ['Mkt-RF','SMB','HML','RMW','CMA',] #NOTE

# USD / NOK - > FX rate 
FX_RATE = FF['USD/NOK']

# Mkt return (not excess, used for plotting) & IR
Mkt = FF['Mkt-RF']+FF['RF']

# Checking if Using nok, if we do we need to convert to USD
# since we wont make currency appreciation / depreciation impact our results
if currency == 'NOK':
    NAV = NAV.mul(FX_RATE[str(start_year):str(end_year)],axis=0)
In [ ]:
F
Out[ ]:
Mkt-RF SMB HML MOM RMW CMA RF
date
2012-01-31 0.056 0.021 -0.008 -0.068 -0.020 -0.010 0.000
2012-02-29 0.049 -0.008 -0.003 -0.026 -0.004 -0.002 0.000
2012-03-30 0.012 -0.004 0.000 0.036 0.005 0.012 0.000
2012-04-30 -0.011 0.002 -0.017 0.049 0.022 -0.001 0.000
2012-05-31 -0.089 -0.005 0.001 0.062 0.021 0.018 0.000
... ... ... ... ... ... ... ...
2022-08-31 -0.042 0.004 0.025 0.033 -0.026 0.013 0.002
2022-09-30 -0.095 -0.017 0.019 0.034 -0.012 0.012 0.002
2022-10-31 0.068 -0.020 0.044 0.026 0.004 0.033 0.002
2022-11-30 0.072 -0.002 -0.003 -0.019 0.022 0.010 0.003
2022-12-30 -0.043 0.021 0.025 0.038 -0.005 0.033 0.003

132 rows × 7 columns

In [ ]:
# Change Benchmark from MSCI World Dev
if change_benchmark == True:
    BENCH = FF[bench].dropna().pct_change(1).loc[str(start_year):str(end_year)].dropna()
    F['Mkt-RF'] = BENCH
    #F['bench'] = BENCH
    F = F.dropna()
In [ ]:
# This is a sorting function, it stores the fund that is feasible and remove those who is not

def sort():
    EW_list = [] # Funds that has the right attributes get added to this list
    EW_clean = [] # Check if fund also have Expense ratio
    EW_final = [] # Checking if there is enough returns when we are looking at gross ret
    for i in NAV.columns:
        FF_FUND = F[['Mkt-RF','RF']].copy(deep=True)
        ret = NAV[i].pct_change()
        ret = ret.replace(0,np.NaN)
        FF_FUND[i] = ret # returns
        FF_FUND = FF_FUND.dropna() # Removing all zero returns
        FF_FUND = FF_FUND.loc[str(start_year):str(end_year)]
        if len(FF_FUND) <= min_months: # Remove fund with less than 'min_months' months
            continue
        if 'IND' in i: # Remove index funds
            continue
        EW_list.append(i) # Adding those funds that made it throght to this list
    for i in exp.columns:
        if '#ERROR' in i or i not in EW_list:
            continue
        else:
            EW_clean.append(i)
            
    for i in EW_clean:
        ret = NAV[i].pct_change()
        ret = ret.replace(0,np.NaN)
        ret = ret*exp[i]/exp[i]
        exp[i] = ret * exp[i]/ret
        GROSS = ret+((exp[i]/100/12))
        GROSS = GROSS.dropna()
        if len(GROSS) <= min_months: # Remove fund with less than 'min_months' months
            continue
            
        EW_final.append(i)
        
        
    EW_list = EW_final
    return EW_list
In [ ]:
EW_list = sort() # Funds that has the right attributes get added to this list
In [ ]:
print(f'''There are {len(EW_list)} of {len(NAV.columns)} funds that has atleast {min_months} gross returns from {start_year} to {end_year}''')
There are 251 of 284 funds that has atleast 12 gross returns from 2012 to 2022
In [ ]:
# Only using feaseble data
exp = exp[EW_list]
NAV = NAV[EW_list]
In [ ]:
ret = NAV.pct_change() # Making return from NAV
ret = ret.replace(0,np.NaN) # Setting 0 as NAN since 0 in return means that the fund is dead
ret = (exp * ret) / exp # Stadarizing for matching with Expense ratio
ret
Out[ ]:
1290 GLOBAL TALENTS FUND A 1290 SMART BETA EQUITY FUND I AB GLOBAL CORE EQUITY PORTFOLIO ADV AB SUSTAINABLE GLOBAL THEMATIC FUND A AGF GLOBAL EQUITY FUND I DEAD - Liquidated AGF GLOBAL SUSTAINABLE EQUITY FUND I AMG TRILOGY GLOBAL EQUITY FUND I AQR GLOBAL EQ.FD.CL.I ARTIO SELECT OPPS.FD. INCO.CL.A ADLER VALUE FUND INSTITUTIONAL ... WASATCH GLOBAL VALUE FUND INVESTOR WELLS FARGO INTRINSIC WORLD EQTY FD A WESTWOOD GLOBAL EQUITY FD.INSTL.SHS. WILLIAM BLAIR GLOBAL LEADERS FD.CL.I WINTERGREEN FD. DEAD - Liquidated WINTON GLOBAL EQUITY PORTFOLIO INSTITUTIONAL WORLD SELECT EQUITY FUND A YORKTOWN CAPITAL APPRECIATION FUND A ABRDN EMERGING MARKETS EX-CHINA FUND A ABRDN GLOBAL EQUITY IMPACT FUND A
date
2012-01-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-29 NaN NaN NaN 0.052 NaN NaN 0.053 0.056 0.050 NaN ... 0.033 0.053 NaN 0.063 0.027 NaN NaN 0.025 0.040 0.053
2012-03-30 NaN NaN NaN -0.003 NaN NaN 0.010 0.010 0.015 NaN ... 0.011 0.021 NaN 0.029 -0.011 NaN NaN 0.007 0.013 -0.010
2012-04-30 NaN NaN NaN -0.027 NaN NaN -0.024 -0.024 -0.011 NaN ... -0.010 0.001 NaN 0.012 0.006 NaN NaN -0.003 -0.005 -0.002
2012-05-31 NaN NaN NaN -0.122 NaN NaN -0.092 -0.092 -0.095 NaN ... -0.068 -0.091 NaN -0.091 -0.065 NaN NaN -0.064 -0.091 -0.107
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2022-08-31 NaN -0.040 -0.047 -0.065 NaN -0.050 NaN -0.031 NaN -0.025 ... -0.027 NaN NaN -0.065 NaN NaN -0.035 -0.045 -0.009 -0.057
2022-09-30 NaN -0.082 -0.101 -0.104 NaN -0.093 NaN -0.098 NaN -0.078 ... -0.083 NaN NaN -0.109 NaN NaN -0.090 -0.108 -0.090 -0.113
2022-10-31 NaN 0.078 0.049 0.050 NaN 0.067 NaN 0.090 NaN 0.127 ... 0.087 NaN NaN 0.058 NaN NaN 0.087 0.021 0.060 0.109
2022-11-30 NaN 0.073 0.107 0.099 NaN 0.066 NaN 0.066 NaN 0.037 ... 0.094 NaN NaN 0.093 NaN NaN 0.084 -0.024 0.085 0.121
2022-12-30 NaN -0.053 -0.075 -0.067 NaN -0.078 NaN -0.087 NaN -0.106 ... -0.074 NaN NaN -0.067 NaN NaN -0.122 -0.086 -0.266 -0.078

132 rows × 251 columns

In [ ]:
exp = (exp * ret) / ret # Stadarizing for matching
exp
Out[ ]:
1290 GLOBAL TALENTS FUND A 1290 SMART BETA EQUITY FUND I AB GLOBAL CORE EQUITY PORTFOLIO ADV AB SUSTAINABLE GLOBAL THEMATIC FUND A AGF GLOBAL EQUITY FUND I DEAD - Liquidated AGF GLOBAL SUSTAINABLE EQUITY FUND I AMG TRILOGY GLOBAL EQUITY FUND I AQR GLOBAL EQ.FD.CL.I ARTIO SELECT OPPS.FD. INCO.CL.A ADLER VALUE FUND INSTITUTIONAL ... WASATCH GLOBAL VALUE FUND INVESTOR WELLS FARGO INTRINSIC WORLD EQTY FD A WESTWOOD GLOBAL EQUITY FD.INSTL.SHS. WILLIAM BLAIR GLOBAL LEADERS FD.CL.I WINTERGREEN FD. DEAD - Liquidated WINTON GLOBAL EQUITY PORTFOLIO INSTITUTIONAL WORLD SELECT EQUITY FUND A YORKTOWN CAPITAL APPRECIATION FUND A ABRDN EMERGING MARKETS EX-CHINA FUND A ABRDN GLOBAL EQUITY IMPACT FUND A
date
2012-01-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-29 NaN NaN NaN 1.500 NaN NaN 1.210 0.950 1.400 NaN ... 1.100 1.400 NaN 1.250 1.860 NaN NaN 1.920 1.610 1.280
2012-03-30 NaN NaN NaN 1.500 NaN NaN 1.210 0.950 1.400 NaN ... 1.100 1.400 NaN 1.250 1.860 NaN NaN 1.920 1.610 1.280
2012-04-30 NaN NaN NaN 1.500 NaN NaN 1.210 0.950 1.400 NaN ... 1.100 1.400 NaN 1.250 1.860 NaN NaN 1.920 1.610 1.280
2012-05-31 NaN NaN NaN 1.500 NaN NaN 1.210 0.950 1.400 NaN ... 1.100 1.400 NaN 1.250 1.860 NaN NaN 1.920 1.610 1.280
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2022-08-31 NaN 0.850 0.790 1.020 NaN 0.800 NaN 0.800 NaN 1.250 ... 1.100 NaN NaN 0.900 NaN NaN 0.350 1.260 1.530 1.380
2022-09-30 NaN 0.850 0.790 1.020 NaN 0.800 NaN 0.800 NaN 1.250 ... 1.100 NaN NaN 0.900 NaN NaN 0.350 1.260 1.530 1.380
2022-10-31 NaN 0.850 0.790 1.020 NaN 0.800 NaN 0.800 NaN 1.250 ... 1.100 NaN NaN 0.900 NaN NaN 0.350 1.260 1.480 1.170
2022-11-30 NaN 0.850 0.790 1.020 NaN 0.800 NaN 0.800 NaN 1.250 ... 1.100 NaN NaN 0.900 NaN NaN 0.350 1.260 1.480 1.170
2022-12-30 NaN 0.850 0.790 1.020 NaN 0.800 NaN 0.800 NaN 1.250 ... 1.100 NaN NaN 0.900 NaN NaN 0.350 1.260 1.480 1.170

132 rows × 251 columns

In [ ]:
GROSS = ret+((exp/100/12)) # Gross
GROSS = (GROSS * exp) / exp # Stadarizing for matching
GROSS
Out[ ]:
1290 GLOBAL TALENTS FUND A 1290 SMART BETA EQUITY FUND I AB GLOBAL CORE EQUITY PORTFOLIO ADV AB SUSTAINABLE GLOBAL THEMATIC FUND A AGF GLOBAL EQUITY FUND I DEAD - Liquidated AGF GLOBAL SUSTAINABLE EQUITY FUND I AMG TRILOGY GLOBAL EQUITY FUND I AQR GLOBAL EQ.FD.CL.I ARTIO SELECT OPPS.FD. INCO.CL.A ADLER VALUE FUND INSTITUTIONAL ... WASATCH GLOBAL VALUE FUND INVESTOR WELLS FARGO INTRINSIC WORLD EQTY FD A WESTWOOD GLOBAL EQUITY FD.INSTL.SHS. WILLIAM BLAIR GLOBAL LEADERS FD.CL.I WINTERGREEN FD. DEAD - Liquidated WINTON GLOBAL EQUITY PORTFOLIO INSTITUTIONAL WORLD SELECT EQUITY FUND A YORKTOWN CAPITAL APPRECIATION FUND A ABRDN EMERGING MARKETS EX-CHINA FUND A ABRDN GLOBAL EQUITY IMPACT FUND A
date
2012-01-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-29 NaN NaN NaN 0.053 NaN NaN 0.054 0.056 0.051 NaN ... 0.034 0.054 NaN 0.064 0.029 NaN NaN 0.027 0.042 0.054
2012-03-30 NaN NaN NaN -0.002 NaN NaN 0.011 0.011 0.016 NaN ... 0.012 0.022 NaN 0.030 -0.009 NaN NaN 0.008 0.014 -0.009
2012-04-30 NaN NaN NaN -0.026 NaN NaN -0.023 -0.023 -0.009 NaN ... -0.010 0.002 NaN 0.013 0.008 NaN NaN -0.002 -0.004 -0.001
2012-05-31 NaN NaN NaN -0.120 NaN NaN -0.091 -0.091 -0.094 NaN ... -0.067 -0.089 NaN -0.090 -0.064 NaN NaN -0.063 -0.089 -0.106
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2022-08-31 NaN -0.039 -0.047 -0.064 NaN -0.050 NaN -0.031 NaN -0.024 ... -0.026 NaN NaN -0.064 NaN NaN -0.035 -0.044 -0.007 -0.056
2022-09-30 NaN -0.082 -0.101 -0.103 NaN -0.093 NaN -0.097 NaN -0.076 ... -0.082 NaN NaN -0.109 NaN NaN -0.090 -0.107 -0.088 -0.112
2022-10-31 NaN 0.079 0.049 0.051 NaN 0.067 NaN 0.091 NaN 0.128 ... 0.088 NaN NaN 0.059 NaN NaN 0.087 0.022 0.061 0.110
2022-11-30 NaN 0.074 0.107 0.100 NaN 0.067 NaN 0.067 NaN 0.038 ... 0.095 NaN NaN 0.094 NaN NaN 0.084 -0.023 0.086 0.122
2022-12-30 NaN -0.052 -0.075 -0.066 NaN -0.077 NaN -0.087 NaN -0.104 ... -0.073 NaN NaN -0.066 NaN NaN -0.122 -0.085 -0.265 -0.077

132 rows × 251 columns

In [ ]:
NAV = (NAV * exp) / exp # Stadarizing for matching with Expense ratio
NAV
Out[ ]:
1290 GLOBAL TALENTS FUND A 1290 SMART BETA EQUITY FUND I AB GLOBAL CORE EQUITY PORTFOLIO ADV AB SUSTAINABLE GLOBAL THEMATIC FUND A AGF GLOBAL EQUITY FUND I DEAD - Liquidated AGF GLOBAL SUSTAINABLE EQUITY FUND I AMG TRILOGY GLOBAL EQUITY FUND I AQR GLOBAL EQ.FD.CL.I ARTIO SELECT OPPS.FD. INCO.CL.A ADLER VALUE FUND INSTITUTIONAL ... WASATCH GLOBAL VALUE FUND INVESTOR WELLS FARGO INTRINSIC WORLD EQTY FD A WESTWOOD GLOBAL EQUITY FD.INSTL.SHS. WILLIAM BLAIR GLOBAL LEADERS FD.CL.I WINTERGREEN FD. DEAD - Liquidated WINTON GLOBAL EQUITY PORTFOLIO INSTITUTIONAL WORLD SELECT EQUITY FUND A YORKTOWN CAPITAL APPRECIATION FUND A ABRDN EMERGING MARKETS EX-CHINA FUND A ABRDN GLOBAL EQUITY IMPACT FUND A
date
2012-01-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-29 NaN NaN NaN 68.190 NaN NaN 9.960 11.030 36.460 NaN ... 14.200 17.410 NaN 9.080 14.800 NaN NaN 37.720 11.830 10.740
2012-03-30 NaN NaN NaN 67.980 NaN NaN 10.060 11.140 36.990 NaN ... 14.360 17.780 NaN 9.340 14.640 NaN NaN 37.970 11.980 10.630
2012-04-30 NaN NaN NaN 66.160 NaN NaN 9.820 10.870 36.600 NaN ... 14.210 17.790 NaN 9.450 14.730 NaN NaN 37.840 11.920 10.610
2012-05-31 NaN NaN NaN 58.120 NaN NaN 8.920 9.870 33.130 NaN ... 13.250 16.180 NaN 8.590 13.770 NaN NaN 35.400 10.840 9.470
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2022-08-31 NaN 14.340 13.730 130.260 NaN 14.239 NaN 8.610 NaN 24.890 ... 8.720 NaN NaN 13.890 NaN NaN 10.410 22.970 12.830 13.400
2022-09-30 NaN 13.160 12.340 116.750 NaN 12.911 NaN 7.770 NaN 22.960 ... 8.000 NaN NaN 12.370 NaN NaN 9.470 20.480 11.680 11.880
2022-10-31 NaN 14.190 12.940 122.600 NaN 13.771 NaN 8.470 NaN 25.870 ... 8.700 NaN NaN 13.090 NaN NaN 10.290 20.910 12.380 13.170
2022-11-30 NaN 15.230 14.320 134.740 NaN 14.687 NaN 9.030 NaN 26.820 ... 9.520 NaN NaN 14.310 NaN NaN 11.150 20.400 13.430 14.770
2022-12-30 NaN 14.430 13.240 125.720 NaN 13.545 NaN 8.240 NaN 23.990 ... 8.820 NaN NaN 13.350 NaN NaN 9.790 18.640 9.860 13.620

132 rows × 251 columns

Summary statistics¶

In this section, we conducted some summary statistics. We looked at the exchange rate, the factors, and different statistics from the dataset over the period.

In [ ]:
(1/FF['USD/NOK'].loc[str(start_year):str(end_year)]).plot()
plt.title(label='USDNOK')
Out[ ]:
Text(0.5, 1.0, 'USDNOK')
In [ ]:
# plotting Fama french factors
(1+F).cumprod().plot()
plt.title('Fama-French Factors')
plt.show()
In [ ]:
F.corr()
Out[ ]:
Mkt-RF SMB HML MOM RMW CMA RF
Mkt-RF 1.000 0.132 -0.029 -0.392 -0.014 -0.277 -0.123
SMB 0.132 1.000 -0.099 -0.035 -0.289 -0.227 -0.125
HML -0.029 -0.099 1.000 -0.462 -0.540 0.792 -0.075
MOM -0.392 -0.035 -0.462 1.000 0.294 -0.096 0.057
RMW -0.014 -0.289 -0.540 0.294 1.000 -0.276 0.018
CMA -0.277 -0.227 0.792 -0.096 -0.276 1.000 -0.009
RF -0.123 -0.125 -0.075 0.057 0.018 -0.009 1.000
In [ ]:
F.describe()
Out[ ]:
Mkt-RF SMB HML MOM RMW CMA RF
count 132.000 132.000 132.000 132.000 132.000 132.000 132.000
mean 0.008 -0.002 -0.000 0.005 0.003 0.001 0.001
std 0.042 0.015 0.027 0.028 0.013 0.017 0.001
min -0.138 -0.042 -0.092 -0.109 -0.029 -0.054 0.000
25% -0.015 -0.011 -0.017 -0.013 -0.006 -0.009 0.000
50% 0.013 -0.002 -0.003 0.006 0.004 -0.002 0.000
75% 0.029 0.009 0.012 0.024 0.011 0.008 0.001
max 0.133 0.033 0.120 0.067 0.046 0.081 0.003
In [ ]:
F.skew()
Out[ ]:
Mkt-RF   -0.518
SMB      -0.058
HML       0.631
MOM      -0.551
RMW       0.100
CMA       1.138
RF        1.416
dtype: float64
In [ ]:
F.kurtosis()
Out[ ]:
Mkt-RF    1.301
SMB      -0.280
HML       3.090
MOM       1.416
RMW       0.582
CMA       4.746
RF        1.113
dtype: float64
In [ ]:
NAV
Out[ ]:
1290 GLOBAL TALENTS FUND A 1290 SMART BETA EQUITY FUND I AB GLOBAL CORE EQUITY PORTFOLIO ADV AB SUSTAINABLE GLOBAL THEMATIC FUND A AGF GLOBAL EQUITY FUND I DEAD - Liquidated AGF GLOBAL SUSTAINABLE EQUITY FUND I AMG TRILOGY GLOBAL EQUITY FUND I AQR GLOBAL EQ.FD.CL.I ARTIO SELECT OPPS.FD. INCO.CL.A ADLER VALUE FUND INSTITUTIONAL ... WASATCH GLOBAL VALUE FUND INVESTOR WELLS FARGO INTRINSIC WORLD EQTY FD A WESTWOOD GLOBAL EQUITY FD.INSTL.SHS. WILLIAM BLAIR GLOBAL LEADERS FD.CL.I WINTERGREEN FD. DEAD - Liquidated WINTON GLOBAL EQUITY PORTFOLIO INSTITUTIONAL WORLD SELECT EQUITY FUND A YORKTOWN CAPITAL APPRECIATION FUND A ABRDN EMERGING MARKETS EX-CHINA FUND A ABRDN GLOBAL EQUITY IMPACT FUND A
date
2012-01-31 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2012-02-29 NaN NaN NaN 68.190 NaN NaN 9.960 11.030 36.460 NaN ... 14.200 17.410 NaN 9.080 14.800 NaN NaN 37.720 11.830 10.740
2012-03-30 NaN NaN NaN 67.980 NaN NaN 10.060 11.140 36.990 NaN ... 14.360 17.780 NaN 9.340 14.640 NaN NaN 37.970 11.980 10.630
2012-04-30 NaN NaN NaN 66.160 NaN NaN 9.820 10.870 36.600 NaN ... 14.210 17.790 NaN 9.450 14.730 NaN NaN 37.840 11.920 10.610
2012-05-31 NaN NaN NaN 58.120 NaN NaN 8.920 9.870 33.130 NaN ... 13.250 16.180 NaN 8.590 13.770 NaN NaN 35.400 10.840 9.470
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
2022-08-31 NaN 14.340 13.730 130.260 NaN 14.239 NaN 8.610 NaN 24.890 ... 8.720 NaN NaN 13.890 NaN NaN 10.410 22.970 12.830 13.400
2022-09-30 NaN 13.160 12.340 116.750 NaN 12.911 NaN 7.770 NaN 22.960 ... 8.000 NaN NaN 12.370 NaN NaN 9.470 20.480 11.680 11.880
2022-10-31 NaN 14.190 12.940 122.600 NaN 13.771 NaN 8.470 NaN 25.870 ... 8.700 NaN NaN 13.090 NaN NaN 10.290 20.910 12.380 13.170
2022-11-30 NaN 15.230 14.320 134.740 NaN 14.687 NaN 9.030 NaN 26.820 ... 9.520 NaN NaN 14.310 NaN NaN 11.150 20.400 13.430 14.770
2022-12-30 NaN 14.430 13.240 125.720 NaN 13.545 NaN 8.240 NaN 23.990 ... 8.820 NaN NaN 13.350 NaN NaN 9.790 18.640 9.860 13.620

132 rows × 251 columns

In [ ]:
ret.mean(axis=1).describe()
Out[ ]:
count   131.000
mean      0.003
std       0.043
min      -0.138
25%      -0.019
50%       0.008
75%       0.025
max       0.118
dtype: float64
In [ ]:
ret.mean(axis=1).skew()
Out[ ]:
-0.5819794647067005
In [ ]:
ret.mean(axis=1).kurtosis()
Out[ ]:
1.2208766609933646
In [ ]:
ret.shape[0] * ret.shape[1]
Out[ ]:
33132
In [ ]:
ret.corr()
Out[ ]:
1290 GLOBAL TALENTS FUND A 1290 SMART BETA EQUITY FUND I AB GLOBAL CORE EQUITY PORTFOLIO ADV AB SUSTAINABLE GLOBAL THEMATIC FUND A AGF GLOBAL EQUITY FUND I DEAD - Liquidated AGF GLOBAL SUSTAINABLE EQUITY FUND I AMG TRILOGY GLOBAL EQUITY FUND I AQR GLOBAL EQ.FD.CL.I ARTIO SELECT OPPS.FD. INCO.CL.A ADLER VALUE FUND INSTITUTIONAL ... WASATCH GLOBAL VALUE FUND INVESTOR WELLS FARGO INTRINSIC WORLD EQTY FD A WESTWOOD GLOBAL EQUITY FD.INSTL.SHS. WILLIAM BLAIR GLOBAL LEADERS FD.CL.I WINTERGREEN FD. DEAD - Liquidated WINTON GLOBAL EQUITY PORTFOLIO INSTITUTIONAL WORLD SELECT EQUITY FUND A YORKTOWN CAPITAL APPRECIATION FUND A ABRDN EMERGING MARKETS EX-CHINA FUND A ABRDN GLOBAL EQUITY IMPACT FUND A
1290 GLOBAL TALENTS FUND A 1.000 0.621 0.634 0.598 0.969 0.570 -0.130 0.662 NaN 0.522 ... 0.581 0.639 0.190 0.639 0.399 0.255 0.662 0.531 0.631 0.576
1290 SMART BETA EQUITY FUND I 0.621 1.000 0.948 0.905 0.931 0.916 0.343 0.929 NaN 0.862 ... 0.847 0.528 0.209 0.932 0.525 0.719 0.944 0.849 0.877 0.917
AB GLOBAL CORE EQUITY PORTFOLIO ADV 0.634 0.948 1.000 0.876 0.964 0.893 0.345 0.926 NaN 0.871 ... 0.860 0.516 0.880 0.910 0.445 0.823 0.950 0.804 0.880 0.905
AB SUSTAINABLE GLOBAL THEMATIC FUND A 0.598 0.905 0.876 1.000 0.954 0.943 0.443 0.671 0.832 0.746 ... 0.560 0.525 0.371 0.923 0.473 0.605 0.862 0.779 0.826 0.855
AGF GLOBAL EQUITY FUND I DEAD - Liquidated 0.969 0.931 0.964 0.954 1.000 0.927 NaN 0.954 NaN -0.067 ... 0.817 0.884 -0.235 0.920 0.438 NaN 0.924 0.692 0.932 0.935
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
WINTON GLOBAL EQUITY PORTFOLIO INSTITUTIONAL 0.255 0.719 0.823 0.605 NaN NaN 0.723 0.627 NaN NaN ... 0.694 0.644 0.745 0.737 0.389 1.000 NaN 0.772 0.620 0.562
WORLD SELECT EQUITY FUND A 0.662 0.944 0.950 0.862 0.924 0.847 NaN 0.975 NaN 0.934 ... 0.937 0.495 0.441 0.894 0.520 NaN 1.000 0.803 0.901 0.870
YORKTOWN CAPITAL APPRECIATION FUND A 0.531 0.849 0.804 0.779 0.692 0.820 0.484 0.640 0.873 0.741 ... 0.650 0.554 0.293 0.855 0.680 0.772 0.803 1.000 0.811 0.745
ABRDN EMERGING MARKETS EX-CHINA FUND A 0.631 0.877 0.880 0.826 0.932 0.849 0.485 0.693 0.927 0.800 ... 0.660 0.547 0.339 0.833 0.608 0.620 0.901 0.811 1.000 0.858
ABRDN GLOBAL EQUITY IMPACT FUND A 0.576 0.917 0.905 0.855 0.935 0.934 0.516 0.704 0.943 0.809 ... 0.675 0.535 0.357 0.843 0.467 0.562 0.870 0.745 0.858 1.000

251 rows × 251 columns

In [ ]:
ret.describe()
Out[ ]:
1290 GLOBAL TALENTS FUND A 1290 SMART BETA EQUITY FUND I AB GLOBAL CORE EQUITY PORTFOLIO ADV AB SUSTAINABLE GLOBAL THEMATIC FUND A AGF GLOBAL EQUITY FUND I DEAD - Liquidated AGF GLOBAL SUSTAINABLE EQUITY FUND I AMG TRILOGY GLOBAL EQUITY FUND I AQR GLOBAL EQ.FD.CL.I ARTIO SELECT OPPS.FD. INCO.CL.A ADLER VALUE FUND INSTITUTIONAL ... WASATCH GLOBAL VALUE FUND INVESTOR WELLS FARGO INTRINSIC WORLD EQTY FD A WESTWOOD GLOBAL EQUITY FD.INSTL.SHS. WILLIAM BLAIR GLOBAL LEADERS FD.CL.I WINTERGREEN FD. DEAD - Liquidated WINTON GLOBAL EQUITY PORTFOLIO INSTITUTIONAL WORLD SELECT EQUITY FUND A YORKTOWN CAPITAL APPRECIATION FUND A ABRDN EMERGING MARKETS EX-CHINA FUND A ABRDN GLOBAL EQUITY IMPACT FUND A
count 44.000 87.000 89.000 131.000 16.000 55.000 66.000 128.000 37.000 42.000 ... 131.000 111.000 59.000 128.000 87.000 18.000 55.000 129.000 130.000 130.000
mean 0.001 0.006 0.004 0.006 -0.003 0.007 -0.002 0.000 0.004 0.007 ... -0.001 0.001 -0.005 0.005 -0.007 0.001 -0.001 -0.004 0.000 0.003
std 0.062 0.041 0.047 0.050 0.049 0.062 0.061 0.058 0.034 0.071 ... 0.060 0.069 0.075 0.052 0.058 0.042 0.063 0.047 0.049 0.048
min -0.246 -0.117 -0.133 -0.134 -0.096 -0.139 -0.367 -0.385 -0.095 -0.208 ... -0.307 -0.513 -0.531 -0.216 -0.323 -0.086 -0.177 -0.264 -0.266 -0.142
25% -0.009 -0.017 -0.023 -0.019 -0.026 -0.020 -0.015 -0.023 -0.011 -0.022 ... -0.016 -0.018 -0.012 -0.019 -0.017 -0.021 -0.034 -0.022 -0.019 -0.019
50% 0.012 0.010 0.009 0.011 0.002 0.012 0.007 0.009 0.010 0.007 ... 0.009 0.013 0.002 0.011 0.005 0.007 0.006 0.007 0.009 0.003
75% 0.031 0.029 0.030 0.035 0.029 0.049 0.027 0.028 0.025 0.036 ... 0.027 0.029 0.022 0.030 0.021 0.017 0.035 0.021 0.029 0.032
max 0.120 0.097 0.118 0.135 0.081 0.133 0.087 0.119 0.056 0.210 ... 0.184 0.141 0.072 0.125 0.094 0.066 0.150 0.098 0.110 0.126

8 rows × 251 columns

Regressions¶

In this section, we performed different individual regressions for the funds. Before and after fees. We performed:

  • CAPM
  • Fama-French Three-factor regression
  • Carhart four-factor regression
In [ ]:
def signif(x):
    if x < 0.01:
        return '***'
    elif (x > 0.01) and (x < 0.05):
        return '**'
    elif (x > 0.05) and (x < 0.10):
        return '*'
    else:
        return ''
In [ ]:
# This function takes a pre-set dataframe, factors, dataframe with returns and
# Perform a Regression with the factors on every fund in the return dataframe
# The results get stored in the pre-set dataframe
# We also Added the option to print and to use robust std

def factor(dataframe1, factors, returns, prints=False, h=False, test_kit=False, show_sign=False,level=level):
    dataframe = dataframe1.copy(deep=True)
    
    
    if test_kit:
        fund_test = pd.DataFrame()
        fund_test.index = returns.columns
        fund_test['White'] = np.NaN
        fund_test['BG'] = np.NaN
        fund_test['JB'] = np.NaN

    
    
    for i in returns.columns:
        FF_FUND = F[factors].copy(deep=True)
        FF_FUND['RF'] = F['RF'].copy(deep=True)
        FF_FUND[i] = returns[i] # returns
        FF_FUND = FF_FUND.dropna() # Removing all
        X = FF_FUND[factors]
        Y = FF_FUND[i]-FF_FUND['RF']
        if len(X) < 3: # Build in to have at least 3 returns in set (used for yearly reg, since else we cannot use OLS)
            continue
        X_sm = sm.add_constant(X)
        model = sm.OLS(Y,X_sm)
        if h:
            results_reg = model.fit(cov_type='HAC', cov_kwds={'maxlags': 1})
        else:
            results_reg = model.fit()
        if prints:
            print(results_reg.summary())
            
        if test_kit:
            fund_test.loc[i] = tester(results_reg,save=True,reg_mode=True)

        # Checking if Alpha is significant
        if show_sign == True:
            dataframe.at[i,'Alpha'] = str(round(results_reg.params[0],4)) + signif(results_reg.pvalues[0])
            for ind,facto in enumerate(factors):
                dataframe.at[i,facto] = str(round(results_reg.params[ind+1],4)) + signif(results_reg.pvalues[ind+1])
            dataframe.at[i,'ADJ_R_SQ'] = results_reg.rsquared_adj
            continue


        if results_reg.pvalues[0] > level:
            dataframe.loc[i]['Alpha'] = 0
        else:
            dataframe.loc[i]['Alpha'] = results_reg.params[0]
        for ind,facto in enumerate(factors):
            dataframe.loc[i][facto] = results_reg.params[ind+1]
        dataframe.loc[i]['ADJ_R_SQ'] = results_reg.rsquared_adj
    if test_kit:
        return fund_test
    return dataframe.dropna()

CAPM Regression¶

In [ ]:
res_CAPM = factor(res_CAPM_,CAPM,ret,h=True)
res_CAPM_GROSS = factor(res_CAPM_,CAPM,GROSS,h=True)
In [ ]:
res_CAPM_level = factor(res_CAPM_,CAPM,ret,h=True,level=0.1)
res_CAPM_GROSS_level = factor(res_CAPM_,CAPM,GROSS,h=True,level=0.1)
In [ ]:
print(f'''There are {len(res_CAPM)} individual funds, from these {len(res_CAPM[res_CAPM['Alpha'] > 0])} generated positive alpha if we looking
at after fee numbers
Before fee there are {len(res_CAPM_GROSS[res_CAPM_GROSS['Alpha'] > 0])} funds


There are {len(res_CAPM)} individual funds, from these {len(res_CAPM[res_CAPM['Alpha'] < 0])} generated negative alpha if we looking
at after fee numbers
Before fee there are {len(res_CAPM_GROSS[res_CAPM_GROSS['Alpha'] < 0])} funds


''')

print(f'''
10% Significance

There are {len(res_CAPM_level)} individual funds, from these {len(res_CAPM_level[res_CAPM_level['Alpha'] > 0])} generated positive alpha if we looking
at after fee numbers
Before fee there are {len(res_CAPM_GROSS_level[res_CAPM_GROSS_level['Alpha'] > 0])} funds


There are {len(res_CAPM_level)} individual funds, from these {len(res_CAPM_level[res_CAPM_level['Alpha'] < 0])} generated negative alpha if we looking
at after fee numbers
Before fee there are {len(res_CAPM_GROSS_level[res_CAPM_GROSS_level['Alpha'] < 0])} funds


''')
There are 251 individual funds, from these 18 generated positive alpha if we looking
at after fee numbers
Before fee there are 24 funds


There are 251 individual funds, from these 233 generated negative alpha if we looking
at after fee numbers
Before fee there are 227 funds




10% Significance

There are 251 individual funds, from these 0 generated positive alpha if we looking
at after fee numbers
Before fee there are 0 funds


There are 251 individual funds, from these 148 generated negative alpha if we looking
at after fee numbers
Before fee there are 114 funds



In [ ]:
res_CAPM_GROSS_level[res_CAPM_GROSS_level['Alpha'] > 0]
Out[ ]:
Alpha Mkt-RF ADJ_R_SQ
In [ ]:
res_CAPM_GROSS.sort_values('Alpha', ascending=False)
Out[ ]:
Alpha Mkt-RF ADJ_R_SQ
HSBC GLBL EQTY VOLATILITY FOCUSED FD I 0.017 -1.014 0.068
JENSEN GLOBAL QUALITY GROWTH FUND I 0.004 0.984 0.928
VANGD.BAIL GIFF GL POSITIVE IPCT.STK.FD INV 0.003 1.141 0.662
VANGUARD GLBL ESG SEL STK FD ADMIRAL 0.003 0.964 0.904
US GLB.INVRS.FUND.GLB. MEGATRENDS FUND 0.002 0.683 0.743
... ... ... ...
BLACKROCK GLOBAL IMPACT FUND INST -0.019 0.958 0.791
ALLIANZGI BEST STYLES GLOBAL EQUITY FD.CL.R6 -0.019 0.567 0.061
PIMCO GLOBAL DIVIDEND FUND A -0.020 1.207 0.268
ALLIANZGI GLB.MGD.VOLT. FD.INSTL.CL. -0.025 1.077 0.082
SCHRODER GLOBAL MULTI- CAP EQUITY FUND R6 -0.025 0.647 -0.001

251 rows × 3 columns

In [ ]:
pd.concat([res_CAPM.describe(), res_CAPM_GROSS.describe()], axis=1)
Out[ ]:
Alpha Mkt-RF ADJ_R_SQ Alpha Mkt-RF ADJ_R_SQ
count 251.000 251.000 251.000 251.000 251.000 251.000
mean -0.006 0.967 0.692 -0.005 0.967 0.692
std 0.005 0.206 0.211 0.005 0.206 0.211
min -0.026 -1.014 -0.017 -0.025 -1.014 -0.017
25% -0.008 0.916 0.606 -0.007 0.916 0.606
50% -0.005 0.998 0.755 -0.004 0.998 0.754
75% -0.003 1.063 0.843 -0.002 1.063 0.843
max 0.016 1.396 0.973 0.017 1.397 0.973
In [ ]:
res_CAPM.sort_values('Alpha', ascending=False)
Out[ ]:
Alpha Mkt-RF ADJ_R_SQ
HSBC GLBL EQTY VOLATILITY FOCUSED FD I 0.016 -1.014 0.068
JENSEN GLOBAL QUALITY GROWTH FUND I 0.003 0.984 0.928
VANGD.BAIL GIFF GL POSITIVE IPCT.STK.FD INV 0.003 1.142 0.662
VANGUARD GLBL ESG SEL STK FD ADMIRAL 0.002 0.964 0.904
BROWN ADVISORY GLOBAL LEADERS FUND INVESTOR 0.001 0.983 0.929
... ... ... ...
BLACKROCK GLOBAL IMPACT FUND INST -0.019 0.958 0.791
DRIEHAUS GLB.GW.FUND DEAD - Liquidated -0.020 1.022 0.219
PIMCO GLOBAL DIVIDEND FUND A -0.021 1.207 0.268
ALLIANZGI GLB.MGD.VOLT. FD.INSTL.CL. -0.025 1.077 0.082
SCHRODER GLOBAL MULTI- CAP EQUITY FUND R6 -0.026 0.647 -0.001

251 rows × 3 columns

Fama-French 3 Regression¶

In [ ]:
res_FF3 = factor(res_FF3_,FAMA3,ret,h=True)
res_FF3_GROSS = factor(res_FF3_,FAMA3,GROSS,h=True)
res_FF3_level = factor(res_FF3_,FAMA3,ret,h=True,level=0.1)
res_FF3_GROSS_level = factor(res_FF3_,FAMA3,GROSS,h=True,level=0.1)
In [ ]:
print(f'''There are {len(res_FF3)} individual funds, from these {len(res_FF3[res_FF3['Alpha'] > 0])} generated alpha if we looking 
at after fee numbers
Before fee there are {len(res_FF3_GROSS[res_FF3_GROSS['Alpha'] > 0])} funds''')


print(f'''There are {len(res_FF3)} individual funds, from these {len(res_FF3[res_FF3['Alpha'] < 0])} negative alpha if we looking 
at after fee numbers
Before fee there are {len(res_FF3_GROSS[res_FF3_GROSS['Alpha'] < 0])} funds''')


print(f'''

10% significance

There are {len(res_FF3_level)} individual funds, from these {len(res_FF3_level[res_FF3_level['Alpha'] > 0])} generated alpha if we looking 
at after fee numbers
Before fee there are {len(res_FF3_GROSS_level[res_FF3_GROSS_level['Alpha'] > 0])} funds''')


print(f'''There are {len(res_FF3_level)} individual funds, from these {len(res_FF3_level[res_FF3_level['Alpha'] < 0])} negative alpha if we looking 
at after fee numbers
Before fee there are {len(res_FF3_GROSS_level[res_FF3_GROSS_level['Alpha'] < 0])} funds''')
There are 251 individual funds, from these 16 generated alpha if we looking 
at after fee numbers
Before fee there are 23 funds
There are 251 individual funds, from these 235 negative alpha if we looking 
at after fee numbers
Before fee there are 228 funds


10% significance

There are 251 individual funds, from these 0 generated alpha if we looking 
at after fee numbers
Before fee there are 2 funds
There are 251 individual funds, from these 167 negative alpha if we looking 
at after fee numbers
Before fee there are 134 funds
In [ ]:
res_FF3_GROSS_level[res_FF3_GROSS_level['Alpha'] > 0]
Out[ ]:
Alpha Mkt-RF SMB HML ADJ_R_SQ
HARTFORD GLB.GW.FD.CL.A DEAD - Merged:30913E 0.003 1.127 0.070 -0.564 0.933
JANUS HENDERSON GLBL SUSTAINABLE EQTY FD D 0.002 1.062 0.083 -0.268 0.989
In [ ]:
res_FF3_GROSS.sort_values('Alpha',ascending=False) # Overview over Regression output
Out[ ]:
Alpha Mkt-RF SMB HML ADJ_R_SQ
HSBC GLBL EQTY VOLATILITY FOCUSED FD I 0.023 -1.266 1.377 -0.406 0.051
VANGD.BAIL GIFF GL POSITIVE IPCT.STK.FD INV 0.005 1.085 0.450 -0.655 0.778
T ROWE PRICE GLOBAL IMPACT EQUITY 0.004 1.062 0.042 -0.456 0.955
HARTFORD GLB.GW.FD.CL.A DEAD - Merged:30913E 0.003 1.127 0.070 -0.564 0.933
US GLB.INVRS.FUND.GLB. MEGATRENDS FUND 0.003 0.707 -0.039 -0.253 0.733
... ... ... ... ... ...
FRONTIER ROBECO SAM GLOBAL EQUITY FUND INST -0.018 1.247 -1.347 0.226 0.480
PIMCO GLOBAL DIVIDEND FUND A -0.019 1.142 -0.899 0.344 0.273
ALLIANZGI GLB.MGD.VOLT. FD.INSTL.CL. -0.023 0.926 -0.860 0.451 0.049
ALLIANZGI BEST STYLES GLOBAL EQUITY FD.CL.R6 -0.024 0.787 -1.768 -0.390 0.106
SCHRODER GLOBAL MULTI- CAP EQUITY FUND R6 -0.026 0.588 -1.847 -1.064 -0.010

251 rows × 5 columns

In [ ]:
res_FF3_GROSS.sort_values('Alpha', ascending=False)
Out[ ]:
Alpha Mkt-RF SMB HML ADJ_R_SQ
HSBC GLBL EQTY VOLATILITY FOCUSED FD I 0.023 -1.266 1.377 -0.406 0.051
VANGD.BAIL GIFF GL POSITIVE IPCT.STK.FD INV 0.005 1.085 0.450 -0.655 0.778
T ROWE PRICE GLOBAL IMPACT EQUITY 0.004 1.062 0.042 -0.456 0.955
HARTFORD GLB.GW.FD.CL.A DEAD - Merged:30913E 0.003 1.127 0.070 -0.564 0.933
US GLB.INVRS.FUND.GLB. MEGATRENDS FUND 0.003 0.707 -0.039 -0.253 0.733
... ... ... ... ... ...
FRONTIER ROBECO SAM GLOBAL EQUITY FUND INST -0.018 1.247 -1.347 0.226 0.480
PIMCO GLOBAL DIVIDEND FUND A -0.019 1.142 -0.899 0.344 0.273
ALLIANZGI GLB.MGD.VOLT. FD.INSTL.CL. -0.023 0.926 -0.860 0.451 0.049
ALLIANZGI BEST STYLES GLOBAL EQUITY FD.CL.R6 -0.024 0.787 -1.768 -0.390 0.106
SCHRODER GLOBAL MULTI- CAP EQUITY FUND R6 -0.026 0.588 -1.847 -1.064 -0.010

251 rows × 5 columns

In [ ]:
pd.concat([res_FF3.describe(), res_FF3_GROSS.describe()], axis=1)
Out[ ]:
Alpha Mkt-RF SMB HML ADJ_R_SQ Alpha Mkt-RF SMB HML ADJ_R_SQ
count 251.000 251.000 251.000 251.000 251.000 251.000 251.000 251.000 251.000 251.000
mean -0.006 0.965 -0.110 -0.082 0.721 -0.005 0.965 -0.110 -0.082 0.721
std 0.005 0.212 0.417 0.334 0.217 0.005 0.212 0.417 0.334 0.217
min -0.026 -1.266 -1.847 -1.064 -0.060 -0.026 -1.266 -1.847 -1.064 -0.060
25% -0.008 0.907 -0.324 -0.294 0.629 -0.007 0.907 -0.324 -0.294 0.629
50% -0.005 0.997 -0.139 -0.095 0.796 -0.004 0.997 -0.138 -0.095 0.796
75% -0.003 1.062 0.093 0.131 0.869 -0.002 1.062 0.093 0.131 0.869
max 0.022 1.348 1.377 1.513 0.989 0.023 1.348 1.377 1.513 0.989

Fama-French Carhart Regression¶

In [ ]:
res_FFC = factor(res_FFC_,FAMAC,ret,h=True)
res_FFC_GROSS = factor(res_FFC_,FAMAC,GROSS,h=True)
res_FFC_level = factor(res_FFC_,FAMAC,ret,h=True,level=0.1)
res_FFC_GROSS_level = factor(res_FFC_,FAMAC,GROSS,h=True,level=0.1)
In [ ]:
print(f'''There are {len(res_FFC)} individual funds, from these {len(res_FFC[res_FFC['Alpha'] > 0])} generated alpha if we looking
at after fee numbers
Before fee there are {len(res_FFC_GROSS[res_FFC_GROSS['Alpha'] > 0])} funds''')

print(f'''There are {len(res_FFC)} individual funds, from these {len(res_FFC[res_FFC['Alpha'] < 0])} negative alpha if we looking 
at after fee numbers
Before fee there are {len(res_FFC_GROSS[res_FFC_GROSS['Alpha'] < 0])} funds''')
      

print(f'''

10% significance

There are {len(res_FFC_level)} individual funds, from these {len(res_FFC_level[res_FFC_level['Alpha'] > 0])} generated alpha if we looking 
at after fee numbers
Before fee there are {len(res_FFC_GROSS_level[res_FFC_GROSS_level['Alpha'] > 0])} funds''')


print(f'''There are {len(res_FFC_level)} individual funds, from these {len(res_FFC_level[res_FFC_level['Alpha'] < 0])} negative alpha if we looking 
at after fee numbers
Before fee there are {len(res_FFC_GROSS_level[res_FFC_GROSS_level['Alpha'] < 0])} funds''')
There are 251 individual funds, from these 16 generated alpha if we looking
at after fee numbers
Before fee there are 28 funds
There are 251 individual funds, from these 235 negative alpha if we looking 
at after fee numbers
Before fee there are 223 funds


10% significance

There are 251 individual funds, from these 1 generated alpha if we looking 
at after fee numbers
Before fee there are 2 funds
There are 251 individual funds, from these 166 negative alpha if we looking 
at after fee numbers
Before fee there are 134 funds
In [ ]:
res_FFC_GROSS_level[res_FFC_GROSS_level['Alpha'] > 0]
Out[ ]:
Alpha Mkt-RF SMB HML MOM ADJ_R_SQ
HARTFORD GLB.GW.FD.CL.A DEAD - Merged:30913E 0.005 1.113 0.075 -0.658 -0.089 0.932
JANUS HENDERSON GLBL SUSTAINABLE EQTY FD D 0.004 1.039 0.082 -0.291 -0.145 0.991
In [ ]:
pd.concat([res_FFC.describe(), res_FFC_GROSS.describe()], axis=1)
Out[ ]:
Alpha Mkt-RF SMB HML MOM ADJ_R_SQ Alpha Mkt-RF SMB HML MOM ADJ_R_SQ
count 251.000 251.000 251.000 251.000 251.000 251.000 251.000 251.000 251.000 251.000 251.000 251.000
mean -0.006 0.956 -0.112 -0.104 -0.041 0.722 -0.005 0.956 -0.112 -0.104 -0.041 0.722
std 0.005 0.206 0.414 0.343 0.210 0.216 0.005 0.206 0.414 0.343 0.210 0.216
min -0.032 -1.136 -1.945 -1.179 -1.177 -0.081 -0.032 -1.136 -1.945 -1.179 -1.177 -0.081
25% -0.008 0.911 -0.332 -0.331 -0.117 0.625 -0.007 0.911 -0.332 -0.331 -0.117 0.625
50% -0.005 0.986 -0.139 -0.111 -0.030 0.798 -0.004 0.986 -0.139 -0.110 -0.029 0.798
75% -0.003 1.047 0.094 0.095 0.047 0.869 -0.002 1.048 0.094 0.096 0.048 0.869
max 0.022 1.363 1.224 1.804 0.872 0.991 0.023 1.363 1.224 1.803 0.873 0.991
In [ ]:
res_FFC.sort_values('Alpha', ascending=False)
Out[ ]:
Alpha Mkt-RF SMB HML MOM ADJ_R_SQ
HSBC GLBL EQTY VOLATILITY FOCUSED FD I 0.022 -1.136 1.177 -0.738 -0.709 0.066
VANGD.BAIL GIFF GL POSITIVE IPCT.STK.FD INV 0.004 1.099 0.452 -0.636 0.047 0.773
HARTFORD GLB.GW.FD.CL.A DEAD - Merged:30913E 0.004 1.113 0.075 -0.658 -0.089 0.932
JANUS HENDERSON GLBL SUSTAINABLE EQTY FD D 0.003 1.039 0.082 -0.291 -0.145 0.991
T ROWE PRICE GLOBAL IMPACT EQUITY 0.003 1.070 0.041 -0.449 0.051 0.951
... ... ... ... ... ... ...
STATE STREET GLOBAL VALUE SPOTLIGHT FUND K -0.020 1.224 -0.938 -0.358 -0.505 0.642
ALLIANZGI GLB.MGD.VOLT. FD.INSTL.CL. -0.021 0.927 -0.779 0.212 -0.272 0.022
ALLIANZGI BEST STYLES GLOBAL EQUITY FD.CL.R6 -0.025 0.917 -1.790 0.011 0.531 0.104
DRIEHAUS GLB.GW.FUND DEAD - Liquidated -0.030 1.075 0.388 1.426 0.872 0.255
SCHRODER GLOBAL MULTI- CAP EQUITY FUND R6 -0.032 0.693 -1.945 -0.600 0.570 -0.030

251 rows × 6 columns

Equally-weighted Regressions¶

In this section, we performed the equally weighted regressions with the different regression models using net and gross of fees.

In [ ]:
# A function that uses the returns for each months then take the average of these and save in a dataframe
# Then uses the factors and perfrom a Regression on the average excess returns
# Also added the option to only chose one year at time, printing the results, and the use of robust std

def EW(factors,YEAR=False,Show=True, returns=ret, h=False):
    
    ret_1 = returns.replace(0,np.NaN)
    FF_EW = F.copy(deep=True)
    FF_EW['EW'] = ret_1.mean(axis=1)
    CLEAN = FF_EW[factors].copy(deep=True)
    CLEAN['EW-RF'] = FF_EW['EW']-FF_EW['RF']
    CLEAN = CLEAN.dropna()
    if YEAR == False:
        X = CLEAN[factors]
        Y = CLEAN['EW-RF']
    else:    
        X = CLEAN[factors].loc[YEAR]
        Y = CLEAN['EW-RF'].loc[YEAR]
    X_sm = sm.add_constant(X)
    model = sm.OLS(Y,X_sm)
    if h:
        results_reg = model.fit(cov_type='HAC', cov_kwds={'maxlags': 1})
    else:
        results_reg = model.fit()
    if Show:
        print('Equaly weighted')
        print(results_reg.summary())
    return results_reg

Net returns¶

In [ ]:
EW(CAPM,h=True)
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.905
Model:                            OLS   Adj. R-squared:                  0.904
Method:                 Least Squares   F-statistic:                     956.9
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           1.57e-61
Time:                        15:38:48   Log-Likelihood:                 380.77
No. Observations:                 131   AIC:                            -757.5
Df Residuals:                     129   BIC:                            -751.8
Df Model:                           1                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0052      0.001     -4.419      0.000      -0.008      -0.003
Mkt-RF         0.9821      0.032     30.934      0.000       0.920       1.044
==============================================================================
Omnibus:                      104.804   Durbin-Watson:                   2.116
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              689.487
Skew:                          -2.985   Prob(JB):                    1.90e-150
Kurtosis:                      12.522   Cond. No.                         24.1
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa6114e3eb0>
In [ ]:
EW(FAMA3,h=True)
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.910
Model:                            OLS   Adj. R-squared:                  0.908
Method:                 Least Squares   F-statistic:                     341.4
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           1.39e-60
Time:                        15:38:48   Log-Likelihood:                 384.63
No. Observations:                 131   AIC:                            -761.3
Df Residuals:                     127   BIC:                            -749.8
Df Model:                           3                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0055      0.001     -4.596      0.000      -0.008      -0.003
Mkt-RF         0.9855      0.032     31.148      0.000       0.923       1.048
SMB           -0.1223      0.078     -1.561      0.118      -0.276       0.031
HML           -0.1025      0.032     -3.168      0.002      -0.166      -0.039
==============================================================================
Omnibus:                      104.310   Durbin-Watson:                   2.139
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              691.810
Skew:                          -2.959   Prob(JB):                    5.96e-151
Kurtosis:                      12.577   Cond. No.                         69.2
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa6114e33d0>
In [ ]:
EW(FAMAC,h=True)
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.910
Model:                            OLS   Adj. R-squared:                  0.907
Method:                 Least Squares   F-statistic:                     255.1
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           2.19e-59
Time:                        15:38:48   Log-Likelihood:                 384.73
No. Observations:                 131   AIC:                            -759.5
Df Residuals:                     126   BIC:                            -745.1
Df Model:                           4                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0053      0.001     -4.449      0.000      -0.008      -0.003
Mkt-RF         0.9794      0.034     28.920      0.000       0.913       1.046
SMB           -0.1225      0.078     -1.570      0.116      -0.275       0.030
HML           -0.1140      0.041     -2.786      0.005      -0.194      -0.034
MOM           -0.0232      0.035     -0.657      0.511      -0.093       0.046
==============================================================================
Omnibus:                      104.175   Durbin-Watson:                   2.135
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              688.560
Skew:                          -2.956   Prob(JB):                    3.03e-150
Kurtosis:                      12.549   Cond. No.                         69.3
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa6114e3940>

Gross returns¶

In [ ]:
EW(CAPM, returns=GROSS,h=True)
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.905
Model:                            OLS   Adj. R-squared:                  0.904
Method:                 Least Squares   F-statistic:                     957.1
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           1.56e-61
Time:                        15:38:48   Log-Likelihood:                 380.68
No. Observations:                 131   AIC:                            -757.4
Df Residuals:                     129   BIC:                            -751.6
Df Model:                           1                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0043      0.001     -3.626      0.000      -0.007      -0.002
Mkt-RF         0.9822      0.032     30.937      0.000       0.920       1.044
==============================================================================
Omnibus:                      104.852   Durbin-Watson:                   2.113
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              690.407
Skew:                          -2.987   Prob(JB):                    1.20e-150
Kurtosis:                      12.529   Cond. No.                         24.1
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa6114f5df0>
In [ ]:
EW(FAMA3, returns=GROSS,h=True)
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.910
Model:                            OLS   Adj. R-squared:                  0.908
Method:                 Least Squares   F-statistic:                     341.4
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           1.38e-60
Time:                        15:38:48   Log-Likelihood:                 384.52
No. Observations:                 131   AIC:                            -761.0
Df Residuals:                     127   BIC:                            -749.5
Df Model:                           3                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0045      0.001     -3.811      0.000      -0.007      -0.002
Mkt-RF         0.9856      0.032     31.146      0.000       0.924       1.048
SMB           -0.1219      0.078     -1.554      0.120      -0.276       0.032
HML           -0.1025      0.032     -3.170      0.002      -0.166      -0.039
==============================================================================
Omnibus:                      104.341   Durbin-Watson:                   2.136
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              692.139
Skew:                          -2.961   Prob(JB):                    5.06e-151
Kurtosis:                      12.578   Cond. No.                         69.2
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa6114ec250>
In [ ]:
EW(FAMAC, returns=GROSS,h=True)
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.910
Model:                            OLS   Adj. R-squared:                  0.907
Method:                 Least Squares   F-statistic:                     255.1
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           2.20e-59
Time:                        15:38:48   Log-Likelihood:                 384.62
No. Observations:                 131   AIC:                            -759.2
Df Residuals:                     126   BIC:                            -744.9
Df Model:                           4                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0044      0.001     -3.668      0.000      -0.007      -0.002
Mkt-RF         0.9797      0.034     28.926      0.000       0.913       1.046
SMB           -0.1221      0.078     -1.562      0.118      -0.275       0.031
HML           -0.1138      0.041     -2.778      0.005      -0.194      -0.034
MOM           -0.0228      0.035     -0.643      0.520      -0.092       0.047
==============================================================================
Omnibus:                      104.203   Durbin-Watson:                   2.132
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              688.821
Skew:                          -2.957   Prob(JB):                    2.66e-150
Kurtosis:                      12.551   Cond. No.                         69.3
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa6114f1dc0>

Time-series segmentation¶

We split our equally-weighted portfolio into 3 sub-samples over the time-horizon and conducted the Carhart four-factor regression on each sub-sample.

Equally-weighted¶

In [ ]:
EW(FAMAC, returns=ret.loc[str(start_year):str(start_year+3)])
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.892
Model:                            OLS   Adj. R-squared:                  0.882
Method:                 Least Squares   F-statistic:                     86.67
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           1.00e-19
Time:                        15:38:48   Log-Likelihood:                 145.00
No. Observations:                  47   AIC:                            -280.0
Df Residuals:                      42   BIC:                            -270.7
Df Model:                           4                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0049      0.002     -2.385      0.022      -0.009      -0.001
Mkt-RF         0.9772      0.058     16.758      0.000       0.860       1.095
SMB           -0.1824      0.126     -1.444      0.156      -0.437       0.072
HML           -0.0930      0.145     -0.640      0.526      -0.386       0.200
MOM         9.463e-05      0.096      0.001      0.999      -0.193       0.193
==============================================================================
Omnibus:                       53.993   Durbin-Watson:                   2.064
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              250.541
Skew:                          -3.084   Prob(JB):                     3.94e-55
Kurtosis:                      12.481   Cond. No.                         93.4
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa6114732b0>
In [ ]:
# number of funds in the sample
sum(ret.loc[str(start_year):str(start_year+3)].sum() != 0)
Out[ ]:
185
In [ ]:
EW(FAMAC, returns=ret.loc[str(start_year+4):str(start_year+7)])
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.883
Model:                            OLS   Adj. R-squared:                  0.872
Method:                 Least Squares   F-statistic:                     80.74
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           2.02e-19
Time:                        15:38:48   Log-Likelihood:                 142.20
No. Observations:                  48   AIC:                            -274.4
Df Residuals:                      43   BIC:                            -265.1
Df Model:                           4                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0061      0.002     -3.019      0.004      -0.010      -0.002
Mkt-RF         1.0627      0.067     15.749      0.000       0.927       1.199
SMB           -0.1961      0.171     -1.149      0.257      -0.540       0.148
HML           -0.1863      0.125     -1.486      0.145      -0.439       0.067
MOM           -0.0111      0.104     -0.106      0.916      -0.221       0.199
==============================================================================
Omnibus:                       48.276   Durbin-Watson:                   1.831
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              179.285
Skew:                          -2.759   Prob(JB):                     1.17e-39
Kurtosis:                      10.693   Cond. No.                         89.9
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa6114e3d00>
In [ ]:
# number of funds in the sample
sum(ret.loc[str(start_year+4):str(start_year+7)].sum() != 0)
Out[ ]:
209
In [ ]:
EW(FAMAC, returns=ret.loc[str(start_year+8):str(start_year+10)])
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.939
Model:                            OLS   Adj. R-squared:                  0.931
Method:                 Least Squares   F-statistic:                     118.6
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           2.51e-18
Time:                        15:38:48   Log-Likelihood:                 101.48
No. Observations:                  36   AIC:                            -193.0
Df Residuals:                      31   BIC:                            -185.0
Df Model:                           4                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0057      0.003     -2.056      0.048      -0.011   -4.52e-05
Mkt-RF         0.9339      0.052     17.988      0.000       0.828       1.040
SMB           -0.0519      0.144     -0.360      0.721      -0.346       0.242
HML           -0.1026      0.072     -1.427      0.164      -0.249       0.044
MOM           -0.0656      0.101     -0.649      0.521      -0.272       0.140
==============================================================================
Omnibus:                       38.014   Durbin-Watson:                   1.901
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              117.044
Skew:                          -2.461   Prob(JB):                     3.84e-26
Kurtosis:                      10.335   Cond. No.                         56.0
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa6114e39d0>
In [ ]:
# number of funds in the sample
sum(ret.loc[str(start_year+8):str(start_year+10)].sum() != 0)
Out[ ]:
195

Expense Ratio statistics and Expense ratio Regression¶

In this section, we first looked at the expense ratio trend over the sample period and some basic statistics. Then we conducted a regression based on the results from the Carhart four-factor regression for each of the individual funds on their expense ratio to see how they relate to our sample. We then plotted the results and took a closer look at the distribution of the alphas and fees.

Expense ratio statistics¶

In [ ]:
# Making a overview of exp mean
exp_mean = pd.DataFrame(exp[EW_list].mean())
# Exp ratio matrix for exp ratio Regression
alphas_header = ['Alpha_CAPM','Alpha_FF3','Alpha_FFC','Avg_EXP']
exp_ratios = pd.DataFrame()
exp_ratios[['Name','Alpha_CAPM','Alpha_FF3','Alpha_FFC','Avg_EXP']] = 0
exp_ratios['Name'] = NAV[EW_list].columns
exp_ratios.set_index(NAV[EW_list].columns,inplace=True)
exp_ratios_GR = exp_ratios.copy(deep=True)

# Inputting all values that are generated
exp_ratios_GR['Alpha_CAPM'] = res_CAPM_GROSS['Alpha']
exp_ratios_GR['Alpha_FF3'] = res_FF3_GROSS['Alpha']
exp_ratios_GR['Alpha_FFC'] = res_FFC_GROSS['Alpha']

exp_ratios['Alpha_CAPM'] = res_CAPM['Alpha']
exp_ratios['Alpha_FF3'] = res_FF3['Alpha']
exp_ratios['Alpha_FFC'] = res_FFC['Alpha']

# Using the mean exp_ratio over the periode for all the funds
exp_ratios_GR['Avg_EXP'] = exp_mean[0]
exp_ratios['Avg_EXP'] = exp_mean[0]
exp_ratios_GR.dropna(inplace=True)
exp_ratios.dropna(inplace=True)
exp_ratios.drop(['Name'], axis=1)
Out[ ]:
Alpha_CAPM Alpha_FF3 Alpha_FFC Avg_EXP
1290 GLOBAL TALENTS FUND A -0.007 -0.006 -0.003 1.293
1290 SMART BETA EQUITY FUND I -0.002 -0.003 -0.003 0.953
AB GLOBAL CORE EQUITY PORTFOLIO ADV -0.003 -0.003 -0.003 0.871
AB SUSTAINABLE GLOBAL THEMATIC FUND A -0.002 -0.002 -0.002 1.373
AGF GLOBAL EQUITY FUND I DEAD - Liquidated -0.006 -0.014 -0.013 0.800
... ... ... ... ...
WINTON GLOBAL EQUITY PORTFOLIO INSTITUTIONAL -0.011 -0.012 -0.012 0.760
WORLD SELECT EQUITY FUND A -0.007 -0.008 -0.007 0.344
YORKTOWN CAPITAL APPRECIATION FUND A -0.011 -0.012 -0.011 1.625
ABRDN EMERGING MARKETS EX-CHINA FUND A -0.008 -0.009 -0.008 1.543
ABRDN GLOBAL EQUITY IMPACT FUND A -0.005 -0.006 -0.006 1.691

251 rows × 4 columns

In [ ]:
# average exp for each year, plotted

exp.mean(axis=1).plot(label=f'{var}', color='blue')
plt.title('Average Total Expense Ratio')
plt.legend()
Out[ ]:
<matplotlib.legend.Legend at 0x7fa611516c70>
In [ ]:
print(f' Exp ratio at start: {exp.mean(axis=1).dropna()[0]}')
print(f' Exp ratio at end {exp.mean(axis=1).dropna()[-1]}')
 Exp ratio at start: 1.2848437499999998
 Exp ratio at end 0.979298245614035
In [ ]:
sns.histplot(exp_ratios[['Alpha_CAPM','Alpha_FFC','Alpha_FF3']])
plt.xlabel('Alpha')
plt.axvline(exp_ratios['Alpha_CAPM'].median(), c='blue', ls='--', lw=2.5)
plt.axvline(exp_ratios['Alpha_FF3'].median(), c='orange', ls='--', lw=2.5)
plt.axvline(exp_ratios['Alpha_FFC'].median(), c='green', ls='--', lw=2.5)
plt.title(f'Alphas from Regressions for {var}')
plt.show()
In [ ]:
sns.histplot(exp_ratios[['Avg_EXP']], bins=30)
plt.xlabel('Average Expense ratios')
plt.axvline(exp_ratios['Avg_EXP'].median(), c='blue', ls='--', lw=2.5)
plt.title(f'Total Expense Ratio in {var}')
plt.show()
In [ ]:
# Comparing the below and above median funds (based on FFC alpha) and their expense ratio
median_alpha = res_FFC['Alpha'].median()

low_alpha_funds = res_FFC[res_FFC['Alpha'] <= median_alpha].index
high_alpha_funds = res_FFC[res_FFC['Alpha'] > median_alpha].index

plt.plot(exp[low_alpha_funds].mean(axis=1), label='low performance', color='r')
plt.plot(exp[high_alpha_funds].mean(axis=1),label='high performance', color='g')
plt.ylabel('expense ratio')
plt.ylim((0.90,1.7))
plt.xlabel('time')
plt.title(f'High performance vs Low performance by Expense ratio in {var}')
plt.legend()
Out[ ]:
<matplotlib.legend.Legend at 0x7fa6204c3f10>

Expense ratio regression¶

In [ ]:
# Making a easy Regresion function
def reg(X,Y,returns=False, h=False):
    X_sm = sm.add_constant(X)
    model = sm.OLS(Y,X_sm)
    if h:
        results_reg = model.fit(cov_type='HAC', cov_kwds={'maxlags': 1})
    else:
        results_reg = model.fit()
    if returns:
        return results_reg
    else:
        print(results_reg.summary())

Gross return Alphas on Average Expense ratios¶

In [ ]:
# Running 3 Regressions, EXP ratios on the different Alphas
reg(exp_ratios_GR['Avg_EXP']/100, (exp_ratios_GR['Alpha_CAPM']+1)**12-1,h=True)
reg(exp_ratios_GR['Avg_EXP']/100, (exp_ratios_GR['Alpha_FF3']+1)**12-1, h=True)
reg(exp_ratios_GR['Avg_EXP']/100, (exp_ratios_GR['Alpha_FFC']+1)**12-1, h=True)
                            OLS Regression Results                            
==============================================================================
Dep. Variable:             Alpha_CAPM   R-squared:                       0.003
Model:                            OLS   Adj. R-squared:                 -0.001
Method:                 Least Squares   F-statistic:                    0.5421
Date:                Sun, 25 Jun 2023   Prob (F-statistic):              0.462
Time:                        15:38:49   Log-Likelihood:                 381.32
No. Observations:                 251   AIC:                            -758.6
Df Residuals:                     249   BIC:                            -751.6
Df Model:                           1                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0626      0.012     -5.312      0.000      -0.086      -0.039
Avg_EXP        0.7208      0.979      0.736      0.462      -1.198       2.640
==============================================================================
Omnibus:                       38.031   Durbin-Watson:                   1.873
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              181.928
Skew:                          -0.444   Prob(JB):                     3.13e-40
Kurtosis:                       7.075   Cond. No.                         270.
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
                            OLS Regression Results                            
==============================================================================
Dep. Variable:              Alpha_FF3   R-squared:                       0.005
Model:                            OLS   Adj. R-squared:                  0.001
Method:                 Least Squares   F-statistic:                    0.9496
Date:                Sun, 25 Jun 2023   Prob (F-statistic):              0.331
Time:                        15:38:49   Log-Likelihood:                 369.27
No. Observations:                 251   AIC:                            -734.5
Df Residuals:                     249   BIC:                            -727.5
Df Model:                           1                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0667      0.013     -5.247      0.000      -0.092      -0.042
Avg_EXP        1.0142      1.041      0.974      0.330      -1.026       3.054
==============================================================================
Omnibus:                       52.659   Durbin-Watson:                   1.789
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              677.690
Skew:                           0.279   Prob(JB):                    6.94e-148
Kurtosis:                      11.030   Cond. No.                         270.
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
                            OLS Regression Results                            
==============================================================================
Dep. Variable:              Alpha_FFC   R-squared:                       0.003
Model:                            OLS   Adj. R-squared:                 -0.001
Method:                 Least Squares   F-statistic:                    0.5879
Date:                Sun, 25 Jun 2023   Prob (F-statistic):              0.444
Time:                        15:38:49   Log-Likelihood:                 362.25
No. Observations:                 251   AIC:                            -720.5
Df Residuals:                     249   BIC:                            -713.5
Df Model:                           1                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0626      0.014     -4.532      0.000      -0.090      -0.036
Avg_EXP        0.8984      1.172      0.767      0.443      -1.398       3.195
==============================================================================
Omnibus:                       55.479   Durbin-Watson:                   1.769
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              953.940
Skew:                          -0.124   Prob(JB):                    7.15e-208
Kurtosis:                      12.547   Cond. No.                         270.
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction

Plotting Regression¶

In [ ]:
from scipy.interpolate import UnivariateSpline
# Plotting and uses a basic Regression line based on the output from the Regression above
coef = reg(exp_ratios_GR['Avg_EXP']/100, (exp_ratios_GR['Alpha_FFC']+1)**12-1,True)
plt.xlabel('Expense ratio')
plt.ylabel('Annualized 4-Factor Alpha')
line = lambda x: coef.params[0]+x*coef.params[1]

# Plotting Non-parametric line
spl = UnivariateSpline(exp_ratios_GR.sort_values('Avg_EXP')['Avg_EXP']/100,(exp_ratios_GR.sort_values('Avg_EXP')['Alpha_FFC']+1)**12-1)

v = np.linspace(0.2,2,100)/100

ys = spl(v)
plt.scatter(exp_ratios_GR['Avg_EXP']/100, (exp_ratios_GR['Alpha_FFC']+1)**12-1, label='Fund', color='grey')
plt.plot(v,ys, label='Non-parametric line')
plt.plot(v,line(v), color='black', label='Linear Regression line')
plt.ylim(-0.30,0.2)
plt.xlim(0.1/100, 2/100)

#plt.axvline(x=cheap/100, c='g', ls='--',label='Low/Medium cost')
#plt.axvline(x=medium/100, c='y', ls='--',label='Medium/High cost')
plt.title(f'Carhart 4 Alpha on Expense Ratio')
plt.legend()
Out[ ]:
<matplotlib.legend.Legend at 0x7fa642a6a160>

Net return Alphas on Average Expense ratios¶

In [ ]:
reg(exp_ratios['Avg_EXP']/100, (exp_ratios['Alpha_FFC']+1)**12-1, h=True)
                            OLS Regression Results                            
==============================================================================
Dep. Variable:              Alpha_FFC   R-squared:                       0.000
Model:                            OLS   Adj. R-squared:                 -0.004
Method:                 Least Squares   F-statistic:                  0.001249
Date:                Sun, 25 Jun 2023   Prob (F-statistic):              0.972
Time:                        15:38:49   Log-Likelihood:                 364.65
No. Observations:                 251   AIC:                            -725.3
Df Residuals:                     249   BIC:                            -718.3
Df Model:                           1                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0626      0.014     -4.582      0.000      -0.089      -0.036
Avg_EXP       -0.0409      1.158     -0.035      0.972      -2.310       2.228
==============================================================================
Omnibus:                       55.487   Durbin-Watson:                   1.768
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              957.308
Skew:                          -0.120   Prob(JB):                    1.33e-208
Kurtosis:                      12.564   Cond. No.                         270.
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction

Cost categories¶

In this section, we split our dataset into 3 cost categories. We then compared the different cost categories equally-weighted portfolios Carhart four-factor results. We then plotted the cumulative returns for each of the portfolios.

In [ ]:
fund = exp.columns
cheap = exp.mean().quantile(1/3)
medium = exp.mean().quantile(2/3)


cheap_funds = fund[exp.mean()<=cheap]
medium_funds = fund[(exp.mean()>cheap) & (exp.mean() < medium)]
expensive_funds = fund[medium<=exp.mean()]
In [ ]:
# Total funds
len(cheap_funds) + len(medium_funds) + len(expensive_funds)
Out[ ]:
251
In [ ]:
# cheap and medium exp ratio
cheap,medium
Out[ ]:
(0.9207067183462533, 1.1795692052784184)
In [ ]:
# Based on the avg exp over the periode the funds get sorted into groups.
# then perfomring the FFC Regression on the results


cheap_reg = factor(res_FFC_,FAMAC,ret[cheap_funds])
medium_reg = factor(res_FFC_,FAMAC,ret[medium_funds])
expens_reg = factor(res_FFC_,FAMAC,ret[expensive_funds])
In [ ]:
pd.concat([cheap_reg.describe(),medium_reg.describe(),expens_reg.describe()],axis=1)
Out[ ]:
Alpha Mkt-RF SMB HML MOM ADJ_R_SQ Alpha Mkt-RF SMB HML MOM ADJ_R_SQ Alpha Mkt-RF SMB HML MOM ADJ_R_SQ
count 84.000 84.000 84.000 84.000 84.000 84.000 83.000 83.000 83.000 83.000 83.000 83.000 84.000 84.000 84.000 84.000 84.000 84.000
mean -0.006 0.953 -0.192 -0.080 -0.036 0.723 -0.004 0.964 -0.067 -0.170 -0.057 0.769 -0.006 0.952 -0.076 -0.065 -0.030 0.674
std 0.006 0.142 0.481 0.348 0.200 0.243 0.004 0.260 0.350 0.349 0.156 0.180 0.005 0.202 0.392 0.327 0.261 0.211
min -0.032 0.462 -1.945 -0.947 -0.563 -0.030 -0.017 -1.136 -0.779 -1.179 -0.709 0.066 -0.030 -0.000 -1.354 -0.658 -1.177 -0.081
25% -0.008 0.893 -0.376 -0.271 -0.119 0.625 -0.006 0.921 -0.287 -0.375 -0.124 0.712 -0.008 0.896 -0.299 -0.286 -0.088 0.573
50% -0.006 0.972 -0.179 -0.083 -0.034 0.822 -0.004 0.990 -0.099 -0.148 -0.047 0.815 -0.005 0.988 -0.111 -0.028 -0.012 0.719
75% -0.003 1.041 0.071 0.112 0.048 0.886 -0.002 1.064 0.104 0.011 0.047 0.878 -0.003 1.042 0.093 0.125 0.044 0.843
max 0.004 1.265 0.946 1.804 0.611 0.977 0.022 1.284 1.177 0.597 0.235 0.991 0.004 1.363 1.224 1.426 0.872 0.948
In [ ]:
plt.scatter(exp_mean.T[cheap_funds].T,cheap_reg['Alpha'], label='Cheap')
plt.scatter(exp_mean.T[expensive_funds].T,expens_reg['Alpha'], label='Expensive')
plt.scatter(exp_mean.T[medium_funds.T],medium_reg['Alpha'], label='Medium')
plt.xlabel('Expense ratio');
plt.ylabel('Alpha');
plt.title('Total Expense Ratios & Alphas')
plt.legend()
Out[ ]:
<matplotlib.legend.Legend at 0x7fa6007ecd00>

Comparing different cost-categories¶

In [ ]:
EW(FAMAC,returns = ret[cheap_funds], h=True)
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.889
Model:                            OLS   Adj. R-squared:                  0.885
Method:                 Least Squares   F-statistic:                     232.1
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           4.22e-57
Time:                        15:38:51   Log-Likelihood:                 371.98
No. Observations:                 131   AIC:                            -734.0
Df Residuals:                     126   BIC:                            -719.6
Df Model:                           4                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0056      0.001     -4.479      0.000      -0.008      -0.003
Mkt-RF         0.9606      0.034     28.059      0.000       0.894       1.028
SMB           -0.1871      0.084     -2.218      0.027      -0.353      -0.022
HML           -0.1050      0.045     -2.318      0.020      -0.194      -0.016
MOM           -0.0224      0.038     -0.585      0.558      -0.097       0.053
==============================================================================
Omnibus:                       91.066   Durbin-Watson:                   2.218
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              447.397
Skew:                          -2.625   Prob(JB):                     7.06e-98
Kurtosis:                      10.376   Cond. No.                         69.3
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa62061e3a0>
In [ ]:
EW(FAMAC,returns = ret[medium_funds], h=True)
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.908
Model:                            OLS   Adj. R-squared:                  0.906
Method:                 Least Squares   F-statistic:                     287.0
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           2.86e-62
Time:                        15:38:51   Log-Likelihood:                 379.26
No. Observations:                 131   AIC:                            -748.5
Df Residuals:                     126   BIC:                            -734.1
Df Model:                           4                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0046      0.001     -3.754      0.000      -0.007      -0.002
Mkt-RF         1.0050      0.035     28.628      0.000       0.936       1.074
SMB           -0.1054      0.076     -1.379      0.168      -0.255       0.044
HML           -0.1497      0.041     -3.643      0.000      -0.230      -0.069
MOM           -0.0344      0.035     -0.986      0.324      -0.103       0.034
==============================================================================
Omnibus:                      105.904   Durbin-Watson:                   2.168
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              744.482
Skew:                          -2.987   Prob(JB):                    2.18e-162
Kurtosis:                      13.036   Cond. No.                         69.3
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa620620df0>
In [ ]:
EW(FAMAC,returns = ret[expensive_funds], h=True)
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.910
Model:                            OLS   Adj. R-squared:                  0.907
Method:                 Least Squares   F-statistic:                     228.4
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           1.03e-56
Time:                        15:38:51   Log-Likelihood:                 386.61
No. Observations:                 131   AIC:                            -763.2
Df Residuals:                     126   BIC:                            -748.8
Df Model:                           4                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0060      0.001     -4.783      0.000      -0.008      -0.004
Mkt-RF         0.9689      0.034     28.283      0.000       0.902       1.036
SMB           -0.0895      0.083     -1.077      0.281      -0.252       0.073
HML           -0.0809      0.044     -1.850      0.064      -0.167       0.005
MOM           -0.0091      0.041     -0.223      0.824      -0.089       0.071
==============================================================================
Omnibus:                       97.010   Durbin-Watson:                   1.961
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              551.935
Skew:                          -2.764   Prob(JB):                    1.41e-120
Kurtosis:                      11.400   Cond. No.                         69.3
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa6114f1160>
In [ ]:
# Cummulative return EW

(ret[cheap_funds].mean(axis=1) + 1).cumprod().plot(color='g', label='Low-cost - net return')
(GROSS[cheap_funds].mean(axis=1) + 1).cumprod().plot(color='c', label='Low-cost - gross return')
(ret[medium_funds].mean(axis=1) + 1).cumprod().plot(color='orange', label='Medium-cost - net return')
(GROSS[medium_funds].mean(axis=1) + 1).cumprod().plot(color='y', label='Medium-cost - gross return')
(ret[expensive_funds].mean(axis=1) + 1).cumprod().plot(color='r', label='High-cost - net return')
(GROSS[expensive_funds].mean(axis=1) + 1).cumprod().plot(color='m', label='High-cost - gross return')
plt.axhline(y = 1, color = 'r', linestyle = '--')
plt.title(f'Low-cost vs. Medium-cost vs. High-cost in {var}')
plt.ylim((0.5,3.2))
plt.legend()
Out[ ]:
<matplotlib.legend.Legend at 0x7fa642921820>

Plotting & returns in funds¶

In this section, we plotted the returns for each fund and the equally weighted portfolio. We also took a closer look at some of the top performers, and the bottom performers. We also took a closer look at when the different funds were alive.

Best performer on return basis¶

In [ ]:
import warnings
warnings.filterwarnings("ignore", message="DataFrame is highly fragmented.")


# Mkt where new funds start from mkts return - adjusted
adjusted = pd.DataFrame()
adjusted['Mkt'] = (Mkt.loc[str(start_year):str(end_year)]+1).cumprod()

# To adjust the start of each fund to where the market is when they arrive
for i in ret:
    Mkt_c = (Mkt.loc[str(start_year):str(end_year)]+1).cumprod()
    x = pd.concat([ret[i],Mkt_c],axis=1)
    x = x.dropna()
    x[i][0] = x[i][0]+x[0][0]
    x[i][1:] = x[i][1:] + 1
    x[i] = x[i].cumprod()
    adjusted[i] = x[i].copy(deep=True)
    
adjusted.interpolate(limit_area='inside', inplace=True)

adjusted[1:].plot()
Mkt_c.plot(lw=2, color='blue')
plt.legend('');
In [ ]:
Fund_with_highest_end_return = adjusted.iloc[-1].idxmax()
print(Fund_with_highest_end_return)
adjusted[Fund_with_highest_end_return][-1]
PGIM JENNISON GLOBAL OPPORTUNITIES FUND Z
Out[ ]:
3.0991150921035033
In [ ]:
highest_retrun_point = ((ret + 1).cumprod()).max().idxmax()
print(highest_retrun_point)
adjusted[highest_retrun_point].max()
BARON GLOBAL ADVANTAGE FD.INST CL.
Out[ ]:
6.6530379022090465
In [ ]:
Fund_with_lowest_end_return = adjusted.iloc[-1].idxmin()
print(Fund_with_lowest_end_return)
adjusted[Fund_with_lowest_end_return][-1]
LAZARD GLOBAL STRATEGIC EQUITY PORTFOLIO INST
Out[ ]:
0.34300894245840785
In [ ]:
lowest_return_point = ((ret + 1).cumprod()).min().idxmin()
print(lowest_return_point)
adjusted[lowest_return_point].min()
TIF GLB.EQ.SERIES FUND DEAD - Liquidated
Out[ ]:
0.07707577014267894
In [ ]:
exp_ratios.loc[Fund_with_highest_end_return]
Out[ ]:
Name          PGIM JENNISON GLOBAL OPPORTUNITIES FUND Z
Alpha_CAPM                                        0.001
Alpha_FF3                                         0.001
Alpha_FFC                                         0.000
Avg_EXP                                           1.077
Name: PGIM JENNISON GLOBAL OPPORTUNITIES FUND Z, dtype: object
In [ ]:
res_FFC.loc[Fund_with_highest_end_return]
Out[ ]:
Alpha       0.000
Mkt-RF      1.104
SMB         0.236
HML        -0.817
MOM         0.100
ADJ_R_SQ    0.847
Name: PGIM JENNISON GLOBAL OPPORTUNITIES FUND Z, dtype: float64

Equal Weighted port Cummulative return¶

In [ ]:
# Cummulative return EW
(Mkt.loc[str(start_year):str(end_year)]+1).cumprod().plot(lw=4, color='b', label='Mkt')
(ret.mean(axis=1) + 1).cumprod().plot(color='r', label='EW port')
plt.axhline(y = 1, color = 'r', linestyle = '--')
plt.legend()
Out[ ]:
<matplotlib.legend.Legend at 0x7fa620446a30>

Funds alive timeline¶

In [ ]:
# Time line over funds
all_df = ret[EW_list].copy(deep=True)
all_df = all_df.interpolate(method='linear',limit_area='inside')
all_df['ALIVE'] = np.nan
for i in range(1,len(all_df)):
    all_df['ALIVE'].iloc[i] = len((all_df.iloc[i]).dropna())
all_df['ALIVE'].dropna().plot()
plt.title(f'Number of funds in {var}')
plt.ylabel('alive');

Testing for Autocorrelation, Heteroscedasity, Non-normality¶

In this section, we tested funds for autocorrelation, heteroscedasticity, and non-normality. We further plotted some of our results.

In [ ]:
from statsmodels.graphics.tsaplots import plot_acf


def tester(reg, show=False, save=False, reg_mode=False):
    white_test = het_white(reg.resid, reg.model.exog)
    bg = acorr_breusch_godfrey(reg, nlags=1)
    jb = sp.stats.jarque_bera(reg.resid)
    if reg_mode == False:
        print(f'P-Value = {white_test[3]} - If this is lower than 0.05 We have a problem with hetero')
        print(f'P-Value = {bg[1]} - Autocorrelation if lower than 0.05')
        print(f'P-Values = {jb[1]} - If not high, this is not normality')
    if show:
        plt.hist(reg.resid)
        plt.show()
        plt.plot(reg.resid)
        plt.show()
        print(reg.resid.sort_values(ascending=True).head(15))
        plot_acf(reg.resid, lags=10)
    if save:
        return (white_test[3] > 0.05, bg[1] > 0.05, jb[1] > 0.05)
In [ ]:
print('Equally Weighted Net')
tester(EW(CAPM, Show=False))
print('-'*75)
tester(EW(FAMA3, Show=False))
print('-'*75)
tester(EW(FAMAC, Show=False))
print('-'*75)
print('-'*75)

tester(EW(CAPM,returns=GROSS, Show=False))
print('-'*75)
tester(EW(FAMA3,returns=GROSS, Show=False))
print('-'*75)
tester(EW(FAMAC,returns=GROSS, Show=False))
print('-'*75)

print()

print('Induvidual CAPM, FF3, FFC')
print('-'*75)
print('CAPM')
print(factor(res_CAPM_,CAPM,ret,h=True, test_kit=True).apply(lambda x: sum(x)/len(x)))
print('-'*75)
print('FF3')
print(factor(res_FF3_,FAMA3,ret,h=True, test_kit=True).apply(lambda x: sum(x)/len(x)))
print('-'*75)
print('FFC')
print(factor(res_FFC_,FAMAC,ret,h=True, test_kit=True).apply(lambda x: sum(x)/len(x)))
print('-'*75)
Equally Weighted Net
P-Value = 0.6980553587061408 - If this is lower than 0.05 We have a problem with hetero
P-Value = 0.2940685924816942 - Autocorrelation if lower than 0.05
P-Values = 0.0 - If not high, this is not normality
---------------------------------------------------------------------------
P-Value = 0.8596432376312273 - If this is lower than 0.05 We have a problem with hetero
P-Value = 0.271978921104368 - Autocorrelation if lower than 0.05
P-Values = 0.0 - If not high, this is not normality
---------------------------------------------------------------------------
P-Value = 0.9073103141137422 - If this is lower than 0.05 We have a problem with hetero
P-Value = 0.2874090928757116 - Autocorrelation if lower than 0.05
P-Values = 0.0 - If not high, this is not normality
---------------------------------------------------------------------------
---------------------------------------------------------------------------
P-Value = 0.6986585917282817 - If this is lower than 0.05 We have a problem with hetero
P-Value = 0.30094499037259204 - Autocorrelation if lower than 0.05
P-Values = 0.0 - If not high, this is not normality
---------------------------------------------------------------------------
P-Value = 0.8598688566473011 - If this is lower than 0.05 We have a problem with hetero
P-Value = 0.27914775711701034 - Autocorrelation if lower than 0.05
P-Values = 0.0 - If not high, this is not normality
---------------------------------------------------------------------------
P-Value = 0.9073693002786166 - If this is lower than 0.05 We have a problem with hetero
P-Value = 0.2948885844486615 - Autocorrelation if lower than 0.05
P-Values = 0.0 - If not high, this is not normality
---------------------------------------------------------------------------

Induvidual CAPM, FF3, FFC
---------------------------------------------------------------------------
CAPM
White   0.857
BG      0.928
JB      0.219
dtype: float64
---------------------------------------------------------------------------
FF3
White   0.857
BG      0.948
JB      0.195
dtype: float64
---------------------------------------------------------------------------
FFC
White   0.861
BG      0.948
JB      0.203
dtype: float64
---------------------------------------------------------------------------
In [ ]:
pd.merge(pd.DataFrame(EW(FAMAC,Show=False).resid).reset_index(),F.reset_index()).set_index('date').corr()
Out[ ]:
0 Mkt-RF SMB HML MOM RMW CMA RF
0 1.000 0.000 0.000 -0.000 -0.000 -0.067 -0.109 -0.097
Mkt-RF 0.000 1.000 0.120 -0.026 -0.381 0.001 -0.273 -0.117
SMB 0.000 0.120 1.000 -0.097 -0.004 -0.274 -0.221 -0.118
HML -0.000 -0.026 -0.097 1.000 -0.480 -0.550 0.792 -0.076
MOM -0.000 -0.381 -0.004 -0.480 1.000 0.270 -0.112 0.045
RMW -0.067 0.001 -0.274 -0.550 0.270 1.000 -0.289 0.009
CMA -0.109 -0.273 -0.221 0.792 -0.112 -0.289 1.000 -0.013
RF -0.097 -0.117 -0.118 -0.076 0.045 0.009 -0.013 1.000
In [ ]:
tester(EW(CAPM),show=True)
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.905
Model:                            OLS   Adj. R-squared:                  0.904
Method:                 Least Squares   F-statistic:                     1223.
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           1.11e-67
Time:                        15:38:57   Log-Likelihood:                 380.77
No. Observations:                 131   AIC:                            -757.5
Df Residuals:                     129   BIC:                            -751.8
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0052      0.001     -4.393      0.000      -0.008      -0.003
Mkt-RF         0.9821      0.028     34.976      0.000       0.927       1.038
==============================================================================
Omnibus:                      104.804   Durbin-Watson:                   2.116
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              689.487
Skew:                          -2.985   Prob(JB):                    1.90e-150
Kurtosis:                      12.522   Cond. No.                         24.1
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
P-Value = 0.6980553587061408 - If this is lower than 0.05 We have a problem with hetero
P-Value = 0.2940685924816942 - Autocorrelation if lower than 0.05
P-Values = 0.0 - If not high, this is not normality
date
2021-12-31   -0.067
2018-12-31   -0.058
2014-12-31   -0.052
2017-12-29   -0.046
2022-12-30   -0.037
2013-12-31   -0.034
2019-12-31   -0.033
2015-12-31   -0.033
2020-12-31   -0.027
2016-12-30   -0.025
2012-12-31   -0.011
2022-02-28   -0.008
2022-03-31   -0.008
2020-11-30   -0.008
2020-08-31   -0.007
dtype: float64

Information Ratio & Sharpe Ratio¶

In this section, we used the information ratio and the Sharpe ratio for all the funds in our sample. We also plotted some of the results and conducted some analysis on the different cost categories.

In [ ]:
# Calulcating the Information ratio for each fund
def ir(start=str(start_year), end=str(end_year), returns=ret, l=25, printing=False):
    start = str(start)
    end = str(end)
    SR = pd.DataFrame()
    SR.index = returns.columns
    SR['ir'] = np.NaN


    for i in returns:
        fund_rf = pd.concat([returns[i].loc[start:end],Mkt.loc[start:end]], axis=1).dropna()
        SR['ir'].loc[i] = ((fund_rf[i]-fund_rf[0]).mean()/((fund_rf[i]-fund_rf[0]).std()))*np.sqrt(12)

    if printing == False:
        print('-'*50)
        print(f'from {start} to {end}')
        print(SR.sort_values('ir', ascending=False).head(l))
        plt.hist(SR['ir'])
        plt.show()
        print(f'Mean IR of {SR.mean()}')
        print(f'Median IR of {SR.median()}')
        
    else:
        return SR.sort_values('ir', ascending=False)
In [ ]:
# Sharpe ratio
def SR(fund_ret,start=start_year, end=end_year):
    rf = FF['RF'].loc[str(start):str(end)].mean()*12
    fund_return = fund_ret.loc[str(start):str(end)].mean() * 12
    sigma = fund_ret.std() * np.sqrt(12)
    return (fund_return-rf)/sigma
In [ ]:
all_ir = ir(printing=True)
In [ ]:
all_ir
Out[ ]:
ir
JENSEN GLOBAL QUALITY GROWTH FUND I 0.764
VANGUARD GLBL ESG SEL STK FD ADMIRAL 0.515
HARTFORD GLB.GW.FD.CL.A DEAD - Merged:30913E 0.392
BROWN ADVISORY GLOBAL LEADERS FUND INVESTOR 0.325
VANGD.BAIL GIFF GL POSITIVE IPCT.STK.FD INV 0.280
... ...
ARTIO SELECT OPPS.FD. INCO.CL.A -1.939
VIRTUS GLB.COMD.STK.FD. CL.I -2.147
BLACKROCK GLOBAL IMPACT FUND INST -2.584
VIRTUS SGA NEW LEADERS GROWTH FUND R6 -2.929
JUBAK GLOBAL EQ.FD. DEAD - Liquidated -3.291

251 rows × 1 columns

In [ ]:
# EW Infromation ratio
ew_ret = pd.DataFrame(ret.mean(axis=1).dropna())
ew_ret = ew_ret.rename(columns={0:'ew'})
IR_total = ir(2012, 2022,ew_ret, printing=True)
print(IR_total)
       ir
ew -1.391
In [ ]:
# Cheap funds
cheap_ret = pd.DataFrame(ret[cheap_funds].mean(axis=1)).dropna()
cheap_ret = cheap_ret.rename(columns={0:'cheap'})

cheap_IR = ir(2012, 2022, cheap_ret, printing=True)
print(cheap_IR)
          ir
cheap -1.326
In [ ]:
# Medium funds
medium_ret = pd.DataFrame(ret[medium_funds].mean(axis=1)).dropna()
medium_ret = medium_ret.rename(columns={0:'medium'})

medium_IR = ir(2012, 2022, medium_ret, printing=True)
print(medium_IR)
           ir
medium -1.116
In [ ]:
# Expensive funds
expensive_ret = pd.DataFrame(ret[expensive_funds].mean(axis=1)).dropna()
expensive_ret = expensive_ret.rename(columns={0:'expensive'})

expensive_IR = ir(2012, 2022, expensive_ret, printing=True)
print(expensive_IR)
              ir
expensive -1.634
In [ ]:
alive = ret.iloc[-1].dropna().index
In [ ]:
high_IR_funds = ir(returns=ret[alive],printing=True).head(3)
In [ ]:
high_IR_funds
Out[ ]:
ir
JENSEN GLOBAL QUALITY GROWTH FUND I 0.764
VANGUARD GLBL ESG SEL STK FD ADMIRAL 0.515
BROWN ADVISORY GLOBAL LEADERS FUND INVESTOR 0.325
In [ ]:
adjusted[high_IR_funds.index].plot()
(1+Mkt.loc[str(start_year):str(end_year)]).cumprod().plot();

Based on Bogle's - "An index fund fundamentalist"¶

In this section, we tried to replicate Bogle's (2002) method -- soruce from thesis (https://doi.org/10.3905/jpm.2002.319840). We used morningstar style-boxes obtained from Morningstar direct. Further, we sorted the funds into portfolios based on their style and cost. We then compared their Sharpe ratio.

In [ ]:
def cost(x):
    if x in cheap_funds:
        return 'Low-Cost'
    elif x in medium_funds:
        return  'Medium-Cost'
    elif x in expensive_funds:
        return 'High-Cost'
In [ ]:
fund_df = pd.DataFrame({'fund':fund})
fund_df.set_index('fund', inplace=True)
morningstar_data = pd.read_excel('fund_data.xlsx', sheet_name=f'{var}_INFO')
morningstar_data = morningstar_data[[0,'Equity Style Box (Long)']].set_index(0)
ret_df = pd.DataFrame({'ret':ret.mean(axis=0)*12})
exp_df = pd.DataFrame({'exp':exp.mean(axis=0)})
b_df2 = ret_df.merge(res_FFC,left_index=True, right_index=True,how='right')
b_df = exp_df.merge(b_df2,left_index=True, right_index=True, how='inner')
b_df = pd.concat([b_df,morningstar_data],axis=1)
b_df = b_df.rename(columns={'Equity Style Box (Long)':'style'})
b_df = b_df.reset_index()
b_df['cost'] = b_df['index'].apply(lambda x: cost(x))
b_df.set_index('index', inplace=True)
h_df = b_df
b_df = b_df.dropna()
b_df['cap'] = b_df['style'].apply(lambda x:x.split()[0])
b_df['type'] = b_df['style'].apply(lambda x:x.split()[1])
b_df
Out[ ]:
exp ret Alpha Mkt-RF SMB HML MOM ADJ_R_SQ style cost cap type
index
1290 SMART BETA EQUITY FUND I 0.953 0.067 -0.003 0.892 -0.387 -0.087 0.067 0.916 Large Blend Medium-Cost Large Blend
AB GLOBAL CORE EQUITY PORTFOLIO ADV 0.871 0.046 -0.003 0.960 -0.274 -0.033 -0.105 0.919 Large Blend Low-Cost Large Blend
AB SUSTAINABLE GLOBAL THEMATIC FUND A 1.373 0.076 -0.002 1.029 0.120 -0.454 -0.014 0.827 Large Growth High-Cost Large Growth
AGF GLOBAL SUSTAINABLE EQUITY FUND I 0.800 0.086 0.001 1.052 0.132 -0.404 0.035 0.917 Large Growth Low-Cost Large Growth
AQR GLOBAL EQ.FD.CL.I 0.866 0.001 -0.009 1.011 -0.212 0.035 0.030 0.499 Large Value Low-Cost Large Value
... ... ... ... ... ... ... ... ... ... ... ... ...
WASATCH GLOBAL VALUE FUND INVESTOR 1.102 -0.017 -0.010 0.996 -0.380 0.484 -0.023 0.514 Large Value Medium-Cost Large Value
WILLIAM BLAIR GLOBAL LEADERS FD.CL.I 1.092 0.058 -0.005 1.112 -0.152 -0.343 0.023 0.838 Large Growth Medium-Cost Large Growth
YORKTOWN CAPITAL APPRECIATION FUND A 1.625 -0.049 -0.011 0.888 -0.124 -0.288 -0.071 0.654 Mid Growth High-Cost Mid Growth
ABRDN EMERGING MARKETS EX-CHINA FUND A 1.543 0.002 -0.008 0.999 -0.402 -0.151 -0.087 0.730 Large Blend High-Cost Large Blend
ABRDN GLOBAL EQUITY IMPACT FUND A 1.691 0.041 -0.006 1.056 -0.109 -0.147 -0.002 0.842 Large Growth High-Cost Large Growth

165 rows × 12 columns

In [ ]:
b_df[['exp', 'ret', 'style']].groupby('style').mean()
Out[ ]:
exp ret
style
Large Blend 1.070 0.032
Large Growth 1.052 0.028
Large Value 0.995 0.026
Mid Blend 1.850 -0.027
Mid Growth 1.217 -0.046
Mid Value 1.060 0.029
In [ ]:
b_df = b_df.reset_index()
h_df = h_df.reset_index()
b_df['SR'] = b_df['index'].apply(lambda x: SR(ret[x]))
h_df['SR'] = h_df['index'].apply(lambda x: SR(ret[x]))
b_df = b_df.set_index('index')
h_df = h_df.set_index('index')

high_cost_df = b_df[b_df['cost'] == 'High-Cost']
med_cost_df = b_df[b_df['cost'] == 'Medium-Cost']
low_cost_df = b_df[b_df['cost'] == 'Low-Cost']
high = high_cost_df[['style','SR']].groupby('style').mean()
med = med_cost_df[['style','SR']].groupby('style').mean()
low = low_cost_df[['style','SR']].groupby('style').mean()
low = low.rename(columns={'SR':'Indv Low cost'})
med = med.rename(columns={'SR':'Indv Medium cost'})
high = high.rename(columns={'SR':'Indv High cost'})

overview = pd.concat([high,low,med],axis=1)
overview
Out[ ]:
Indv High cost Indv Low cost Indv Medium cost
style
Large Blend 0.161 0.060 0.249
Large Growth 0.196 0.122 0.132
Large Value 0.195 0.045 0.187
Mid Blend -0.120 NaN NaN
Mid Growth -0.004 -0.565 -0.452
Mid Value -0.056 0.249 0.191
In [ ]:
# Make the table for EW portfolios
for i in np.unique(b_df['style']):
    for z in np.unique(b_df['cost']):
        if len(ret[b_df[(b_df['cost'] == z) & (b_df['style'] == i)].index]) > 0:
            overview.at[i, z+' EW'] = SR(ret[b_df[(b_df['cost'] == z) & (b_df['style'] == i)].index].mean(axis=1))
        else:
            overview.at[i, z+' EW'] = np.NaN
In [ ]:
overview.sort_index()
Out[ ]:
Indv High cost Indv Low cost Indv Medium cost High-Cost EW Low-Cost EW Medium-Cost EW
style
Large Blend 0.161 0.060 0.249 0.179 0.281 0.274
Large Growth 0.196 0.122 0.132 0.281 0.430 0.267
Large Value 0.195 0.045 0.187 0.215 0.081 0.199
Mid Blend -0.120 NaN NaN -0.120 NaN NaN
Mid Growth -0.004 -0.565 -0.452 0.016 -0.011 -0.452
Mid Value -0.056 0.249 0.191 -0.056 0.249 0.373
In [ ]:
# Medium cost funds - SR
SR(ret[b_df[b_df['cost'] == 'Medium-Cost'].index].mean(axis=1))
Out[ ]:
0.25740414336483086
In [ ]:
# Low cost funds - SR
SR(ret[b_df[b_df['cost'] == 'Low-Cost'].index].mean(axis=1))
Out[ ]:
0.2713242009058264
In [ ]:
# High cost funds - SR
SR(ret[b_df[b_df['cost'] == 'High-Cost'].index].mean(axis=1))
Out[ ]:
0.21620427626801553
In [ ]:
# All Equally Weighted - SR
SR(ret[b_df.dropna().index].mean(axis=1))
Out[ ]:
0.2545661623916936
In [ ]:
# total fund in the sample
len(b_df.dropna().index)
Out[ ]:
165
In [ ]:
# All cost categories by style
for i in np.unique(b_df['style']):
    print(i, SR(ret[b_df[(b_df['style'] == i)].index].mean(axis=1)))
Large Blend 0.24920154559541519
Large Growth 0.30574527715523997
Large Value 0.1731812460887714
Mid Blend -0.1203661342918984
Mid Growth 0.056909343672018574
Mid Value 0.29718159227254304

Report to Excel & Latex¶

In this section, we converted some of our results into Excel files. We also created some latex tables from the results to make it easier to input into our thesis.

In [ ]:
over_ = pd.concat([h_df,all_ir],axis=1)
over_[['exp','ret','style','cost','SR','ir']].to_excel(f'fund_in_{var}_overview.xlsx') # Sharpe, IR, and Style

factor(res_FFC_,FAMAC,ret,h=True, test_kit=True).to_excel(f'fund_testing_ind_in_{var}.xlsx') # Testing all funds on Carhart Regressions

factor(res_FFC_,FAMAC,ret,h=True, show_sign=True).to_excel(f'fund_famac_ind_net_in_{var}.xlsx') # Carhart Regressions Net
factor(res_FFC_,FAMAC,GROSS,h=True, show_sign=True).to_excel(f'fund_famac_ind_gross_in_{var}.xlsx') # Carhart Regressions Gross
In [ ]:
print(over_[['exp','ret','style','cost','SR','ir']].to_latex())
\begin{tabular}{lrrllrr}
\toprule
{} &   exp &    ret &         style &         cost &      SR &     ir \\
\midrule
1290 GLOBAL TALENTS FUND A                        & 1.293 &  0.009 &           NaN &    High-Cost &   0.011 & -0.549 \\
1290 SMART BETA EQUITY FUND I                     & 0.953 &  0.067 &   Large Blend &  Medium-Cost &   0.421 & -0.619 \\
AB GLOBAL CORE EQUITY PORTFOLIO ADV               & 0.871 &  0.046 &   Large Blend &     Low-Cost &   0.241 & -0.702 \\
AB SUSTAINABLE GLOBAL THEMATIC FUND A             & 1.373 &  0.076 &  Large Growth &    High-Cost &   0.405 & -0.273 \\
AGF GLOBAL EQUITY FUND I DEAD - Liquidated        & 0.800 & -0.037 &           NaN &     Low-Cost &  -0.252 & -1.570 \\
AGF GLOBAL SUSTAINABLE EQUITY FUND I              & 0.800 &  0.086 &  Large Growth &     Low-Cost &   0.368 &  0.125 \\
AMG TRILOGY GLOBAL EQUITY FUND I                  & 0.914 & -0.030 &           NaN &     Low-Cost &  -0.171 & -0.802 \\
AQR GLOBAL EQ.FD.CL.I                             & 0.866 &  0.001 &   Large Value &     Low-Cost &  -0.026 & -0.681 \\
ARTIO SELECT OPPS.FD. INCO.CL.A                   & 1.380 &  0.046 &           NaN &    High-Cost &   0.340 & -1.939 \\
ADLER VALUE FUND INSTITUTIONAL                    & 1.255 &  0.078 &           NaN &    High-Cost &   0.292 & -0.047 \\
ADVISORY RESEARCH GLOBAL DIVIDEND FUND            & 1.206 &  0.007 &           NaN &    High-Cost &   0.006 & -1.147 \\
ALGER GLOBAL FOCUS FUND A                         & 1.654 &  0.048 &  Large Growth &    High-Cost &   0.243 & -0.660 \\
ALL.BERN.GBL.VAL.FD. ADVI.CL.SHS.                 & 1.734 &  0.111 &           NaN &    High-Cost &   0.867 & -0.503 \\
ALLIANZGI BEST STYLES GLOBAL EQUITY FD.CL.R6      & 0.400 & -0.155 &           NaN &     Low-Cost &  -0.507 & -0.889 \\
ALLIANZGI GLB.MGD.VOLT. FD.INSTL.CL.              & 0.600 & -0.190 &           NaN &     Low-Cost &  -0.564 & -0.899 \\
ALPHA OPPORTUNISTIC ALTERNATIVES FUND I           & 1.187 &  0.001 &           NaN &    High-Cost &  -0.124 & -1.161 \\
AMERICAN CENTURY FOCUSED GLOBAL GROWTH FUND INV   & 1.082 &  0.021 &  Large Growth &  Medium-Cost &   0.086 & -0.758 \\
AMER.FUND.CAP.WLD.GW.\& INC.FD.CL.A SHS.           & 0.779 &  0.049 &           NaN &     Low-Cost &   0.305 & -1.269 \\
AMERICAN FUNDS GLOBAL INSIGHT FUND F-3            & 0.742 &  0.071 &   Large Blend &     Low-Cost &   0.468 & -0.664 \\
NEW ECONOMY FUND                                  & 0.794 &  0.062 &  Large Growth &     Low-Cost &   0.338 & -0.436 \\
AMERICAN FUNDS NEW PERSPECTIVE FUND A             & 0.757 &  0.062 &  Large Growth &     Low-Cost &   0.344 & -0.581 \\
ARIEL GLB.EQ.FD.INSTL. CL.                        & 0.973 &  0.053 &   Large Value &  Medium-Cost &   0.403 & -0.686 \\
ARISTOTLE VALUE EQUITY FUND I                     & 0.746 &  0.079 &           NaN &     Low-Cost &   0.380 &  0.061 \\
ARISTOTLE/SAUL GLOBAL EQUITY FUND I               & 0.921 &  0.038 &   Large Blend &  Medium-Cost &   0.209 & -1.035 \\
ARTISAN GLOBAL DISCOVERY FUND INVESTOR            & 1.405 &  0.067 &    Mid Growth &    High-Cost &   0.277 & -0.059 \\
ARTISAN GLOBAL EQ.FD. INVESTOR SHARES             & 1.389 &  0.051 &   Large Blend &    High-Cost &   0.265 & -0.441 \\
ARTISAN GLB.OPPS.FD. INVR.SHS.                    & 1.200 &  0.080 &  Large Growth &    High-Cost &   0.455 & -0.197 \\
ARTISAN GLB.VAL.FD. INVESTOR SHARES               & 1.305 &  0.059 &   Large Value &    High-Cost &   0.327 & -0.589 \\
AVE MARIA WORLD EQUITY FUND                       & 1.366 &  0.050 &  Large Growth &    High-Cost &   0.272 & -0.976 \\
BBH GLOBAL CORE SELECT CL.N                       & 1.259 &  0.042 &           NaN &    High-Cost &   0.231 & -0.952 \\
BMO GLOBAL LOW VOLT.EQ. FD.CL.I                   & 0.850 & -0.002 &           NaN &     Low-Cost &  -0.058 & -1.098 \\
BMO PYRFORD GLOBAL EQUITY FUND I                  & 0.900 & -0.071 &           NaN &     Low-Cost &  -0.616 & -1.392 \\
BNY MELLON GLOBAL STOCK FUND I                    & 0.934 &  0.047 &  Large Growth &  Medium-Cost &   0.274 & -0.779 \\
BNY MELLON WORLDWIDE GROWTH FUND A                & 1.173 &  0.041 &  Large Growth &  Medium-Cost &   0.216 & -0.725 \\
BAILLIE GIFFORD GLOBAL ALPHA EQUITY FUND 2        & 0.663 &  0.017 &  Large Growth &     Low-Cost &   0.050 & -0.589 \\
BAILLIE GIFFORD GBL. STEWD.EQTIES.FD.I            & 0.650 &  0.031 &  Large Growth &     Low-Cost &   0.093 & -0.424 \\
BAILLIE GIFFORD LONG TERM GLOBAL GROWTH 2         & 0.749 &  0.099 &  Large Growth &     Low-Cost &   0.369 &  0.044 \\
BARON GLOBAL ADVANTAGE FD.INST CL.                & 1.091 &  0.112 &  Large Growth &  Medium-Cost &   0.501 &  0.108 \\
BLACKROCK ADVANTAGE GLOBAL FUND INVESTOR A        & 1.242 &  0.008 &   Large Blend &    High-Cost &   0.008 & -0.820 \\
BLACKROCK GLOBAL IMPACT FUND INST                 & 0.845 & -0.242 &    Mid Growth &     Low-Cost &  -1.242 & -2.584 \\
BLACKROCK UNCONSTRAINED EQUITY FUND INVESTOR A    & 1.251 & -0.004 &  Large Growth &    High-Cost &  -0.060 & -0.998 \\
BOSTON PRTNRS GLBL EQTY ADV FD INST               & 0.648 &  0.050 &           NaN &     Low-Cost &   0.173 & -0.985 \\
BOSTON PRTNRS GLBL EQTY FD INSTL                  & 1.019 &  0.074 &   Large Value &  Medium-Cost &   0.417 & -0.441 \\
BRANDES GLOBAL EQ.FD.CL. I                        & 1.001 &  0.035 &   Large Value &  Medium-Cost &   0.169 & -0.934 \\
BRANDES GLBL OPPTYS VAL FD I                      & 1.150 &  0.003 &           NaN &  Medium-Cost &  -0.025 & -1.392 \\
BROWN ADVISORY GLOBAL LEADERS FUND INVESTOR       & 0.873 &  0.111 &  Large Growth &     Low-Cost &   0.642 &  0.325 \\
CMG MAULDIN CORE FUND I                           & 1.956 & -0.029 &   Large Blend &    High-Cost &  -0.383 & -0.973 \\
CRM GLOBAL OPPORTUNITY FD - INVESTOR SHS          & 1.500 &  0.071 &           NaN &    High-Cost &   0.569 & -0.918 \\
CALAMOS GLB.EQ.FD.CL.I                            & 1.150 &  0.016 &  Large Growth &  Medium-Cost &   0.047 & -0.713 \\
CAMBIAR GLOBAL EQUITY FUND INVESTOR               & 1.069 & -0.014 &  Large Growth &  Medium-Cost &  -0.109 & -0.945 \\
CASTLE FOCUS FD.INVESTOR SHARES                   & 1.360 &  0.006 &   Large Value &    High-Cost &  -0.002 & -0.966 \\
CATALYST/MAP GLOBAL EQUITY FUND A                 & 1.441 &  0.055 &   Large Value &    High-Cost &   0.367 & -0.860 \\
CAUSEWAY CONCENTRATED EQUITY FUND INSTL           & 0.850 & -0.136 &   Large Blend &     Low-Cost &  -0.644 & -0.261 \\
CAUSEWAY GLB.VAL.FUND INSTL.CLASS                 & 1.027 &  0.038 &   Large Blend &  Medium-Cost &   0.158 & -0.606 \\
CHAUTAUQUA GLOBAL GROWTH FUND INSTITUTIONAL       & 0.872 &  0.108 &  Large Growth &     Low-Cost &   0.578 &  0.125 \\
COLUMBIA GLOBAL VALUE FUND A                      & 1.154 &  0.023 &   Large Value &  Medium-Cost &   0.108 & -1.115 \\
COLUMBIA SELECT GLOBAL EQUITY FUND A              & 1.359 &  0.076 &  Large Growth &    High-Cost &   0.441 & -0.347 \\
COLUMBIA SELECT GLOBAL GROWTH FUND A              & 1.466 &  0.110 &           NaN &    High-Cost &   0.608 &  0.095 \\
COMMONWEALTH GLOBAL FD.                           & 2.805 &  0.029 &   Large Blend &    High-Cost &   0.156 & -1.390 \\
THE COOK \& BYNUM FUND                             & 1.554 &  0.016 &   Large Value &    High-Cost &   0.072 & -0.817 \\
DWS CROCI SECTOR OPPORTUNITIES FUND S             & 1.200 & -0.035 &           NaN &    High-Cost &  -0.339 & -1.253 \\
DAVIS GLB.FD.CL.A                                 & 0.971 &  0.065 &   Large Blend &  Medium-Cost &   0.330 & -0.344 \\
DELAWARE GLOBAL EQUITY FUND A                     & 1.486 &  0.001 &   Large Blend &    High-Cost &  -0.031 & -0.906 \\
DEL.GLB.VAL.FD.CL.A DEAD - Liquidated             & 1.553 &  0.013 &   Large Blend &    High-Cost &   0.048 & -0.838 \\
DELAWARE IVY GLOBAL GROWTH FUND A                 & 1.423 &  0.016 &  Large Growth &    High-Cost &   0.045 & -0.606 \\
DIAMOND HILL GLOBAL FUND Y                        & 0.743 &  0.052 &   Large Blend &     Low-Cost &   0.189 & -1.084 \\
DODGE \& COX GLOBAL STOCK FUND I                   & 0.634 &  0.057 &   Large Value &     Low-Cost &   0.277 & -0.484 \\
DREYFUS STRATEGIC BETA GLOBAL EQUITY FUND I       & 0.600 &  0.104 &           NaN &     Low-Cost &   0.987 & -1.485 \\
DRIEHAUS GLB.GW.FUND DEAD - Liquidated            & 1.975 & -0.089 &           NaN &    High-Cost &  -0.430 & -1.222 \\
ERSHARES GLBL ENTREPRENEURS FD INSTL              & 1.623 &  0.015 &    Mid Growth &    High-Cost &   0.046 & -0.658 \\
EATON VANCE FOCUSED GLBL OPPTYS FD I              & 0.952 &  0.068 &  Large Growth &  Medium-Cost &   0.333 & -0.596 \\
EATON VANCE HEXAVEST GLB.EQ.FD.CL.I               & 0.990 &  0.030 &           NaN &  Medium-Cost &   0.169 & -1.331 \\
EATON VANCE RICHD.BERN. EQ.STGY.FD.CL.I           & 1.025 &  0.048 &           NaN &  Medium-Cost &   0.304 & -0.744 \\
EPOCH GLOBAL ALL CAP FUND INSTITUTIONAL           & 1.000 & -0.046 &           NaN &  Medium-Cost &  -0.399 & -1.337 \\
FEDERATED HERMES GLOBAL EQUITY FUND IS            & 0.739 &  0.055 &   Large Blend &     Low-Cost &   0.244 & -0.895 \\
FIDELITY ADVISOR GLOBAL CAPITAL APPREC FUND I     & 1.052 &  0.072 &  Large Growth &  Medium-Cost &   0.402 & -0.386 \\
FIDELITY ENDURING OPPORTUNITIES FUND              & 1.078 & -0.007 &  Large Growth &  Medium-Cost &  -0.065 & -1.248 \\
FID SRS INTRINSIC OPPTYS FD                       & 0.477 &  0.091 &           NaN &     Low-Cost &   0.580 & -0.580 \\
FIDELITY WORLDWIDE FD.                            & 0.989 &  0.044 &  Large Growth &  Medium-Cost &   0.226 & -0.644 \\
FIERA CAPITAL GLOBAL EQUITY FUND INST             & 0.900 &  0.079 &  Large Growth &     Low-Cost &   0.400 & -0.010 \\
FRANKLIN GLOBAL EQUITY FUND FUND A                & 1.367 &  0.071 &   Large Blend &    High-Cost &   0.416 & -0.542 \\
FRANKLIN MUTUAL BEACON FUND Z                     & 0.802 &  0.028 &   Large Value &     Low-Cost &   0.140 & -0.945 \\
FRANKLIN MUTUAL GLOBAL DISCOVERY FUND Z           & 0.986 &  0.009 &   Large Value &  Medium-Cost &   0.016 & -1.098 \\
FRANKLIN WORLD PERSPECTIVES FD.CL.A               & 1.366 &  0.010 &           NaN &    High-Cost &   0.027 & -1.122 \\
FRONTIER MFG GLOBAL EQUITY INSTITUTIONAL          & 0.800 &  0.009 &  Large Growth &     Low-Cost &   0.016 & -0.672 \\
FRONTIER MFG GLOBAL PLUS FUND INSTITUTIONAL       & 0.800 & -0.062 &  Large Growth &     Low-Cost &  -0.213 & -0.581 \\
FRTR MFG GLBL SUSTAINABLE FD INSTL                & 0.800 &  0.006 &  Large Growth &     Low-Cost &   0.001 & -1.357 \\
FRONTIER ROBECO SAM GLOBAL EQUITY FUND INST       & 1.200 & -0.027 &           NaN &    High-Cost &  -0.156 & -1.020 \\
GMO GLB.FOCD.EQ.FD.CL. III                        & 0.801 & -0.084 &           NaN &     Low-Cost &  -0.528 & -1.536 \\
GQG PARTNERS GLOBAL QUALITY EQUITY FUND INST      & 0.750 &  0.087 &   Large Blend &     Low-Cost &   0.481 & -0.389 \\
GABELLI GLOBAL GROWTH FUND AAA                    & 1.489 &  0.045 &  Large Growth &    High-Cost &   0.225 & -0.607 \\
GRANITE VALUE FUND DEAD - Liquidated              & 1.352 &  0.010 &           NaN &    High-Cost &   0.023 & -0.909 \\
GREENWICH IVY LONG-SHORT FUND INST                & 1.850 & -0.027 &     Mid Blend &    High-Cost &  -0.120 & -0.325 \\
GUARDIAN CAPITAL DIV GRO FD INST                  & 0.950 &  0.123 &   Large Blend &  Medium-Cost &   0.673 & -0.563 \\
GUARDIAN CAPITAL FNDM GLBL EQTY FD INST           & 0.990 &  0.027 &  Large Growth &  Medium-Cost &   0.117 & -0.541 \\
GUIDE STONE GLBL IMPACT FD INSTL                  & 0.810 & -0.201 &  Large Growth &     Low-Cost &  -1.248 & -1.147 \\
GUINNESS ATKINSON GLOBAL INNOVATORS FUND INVESTOR & 1.304 &  0.083 &  Large Growth &    High-Cost &   0.414 & -0.171 \\
HC ESG GROWTH PORTFOLIO HC STRATEGIC              & 0.351 &  0.050 &           NaN &     Low-Cost &   0.264 & -1.379 \\
HSBC GLBL EQTY VOLATILITY FOCUSED FD I            & 0.950 & -0.017 &           NaN &  Medium-Cost &  -0.165 & -1.414 \\
HARBOR GLOBAL LEADERS FUND INSTITUTIONAL          & 0.902 &  0.047 &  Large Growth &     Low-Cost &   0.231 & -0.517 \\
HARBOR GLB.VAL.FD.INSTL. CL.                      & 0.970 &  0.131 &           NaN &  Medium-Cost &   0.951 & -1.021 \\
HARDING LOEVNER GLOB.EQ. PRTF.ADVI.CL.            & 1.163 &  0.042 &  Large Growth &  Medium-Cost &   0.211 & -0.652 \\
HARDING LOEVNER GLOBAL EQUITY RESEARCH PFLO INS   & 0.844 &  0.005 &   Large Blend &     Low-Cost &  -0.008 & -0.977 \\
HARTFORD CLIMATE OPPORTUNITIES FUND A             & 1.131 &  0.047 &  Large Growth &  Medium-Cost &   0.200 & -0.514 \\
HARTFORD GLB.GW.FD.CL.A DEAD - Merged:30913E      & 1.480 &  0.191 &           NaN &    High-Cost &   1.446 &  0.392 \\
HARTFORD GLOBAL RESEARCH HLS IA                   & 1.029 &  0.150 &           NaN &  Medium-Cost &   1.186 & -0.688 \\
HOTCHKIS \& WILEY GLOBAL VALUE FD.CL.I             & 1.045 &  0.033 &   Large Value &  Medium-Cost &   0.126 & -0.490 \\
IMPAX GLBL ENVIRON MARKETS FD INST                & 1.048 &  0.084 &           NaN &  Medium-Cost &   0.469 & -0.246 \\
IMPAX GLBL OPPTYS FD INSTL                        & 0.936 &  0.102 &           NaN &  Medium-Cost &   0.492 &  0.161 \\
INVESCO GLOBAL CORE EQ. FD.CL.A                   & 1.253 &  0.015 &   Large Blend &    High-Cost &   0.050 & -1.064 \\
INVESCO GLOBAL FOCUS FUND Y                       & 1.026 &  0.071 &   Large Blend &  Medium-Cost &   0.342 & -0.278 \\
INVESCO GLOBAL FUND A                             & 1.121 &  0.043 &  Large Growth &  Medium-Cost &   0.194 & -0.653 \\
IVS.GLB.GW.FD.CL.A DEAD - Merged:517169           & 1.320 & -0.027 &  Large Growth &    High-Cost &  -0.154 & -0.862 \\
INVESCO GLOBAL OPPS.FD. CL.A                      & 1.222 &  0.004 &           NaN &    High-Cost &  -0.015 & -1.023 \\
IRONBRIDGE GLOBAL FUND DEAD - Liquidated          & 1.000 &  0.013 &           NaN &  Medium-Cost &   0.056 & -1.164 \\
JOHCM GLOBAL SELECT FUND INST                     & 1.060 &  0.032 &  Large Growth &  Medium-Cost &   0.145 & -0.557 \\
JP MORG GLBL UNCONSTRAINED EQTY FD I              & 0.653 & -0.015 &           NaN &     Low-Cost &  -0.134 & -0.946 \\
JANUS HENDERSON GLOBAL RESEARCH FUND D            & 0.816 &  0.069 &  Large Growth &     Low-Cost &   0.386 & -0.565 \\
JANUS HENDERSON GLOBAL SELECT FUND T              & 0.926 &  0.052 &   Large Blend &  Medium-Cost &   0.257 & -0.621 \\
JANUS HENDERSON GLBL SUSTAINABLE EQTY FD D        & 1.000 & -0.178 &  Large Growth &  Medium-Cost &  -0.795 & -1.338 \\
JANUS HENDERSON GLOBAL VALUE FUND D               & 0.881 & -0.011 &           NaN &     Low-Cost &  -0.095 & -0.942 \\
JANUS PRESERVATION SERIES-GLOBAL C                & 2.647 & -0.016 &           NaN &    High-Cost &  -0.201 & -1.845 \\
JENSEN GLOBAL QUALITY GROWTH FUND I               & 1.020 & -0.015 &  Large Growth &  Medium-Cost &  -0.111 &  0.764 \\
JOHN HANCOCK FDAMENTAL GLBL FRANCHISE FD NAV      & 0.877 & -0.011 &   Large Blend &     Low-Cost &  -0.090 & -0.833 \\
JOHN HANCOCK GLOBAL EQUITY FUND NAV               & 0.886 &  0.002 &   Large Blend &     Low-Cost &  -0.029 & -0.860 \\
JOHN HANCOCK FUNDS GLB. OPPS.FD.CL.A              & 1.481 &  0.017 &           NaN &    High-Cost &   0.083 & -1.526 \\
JHAN.FUND.III GLB. SHAREHOLDER YLD.FD.CL.I        & 0.920 &  0.016 &   Large Value &     Low-Cost &   0.074 & -1.229 \\
JOHN HANCOCK GLOBAL THEMATIC OPPS FUND NAV        & 0.840 & -0.008 &  Large Growth &     Low-Cost &  -0.072 & -1.234 \\
JOHN HANCOCK MUTUAL SHARES FUND NAV               & 1.009 &  0.116 &           NaN &  Medium-Cost &   1.071 & -0.707 \\
JOHN HANCOCK TECHNICAL OPPORTUNITIES FUND NAV     & 1.183 &  0.025 &           NaN &    High-Cost &   0.091 & -0.503 \\
JUBAK GLOBAL EQ.FD. DEAD - Liquidated             & 1.665 &  0.015 &           NaN &    High-Cost &   0.071 & -3.291 \\
LSV GLOBAL MANAGED VOLATILITY FUND INST           & 0.750 &  0.031 &   Large Value &     Low-Cost &   0.178 & -0.904 \\
LSV GLOBAL VALUE FUND INST                        & 0.900 &  0.052 &     Mid Value &     Low-Cost &   0.249 & -0.693 \\
LAZARD EQUITY FRANCHISE PORTFOLIO INSTITUTIONAL   & 0.950 & -0.011 &     Mid Value &  Medium-Cost &  -0.066 & -0.800 \\
LAZARD GLOBAL EQUITY SELECT PORTFOLIO INSTL       & 1.013 &  0.057 &  Large Growth &  Medium-Cost &   0.346 & -0.535 \\
LAZARD GLOBAL STRATEGIC EQUITY PORTFOLIO INST     & 1.038 & -0.084 &  Large Growth &  Medium-Cost &  -0.258 & -0.554 \\
LONGLEAF PARTNERS GLOBAL FD.                      & 1.333 & -0.005 &     Mid Value &    High-Cost &  -0.056 & -0.855 \\
LORD ABBETT GLOBAL EQUITY FUND A                  & 0.938 &  0.023 &   Large Blend &  Medium-Cost &   0.090 & -0.704 \\
MFAM GLBL OPPTYS FD INVSTR                        & 1.208 &  0.088 &           NaN &    High-Cost &   0.514 & -0.417 \\
MFS BLENDED RESEARCH GLOBAL EQUITY FUND R6        & 0.583 &  0.050 &   Large Blend &     Low-Cost &   0.257 & -1.121 \\
MFS GLB.EQ.FD.CL.B                                & 1.961 &  0.064 &   Large Blend &    High-Cost &   0.378 & -0.786 \\
MFS GLOBAL LEADERS FD. CL.A                       & 1.450 & -0.001 &           NaN &    High-Cost &  -0.049 & -1.084 \\
MAIN STAY EPOCH CAPITAL GROWTH FUND I             & 0.906 & -0.002 &  Large Growth &     Low-Cost &  -0.039 & -0.572 \\
MAINSTAY EPOCH GLB.CHO. FD.CL.I                   & 1.128 &  0.021 &   Large Blend &  Medium-Cost &   0.102 & -1.030 \\
MAINSTAY EPOCH GLB.EQ. YLD.FD.CL.I                & 0.852 &  0.031 &   Large Value &     Low-Cost &   0.175 & -1.076 \\
MAINSTAY ICAP GLB.FD.CL. I                        & 0.900 &  0.045 &           NaN &     Low-Cost &   0.315 & -1.244 \\
MNGD ACCT SRS BLKRK GA DYN EQTY FD K              & 0.505 &  0.042 &           NaN &     Low-Cost &   0.166 & -0.630 \\
MARSICO GLOBAL FUND INVESTOR                      & 1.534 &  0.048 &  Large Growth &    High-Cost &   0.220 & -0.418 \\
MASS MUTUAL GLOBAL FUND R5                        & 0.931 &  0.014 &  Large Growth &  Medium-Cost &   0.039 & -0.690 \\
MONDRIAN GLOBAL EQUITY VALUE FUND                 & 0.740 & -0.070 &   Large Value &     Low-Cost &  -0.412 &  0.181 \\
MORGAN STANLEY GLOBAL CONCENTRATED PORTFOLIO I    & 0.990 &  0.081 &  Large Growth &  Medium-Cost &   0.428 & -0.246 \\
MORGAN STANLEY GLOBAL CORE PORTFOLIO I            & 0.985 &  0.077 &  Large Growth &  Medium-Cost &   0.402 & -0.378 \\
MORGAN STANLEY INSTL.FD. GLB.INSIGHT PRTF.CL.H    & 1.663 &  0.015 &           NaN &    High-Cost &   0.055 & -0.725 \\
MORGAN STANLEY GLOBAL SUSTAIN PORTFOLIO I         & 0.963 &  0.042 &  Large Growth &  Medium-Cost &   0.236 & -0.458 \\
MGST.INSTL.FD.GLB.FRCH. PRTF.CL.I                 & 0.956 &  0.065 &  Large Growth &  Medium-Cost &   0.420 & -0.403 \\
MORG STAN INST GLBL PERMANENCE PFOLIO I           & 0.997 &  0.032 &  Large Growth &  Medium-Cost &   0.112 & -0.374 \\
MORG STAN INSTL CNTRPNT GLBL I                    & 1.038 & -0.007 &  Large Growth &  Medium-Cost &  -0.043 & -0.468 \\
MORG STAN INSTL GLBL INSIGHT PRT I                & 1.155 &  0.007 &  Large Growth &  Medium-Cost &   0.004 & -0.457 \\
MORGAN STANLEY INSTL.FD. GLB.GW.PRTF.CL.I         & 1.014 &  0.076 &           NaN &  Medium-Cost &   0.361 & -0.194 \\
MUNDOVAL FUND                                     & 1.498 &  0.074 &  Large Growth &    High-Cost &   0.433 & -0.406 \\
NATIONWIDE GLBL SUSTAINABLE EQTY FD R6            & 0.981 &  0.051 &  Large Growth &  Medium-Cost &   0.261 & -0.683 \\
NATIXIS LOOMIS SAYLES GLOBAL GROWTH Y             & 1.010 &  0.041 &  Large Growth &  Medium-Cost &   0.191 & -0.657 \\
NEUBERGER BERMAN FOCUS FD.                        & 0.922 &  0.019 &  Large Growth &  Medium-Cost &   0.068 & -0.733 \\
NEUBERGER BERMAN GLOBAL THEMATIC OPPS.INSTL.CL.   & 1.250 &  0.044 &           NaN &    High-Cost &   0.399 & -1.457 \\
NINETY ONE GLOBAL FRANCHISE FUND I                & 0.850 &  0.073 &  Large Growth &     Low-Cost &   0.382 &  0.006 \\
NORTHERN ENGAGE 360 FUND                          & 0.700 &  0.000 &   Large Blend &     Low-Cost &  -0.028 & -0.893 \\
NUVEEN GLOBAL GROWTH FD. CL.A                     & 1.421 &  0.087 &   Large Blend &    High-Cost &   0.598 & -0.122 \\
NUVEEN NWQ GLOBAL ALL- CAP FUND I                 & 0.934 & -0.010 &           NaN &  Medium-Cost &  -0.101 & -0.895 \\
OAKMARK GLOBAL FUND INVESTOR                      & 1.148 &  0.049 &   Large Value &  Medium-Cost &   0.208 & -0.508 \\
OAKMARK GLOBAL SELECT FUND INVESTOR               & 1.152 &  0.059 &   Large Blend &  Medium-Cost &   0.273 & -0.490 \\
OLD WESTBURY ALL CAP ESG FUND                     & 1.000 & -0.003 &  Large Growth &  Medium-Cost &  -0.043 & -1.214 \\
PF MULTI-ASSET FUND P                             & 0.510 & -0.021 &           NaN &     Low-Cost &  -0.103 & -0.634 \\
PGIM JENNISON GLOBAL OPPORTUNITIES FUND Z         & 1.077 &  0.118 &  Large Growth &  Medium-Cost &   0.568 &  0.180 \\
PIMCO EQUITIES PFR. WORLD FD.CL.A                 & 1.246 &  0.001 &           NaN &    High-Cost &  -0.031 & -0.969 \\
PIMCO GLOBAL DIVIDEND FUND A                      & 1.185 & -0.099 &           NaN &    High-Cost &  -0.423 & -1.053 \\
PMC DIVERSIFIED EQUITY FUND ADVISOR               & 1.248 &  0.046 &   Large Blend &    High-Cost &   0.257 & -0.997 \\
PARVIN HEDGED EQUITY SOLARI WORLD FUND            & 0.010 & -0.121 &   Large Blend &     Low-Cost &  -1.009 &  0.142 \\
PHAEACIAN GLOBAL VALUE FUND INST                  & 1.169 &  0.003 &           NaN &  Medium-Cost &  -0.020 & -0.910 \\
PION GLBL SUSTAINABLE EQTY FD A                   & 1.244 &  0.057 &   Large Value &    High-Cost &   0.319 & -0.569 \\
POLARIS GLB.VAL.FD.                               & 1.057 &  0.079 &     Mid Value &  Medium-Cost &   0.448 & -0.350 \\
POLEN GLOBAL GROWTH FUND INSTITUTIONAL            & 1.074 &  0.097 &  Large Growth &  Medium-Cost &   0.546 &  0.008 \\
PRINCIPAL SYSTEMAT EX INTERNATIONAL FUND R-6      & 0.625 & -0.026 &   Large Blend &     Low-Cost &  -0.185 & -1.601 \\
PURISIMA ALL-PURPOSE FD. DEAD - Liquidated        & 1.500 & -0.014 &           NaN &    High-Cost & -16.254 & -1.049 \\
QUAKER GLOBAL TACTICAL ALLOCATION FUND ADVISOR    & 2.392 &  0.060 &           NaN &    High-Cost &   0.476 & -0.778 \\
RBC GLOBAL OPPORTUNITIES FUND I                   & 0.897 &  0.098 &  Large Growth &     Low-Cost &   0.528 & -0.143 \\
ROCKEFELLER EQTY ALLOCTN FD INSTL                 & 1.209 & -0.034 &           NaN &    High-Cost &  -0.215 & -0.848 \\
RUSSELL INVESTMENTS GLOBAL EQUITY FUND S          & 1.197 &  0.008 &   Large Blend &    High-Cost &   0.009 & -0.831 \\
SEI INST INV GLBL MNGD VOLATILITY FD A            & 0.243 & -0.003 &   Large Value &     Low-Cost &  -0.062 & -0.892 \\
SEI INST MGD GLBL MNGD VOLATILITY FD F            & 1.112 &  0.015 &   Large Value &  Medium-Cost &   0.070 & -0.852 \\
SGI GLOBAL EQUITY FUND I                          & 0.859 &  0.057 &   Large Blend &     Low-Cost &   0.309 & -0.396 \\
SALIENT GLOBAL EQ.FD.CL. I                        & 1.600 & -0.051 &           NaN &    High-Cost &  -0.526 & -1.546 \\
SANDS CAPITAL GLBL GRO FD INSTL                   & 1.019 &  0.070 &  Large Growth &  Medium-Cost &   0.326 & -0.268 \\
SCHARF GLOBAL OPPORTUNITY FUND INST               & 0.612 &  0.037 &   Large Value &     Low-Cost &   0.187 & -0.621 \\
SCHRODER GLOBAL MULTI- CAP EQUITY FUND R6         & 0.700 & -0.231 &           NaN &     Low-Cost &  -0.479 & -0.706 \\
SCOUT GLOBAL EQUITY FD. DEAD - Liquidated         & 1.295 &  0.042 &           NaN &    High-Cost &   0.213 & -0.636 \\
SEGALL BRYANT \& HAMILL GLOBAL ALL CAP FUND RTL    & 0.999 & -0.012 &  Large Growth &  Medium-Cost &  -0.107 & -0.919 \\
SELECTIVE OPPORTUNITY FUND FOUNDATION             & 1.396 &  0.029 &           NaN &    High-Cost &   0.082 & -0.481 \\
SIRIOS FOCUS FUND INST                            & 1.600 & -0.154 &  Large Growth &    High-Cost &  -0.753 & -0.503 \\
SIT ESG GROWTH FUND I                             & 1.056 &  0.063 &   Large Blend &  Medium-Cost &   0.336 & -0.553 \\
STATE STREET DEFENSIVE GLOBAL EQUITY FUND I       & 0.778 & -0.011 &           NaN &     Low-Cost &  -0.093 & -1.086 \\
STATE STREET GLOBAL VALUE SPOTLIGHT FUND K        & 0.750 & -0.277 &           NaN &     Low-Cost &  -1.493 & -1.904 \\
STRATEGIC EQUITY ALLOCATION FUND NAV              & 0.529 &  0.015 &           NaN &     Low-Cost &   0.051 & -0.836 \\
T.ROWE PRICE GLB.LGCP. STK.FD.                    & 0.962 &  0.071 &           NaN &  Medium-Cost &   0.388 & -0.347 \\
T ROWE PRICE GLOBAL IMPACT EQUITY                 & 0.944 & -0.165 &  Large Growth &  Medium-Cost &  -0.669 & -0.889 \\
T ROWE PRICE GLB.STK.FD.                          & 0.851 &  0.105 &  Large Growth &     Low-Cost &   0.578 &  0.088 \\
T ROWE PRICE GLOBAL VALUE EQUITY                  & 0.746 &  0.022 &   Large Value &     Low-Cost &   0.095 & -0.782 \\
T.ROWE PRICE INSTL. DEAD - Merged:9051FK          & 0.751 &  0.042 &           NaN &     Low-Cost &   0.188 & -0.485 \\
T ROWE PRICE INSTL.GLB. LGCP.EQ.FD.               & 0.749 &  0.063 &           NaN &     Low-Cost &   0.385 & -0.508 \\
T ROWE PRICE QM GLOBAL EQUITY FUND                & 0.734 &  0.058 &   Large Blend &     Low-Cost &   0.285 & -0.538 \\
TD GLOBAL LOW VOLATILITY EQUITY FUND INST         & 0.900 & -0.008 &           NaN &     Low-Cost &  -0.110 & -0.611 \\
TIF GLB.EQ.SERIES FUND DEAD - Liquidated          & 0.848 & -0.132 &           NaN &     Low-Cost &  -0.384 & -0.609 \\
TEMPLETON GLB.OPPOR.TST. I                        & 1.329 &  0.033 &           NaN &    High-Cost &   0.184 & -1.044 \\
TEMPLETON GROWTH FD.CL.A                          & 1.059 &  0.033 &   Large Blend &  Medium-Cost &   0.164 & -1.056 \\
TEMPLETON WLD.FUND.CL.A                           & 1.055 & -0.007 &  Large Growth &  Medium-Cost &  -0.078 & -1.240 \\
THORNBURG GLOBAL OPPORTUNITIES FUND I             & 0.985 &  0.080 &   Large Value &  Medium-Cost &   0.464 & -0.226 \\
THRIVENT GLOBAL STOCK FUND A                      & 1.024 &  0.016 &   Large Blend &  Medium-Cost &   0.057 & -0.971 \\
THRIVENT LOW VOLATILITY EQUITY S                  & 1.099 &  0.033 &   Large Blend &  Medium-Cost &   0.194 & -0.614 \\
TRILLIUM ESG GLOBAL EQUITY FUND RETAIL            & 1.364 &  0.059 &   Large Blend &    High-Cost &   0.345 & -0.702 \\
TWEEDY BROWNE INTL VALUE FUND II - CURR UNHGD     & 1.367 &  0.040 &   Large Value &    High-Cost &   0.245 & -1.039 \\
TWEEDY BROWNE VAL.FD.                             & 1.369 &  0.007 &   Large Value &    High-Cost &   0.002 & -1.044 \\
UBS ENGAGE FOR IMPACT FUND P                      & 0.850 &  0.031 &    Mid Growth &     Low-Cost &   0.112 & -0.882 \\
US GLB.INVRS.FUND.GLB. MEGATRENDS FUND            & 2.110 &  0.139 &           NaN &    High-Cost &   1.495 & -0.944 \\
USAA CAPITAL GROWTH FUND FUND                     & 1.198 &  0.057 &   Large Blend &    High-Cost &   0.322 & -0.668 \\
USAA SUSTAINABLE WORLD FUND FUND                  & 1.149 &  0.029 &   Large Blend &  Medium-Cost &   0.131 & -0.631 \\
UPRIGHT GW.FD.                                    & 2.222 &  0.049 &           NaN &    High-Cost &   0.122 & -0.168 \\
VANGD.BAIL GIFF GL POSITIVE IPCT.STK.FD INV       & 0.676 &  0.136 &  Large Growth &     Low-Cost &   0.483 &  0.280 \\
VANGUARD GLOBAL CAPITAL CYCLES FUND INVESTOR      & 0.334 & -0.029 &   Large Value &     Low-Cost &  -0.134 & -0.553 \\
VANGUARD GLBL ESG SEL STK FD ADMIRAL              & 0.455 &  0.034 &   Large Blend &     Low-Cost &   0.157 &  0.515 \\
VANGUARD HORIZON FD. VANGD.GLB.EQ.FD.             & 0.519 &  0.054 &           NaN &     Low-Cost &   0.302 & -0.726 \\
VICTORY NEWBRIDGE GLOBAL EQUITY FUND A            & 1.400 &  0.009 &           NaN &    High-Cost &   0.021 & -1.038 \\
VICTORY RS GLOBAL FUND Y                          & 0.875 &  0.064 &   Large Blend &     Low-Cost &   0.378 & -0.519 \\
VIRTUS GLB.COMD.STK.FD. CL.I                      & 1.400 & -0.076 &           NaN &    High-Cost &  -0.554 & -2.147 \\
VIRTUS NFJ GLOBAL SUSTAINABILITY FUND INST        & 0.833 &  0.019 &   Large Blend &     Low-Cost &   0.062 & -0.624 \\
VIRTUS SGA GLOBAL GROWTH FUND R6                  & 1.238 &  0.077 &  Large Growth &    High-Cost &   0.445 & -0.330 \\
VIRTUS SGA NEW LEADERS GROWTH FUND R6             & 0.912 & -0.349 &  Large Growth &     Low-Cost &  -1.528 & -2.929 \\
VIRTUS VONTOBEL GLOBAL OPPORTUNITIES FUND A       & 1.443 &  0.053 &  Large Growth &    High-Cost &   0.299 & -0.539 \\
VONTOBEL GLOBAL EQUITY INSTITUTIONAL FUND I       & 0.900 &  0.084 &           NaN &     Low-Cost &   0.657 & -0.159 \\
VOYA GLBL HI DIV LOW VOLATILITY FD A              & 1.201 &  0.039 &   Large Value &    High-Cost &   0.228 & -1.038 \\
VOYA GLOBAL OPPORTUNITIES FUND A                  & 1.462 &  0.104 &           NaN &    High-Cost &   0.801 & -1.368 \\
WCM FOCUSED GLB.GW.FD. INSTL.CL.                  & 1.081 &  0.045 &  Large Growth &  Medium-Cost &   0.220 & -0.256 \\
WASATCH GLOBAL SELECT FUND INSTITUTIONAL          & 0.954 & -0.099 &    Mid Growth &  Medium-Cost &  -0.452 & -1.263 \\
WASATCH GLOBAL VALUE FUND INVESTOR                & 1.102 & -0.017 &   Large Value &  Medium-Cost &  -0.114 & -0.765 \\
WELLS FARGO INTRINSIC WORLD EQTY FD A             & 1.377 &  0.008 &           NaN &    High-Cost &   0.006 & -0.603 \\
WESTWOOD GLOBAL EQUITY FD.INSTL.SHS.              & 1.000 & -0.061 &           NaN &  Medium-Cost &  -0.259 & -0.566 \\
WILLIAM BLAIR GLOBAL LEADERS FD.CL.I              & 1.092 &  0.058 &  Large Growth &  Medium-Cost &   0.291 & -0.532 \\
WINTERGREEN FD. DEAD - Liquidated                 & 1.905 & -0.087 &           NaN &    High-Cost &  -0.465 & -1.082 \\
WINTON GLOBAL EQUITY PORTFOLIO INSTITUTIONAL      & 0.760 &  0.012 &           NaN &     Low-Cost &   0.042 & -1.388 \\
WORLD SELECT EQUITY FUND A                        & 0.344 & -0.006 &           NaN &     Low-Cost &  -0.058 & -0.997 \\
YORKTOWN CAPITAL APPRECIATION FUND A              & 1.625 & -0.049 &    Mid Growth &    High-Cost &  -0.336 & -1.475 \\
ABRDN EMERGING MARKETS EX-CHINA FUND A            & 1.543 &  0.002 &   Large Blend &    High-Cost &  -0.023 & -1.058 \\
ABRDN GLOBAL EQUITY IMPACT FUND A                 & 1.691 &  0.041 &  Large Growth &    High-Cost &   0.206 & -0.866 \\
\bottomrule
\end{tabular}

In [ ]:
print(factor(res_FFC_,FAMAC,ret,h=True, test_kit=True).to_latex())
\begin{tabular}{llll}
\toprule
{} &  White &     BG &     JB \\
\midrule
1290 GLOBAL TALENTS FUND A                        &  False &   True &  False \\
1290 SMART BETA EQUITY FUND I                     &   True &   True &  False \\
AB GLOBAL CORE EQUITY PORTFOLIO ADV               &   True &  False &  False \\
AB SUSTAINABLE GLOBAL THEMATIC FUND A             &   True &   True &  False \\
AGF GLOBAL EQUITY FUND I DEAD - Liquidated        &   True &   True &   True \\
AGF GLOBAL SUSTAINABLE EQUITY FUND I              &   True &   True &   True \\
AMG TRILOGY GLOBAL EQUITY FUND I                  &   True &   True &  False \\
AQR GLOBAL EQ.FD.CL.I                             &   True &   True &  False \\
ARTIO SELECT OPPS.FD. INCO.CL.A                   &   True &  False &   True \\
ADLER VALUE FUND INSTITUTIONAL                    &   True &   True &   True \\
ADVISORY RESEARCH GLOBAL DIVIDEND FUND            &   True &   True &  False \\
ALGER GLOBAL FOCUS FUND A                         &   True &   True &  False \\
ALL.BERN.GBL.VAL.FD. ADVI.CL.SHS.                 &   True &   True &   True \\
ALLIANZGI BEST STYLES GLOBAL EQUITY FD.CL.R6      &  False &  False &  False \\
ALLIANZGI GLB.MGD.VOLT. FD.INSTL.CL.              &   True &   True &  False \\
ALPHA OPPORTUNISTIC ALTERNATIVES FUND I           &   True &   True &   True \\
AMERICAN CENTURY FOCUSED GLOBAL GROWTH FUND INV   &   True &   True &  False \\
AMER.FUND.CAP.WLD.GW.\& INC.FD.CL.A SHS.           &   True &   True &  False \\
AMERICAN FUNDS GLOBAL INSIGHT FUND F-3            &   True &   True &  False \\
NEW ECONOMY FUND                                  &   True &   True &  False \\
AMERICAN FUNDS NEW PERSPECTIVE FUND A             &   True &   True &  False \\
ARIEL GLB.EQ.FD.INSTL. CL.                        &  False &   True &  False \\
ARISTOTLE VALUE EQUITY FUND I                     &  False &   True &   True \\
ARISTOTLE/SAUL GLOBAL EQUITY FUND I               &   True &   True &  False \\
ARTISAN GLOBAL DISCOVERY FUND INVESTOR            &   True &   True &  False \\
ARTISAN GLOBAL EQ.FD. INVESTOR SHARES             &   True &   True &  False \\
ARTISAN GLB.OPPS.FD. INVR.SHS.                    &   True &   True &  False \\
ARTISAN GLB.VAL.FD. INVESTOR SHARES               &   True &   True &  False \\
AVE MARIA WORLD EQUITY FUND                       &   True &   True &  False \\
BBH GLOBAL CORE SELECT CL.N                       &   True &   True &  False \\
BMO GLOBAL LOW VOLT.EQ. FD.CL.I                   &   True &   True &  False \\
BMO PYRFORD GLOBAL EQUITY FUND I                  &   True &   True &   True \\
BNY MELLON GLOBAL STOCK FUND I                    &   True &   True &  False \\
BNY MELLON WORLDWIDE GROWTH FUND A                &   True &   True &  False \\
BAILLIE GIFFORD GLOBAL ALPHA EQUITY FUND 2        &   True &   True &  False \\
BAILLIE GIFFORD GBL. STEWD.EQTIES.FD.I            &   True &   True &  False \\
BAILLIE GIFFORD LONG TERM GLOBAL GROWTH 2         &   True &   True &  False \\
BARON GLOBAL ADVANTAGE FD.INST CL.                &  False &   True &  False \\
BLACKROCK ADVANTAGE GLOBAL FUND INVESTOR A        &   True &   True &  False \\
BLACKROCK GLOBAL IMPACT FUND INST                 &   True &   True &   True \\
BLACKROCK UNCONSTRAINED EQUITY FUND INVESTOR A    &   True &   True &  False \\
BOSTON PRTNRS GLBL EQTY ADV FD INST               &   True &   True &  False \\
BOSTON PRTNRS GLBL EQTY FD INSTL                  &   True &   True &  False \\
BRANDES GLOBAL EQ.FD.CL. I                        &   True &   True &  False \\
BRANDES GLBL OPPTYS VAL FD I                      &  False &   True &   True \\
BROWN ADVISORY GLOBAL LEADERS FUND INVESTOR       &  False &   True &   True \\
CMG MAULDIN CORE FUND I                           &   True &   True &  False \\
CRM GLOBAL OPPORTUNITY FD - INVESTOR SHS          &   True &   True &   True \\
CALAMOS GLB.EQ.FD.CL.I                            &   True &   True &  False \\
CAMBIAR GLOBAL EQUITY FUND INVESTOR               &   True &   True &  False \\
CASTLE FOCUS FD.INVESTOR SHARES                   &   True &   True &  False \\
CATALYST/MAP GLOBAL EQUITY FUND A                 &   True &   True &  False \\
CAUSEWAY CONCENTRATED EQUITY FUND INSTL           &   True &   True &   True \\
CAUSEWAY GLB.VAL.FUND INSTL.CLASS                 &   True &   True &  False \\
CHAUTAUQUA GLOBAL GROWTH FUND INSTITUTIONAL       &   True &   True &  False \\
COLUMBIA GLOBAL VALUE FUND A                      &   True &   True &  False \\
COLUMBIA SELECT GLOBAL EQUITY FUND A              &   True &   True &  False \\
COLUMBIA SELECT GLOBAL GROWTH FUND A              &   True &   True &  False \\
COMMONWEALTH GLOBAL FD.                           &   True &   True &  False \\
THE COOK \& BYNUM FUND                             &   True &   True &  False \\
DWS CROCI SECTOR OPPORTUNITIES FUND S             &  False &   True &   True \\
DAVIS GLB.FD.CL.A                                 &   True &  False &  False \\
DELAWARE GLOBAL EQUITY FUND A                     &   True &   True &  False \\
DEL.GLB.VAL.FD.CL.A DEAD - Liquidated             &   True &   True &  False \\
DELAWARE IVY GLOBAL GROWTH FUND A                 &  False &   True &  False \\
DIAMOND HILL GLOBAL FUND Y                        &   True &   True &  False \\
DODGE \& COX GLOBAL STOCK FUND I                   &   True &   True &  False \\
DREYFUS STRATEGIC BETA GLOBAL EQUITY FUND I       &   True &   True &  False \\
DRIEHAUS GLB.GW.FUND DEAD - Liquidated            &  False &   True &  False \\
ERSHARES GLBL ENTREPRENEURS FD INSTL              &   True &   True &  False \\
EATON VANCE FOCUSED GLBL OPPTYS FD I              &   True &   True &  False \\
EATON VANCE HEXAVEST GLB.EQ.FD.CL.I               &   True &   True &  False \\
EATON VANCE RICHD.BERN. EQ.STGY.FD.CL.I           &   True &  False &  False \\
EPOCH GLOBAL ALL CAP FUND INSTITUTIONAL           &   True &   True &  False \\
FEDERATED HERMES GLOBAL EQUITY FUND IS            &   True &   True &   True \\
FIDELITY ADVISOR GLOBAL CAPITAL APPREC FUND I     &   True &   True &  False \\
FIDELITY ENDURING OPPORTUNITIES FUND              &   True &   True &   True \\
FID SRS INTRINSIC OPPTYS FD                       &   True &   True &   True \\
FIDELITY WORLDWIDE FD.                            &   True &   True &  False \\
FIERA CAPITAL GLOBAL EQUITY FUND INST             &   True &  False &   True \\
FRANKLIN GLOBAL EQUITY FUND FUND A                &   True &   True &  False \\
FRANKLIN MUTUAL BEACON FUND Z                     &   True &   True &  False \\
FRANKLIN MUTUAL GLOBAL DISCOVERY FUND Z           &   True &   True &  False \\
FRANKLIN WORLD PERSPECTIVES FD.CL.A               &   True &   True &  False \\
FRONTIER MFG GLOBAL EQUITY INSTITUTIONAL          &  False &   True &  False \\
FRONTIER MFG GLOBAL PLUS FUND INSTITUTIONAL       &   True &   True &  False \\
FRTR MFG GLBL SUSTAINABLE FD INSTL                &   True &   True &   True \\
FRONTIER ROBECO SAM GLOBAL EQUITY FUND INST       &   True &   True &  False \\
GMO GLB.FOCD.EQ.FD.CL. III                        &   True &   True &  False \\
GQG PARTNERS GLOBAL QUALITY EQUITY FUND INST      &   True &   True &   True \\
GABELLI GLOBAL GROWTH FUND AAA                    &   True &   True &  False \\
GRANITE VALUE FUND DEAD - Liquidated              &   True &   True &  False \\
GREENWICH IVY LONG-SHORT FUND INST                &   True &   True &  False \\
GUARDIAN CAPITAL DIV GRO FD INST                  &   True &   True &  False \\
GUARDIAN CAPITAL FNDM GLBL EQTY FD INST           &   True &  False &   True \\
GUIDE STONE GLBL IMPACT FD INSTL                  &  False &   True &   True \\
GUINNESS ATKINSON GLOBAL INNOVATORS FUND INVESTOR &   True &   True &  False \\
HC ESG GROWTH PORTFOLIO HC STRATEGIC              &   True &   True &  False \\
HSBC GLBL EQTY VOLATILITY FOCUSED FD I            &   True &   True &   True \\
HARBOR GLOBAL LEADERS FUND INSTITUTIONAL          &   True &   True &  False \\
HARBOR GLB.VAL.FD.INSTL. CL.                      &   True &   True &   True \\
HARDING LOEVNER GLOB.EQ. PRTF.ADVI.CL.            &   True &   True &  False \\
HARDING LOEVNER GLOBAL EQUITY RESEARCH PFLO INS   &   True &   True &  False \\
HARTFORD CLIMATE OPPORTUNITIES FUND A             &   True &   True &  False \\
HARTFORD GLB.GW.FD.CL.A DEAD - Merged:30913E      &   True &   True &   True \\
HARTFORD GLOBAL RESEARCH HLS IA                   &   True &   True &  False \\
HOTCHKIS \& WILEY GLOBAL VALUE FD.CL.I             &   True &  False &  False \\
IMPAX GLBL ENVIRON MARKETS FD INST                &   True &   True &   True \\
IMPAX GLBL OPPTYS FD INSTL                        &   True &   True &   True \\
INVESCO GLOBAL CORE EQ. FD.CL.A                   &  False &   True &  False \\
INVESCO GLOBAL FOCUS FUND Y                       &   True &   True &  False \\
INVESCO GLOBAL FUND A                             &   True &   True &  False \\
IVS.GLB.GW.FD.CL.A DEAD - Merged:517169           &  False &   True &  False \\
INVESCO GLOBAL OPPS.FD. CL.A                      &   True &   True &  False \\
IRONBRIDGE GLOBAL FUND DEAD - Liquidated          &   True &   True &  False \\
JOHCM GLOBAL SELECT FUND INST                     &   True &   True &  False \\
JP MORG GLBL UNCONSTRAINED EQTY FD I              &   True &   True &  False \\
JANUS HENDERSON GLOBAL RESEARCH FUND D            &   True &   True &  False \\
JANUS HENDERSON GLOBAL SELECT FUND T              &   True &   True &  False \\
JANUS HENDERSON GLBL SUSTAINABLE EQTY FD D        &   True &   True &   True \\
JANUS HENDERSON GLOBAL VALUE FUND D               &   True &   True &  False \\
JANUS PRESERVATION SERIES-GLOBAL C                &   True &   True &  False \\
JENSEN GLOBAL QUALITY GROWTH FUND I               &   True &   True &   True \\
JOHN HANCOCK FDAMENTAL GLBL FRANCHISE FD NAV      &   True &   True &  False \\
JOHN HANCOCK GLOBAL EQUITY FUND NAV               &   True &   True &  False \\
JOHN HANCOCK FUNDS GLB. OPPS.FD.CL.A              &   True &   True &   True \\
JHAN.FUND.III GLB. SHAREHOLDER YLD.FD.CL.I        &   True &   True &  False \\
JOHN HANCOCK GLOBAL THEMATIC OPPS FUND NAV        &   True &   True &  False \\
JOHN HANCOCK MUTUAL SHARES FUND NAV               &   True &   True &  False \\
JOHN HANCOCK TECHNICAL OPPORTUNITIES FUND NAV     &   True &   True &  False \\
JUBAK GLOBAL EQ.FD. DEAD - Liquidated             &   True &   True &   True \\
LSV GLOBAL MANAGED VOLATILITY FUND INST           &   True &   True &  False \\
LSV GLOBAL VALUE FUND INST                        &   True &  False &  False \\
LAZARD EQUITY FRANCHISE PORTFOLIO INSTITUTIONAL   &   True &   True &  False \\
LAZARD GLOBAL EQUITY SELECT PORTFOLIO INSTL       &   True &   True &  False \\
LAZARD GLOBAL STRATEGIC EQUITY PORTFOLIO INST     &   True &   True &  False \\
LONGLEAF PARTNERS GLOBAL FD.                      &   True &   True &  False \\
LORD ABBETT GLOBAL EQUITY FUND A                  &   True &   True &  False \\
MFAM GLBL OPPTYS FD INVSTR                        &   True &   True &  False \\
MFS BLENDED RESEARCH GLOBAL EQUITY FUND R6        &   True &   True &  False \\
MFS GLB.EQ.FD.CL.B                                &  False &   True &  False \\
MFS GLOBAL LEADERS FD. CL.A                       &   True &   True &  False \\
MAIN STAY EPOCH CAPITAL GROWTH FUND I             &   True &   True &  False \\
MAINSTAY EPOCH GLB.CHO. FD.CL.I                   &   True &   True &  False \\
MAINSTAY EPOCH GLB.EQ. YLD.FD.CL.I                &   True &  False &  False \\
MAINSTAY ICAP GLB.FD.CL. I                        &   True &   True &  False \\
MNGD ACCT SRS BLKRK GA DYN EQTY FD K              &   True &   True &  False \\
MARSICO GLOBAL FUND INVESTOR                      &   True &   True &  False \\
MASS MUTUAL GLOBAL FUND R5                        &   True &   True &  False \\
MONDRIAN GLOBAL EQUITY VALUE FUND                 &  False &   True &   True \\
MORGAN STANLEY GLOBAL CONCENTRATED PORTFOLIO I    &  False &   True &   True \\
MORGAN STANLEY GLOBAL CORE PORTFOLIO I            &   True &  False &  False \\
MORGAN STANLEY INSTL.FD. GLB.INSIGHT PRTF.CL.H    &   True &   True &  False \\
MORGAN STANLEY GLOBAL SUSTAIN PORTFOLIO I         &   True &   True &  False \\
MGST.INSTL.FD.GLB.FRCH. PRTF.CL.I                 &   True &   True &  False \\
MORG STAN INST GLBL PERMANENCE PFOLIO I           &   True &   True &  False \\
MORG STAN INSTL CNTRPNT GLBL I                    &   True &   True &  False \\
MORG STAN INSTL GLBL INSIGHT PRT I                &   True &   True &  False \\
MORGAN STANLEY INSTL.FD. GLB.GW.PRTF.CL.I         &  False &   True &  False \\
MUNDOVAL FUND                                     &   True &   True &  False \\
NATIONWIDE GLBL SUSTAINABLE EQTY FD R6            &   True &   True &  False \\
NATIXIS LOOMIS SAYLES GLOBAL GROWTH Y             &   True &   True &  False \\
NEUBERGER BERMAN FOCUS FD.                        &   True &   True &  False \\
NEUBERGER BERMAN GLOBAL THEMATIC OPPS.INSTL.CL.   &  False &   True &   True \\
NINETY ONE GLOBAL FRANCHISE FUND I                &   True &   True &   True \\
NORTHERN ENGAGE 360 FUND                          &   True &   True &  False \\
NUVEEN GLOBAL GROWTH FD. CL.A                     &   True &   True &   True \\
NUVEEN NWQ GLOBAL ALL- CAP FUND I                 &  False &   True &  False \\
OAKMARK GLOBAL FUND INVESTOR                      &   True &   True &  False \\
OAKMARK GLOBAL SELECT FUND INVESTOR               &   True &   True &  False \\
OLD WESTBURY ALL CAP ESG FUND                     &  False &   True &  False \\
PF MULTI-ASSET FUND P                             &   True &   True &  False \\
PGIM JENNISON GLOBAL OPPORTUNITIES FUND Z         &   True &   True &  False \\
PIMCO EQUITIES PFR. WORLD FD.CL.A                 &   True &   True &  False \\
PIMCO GLOBAL DIVIDEND FUND A                      &   True &   True &  False \\
PMC DIVERSIFIED EQUITY FUND ADVISOR               &   True &   True &  False \\
PARVIN HEDGED EQUITY SOLARI WORLD FUND            &  False &   True &   True \\
PHAEACIAN GLOBAL VALUE FUND INST                  &   True &   True &  False \\
PION GLBL SUSTAINABLE EQTY FD A                   &   True &   True &  False \\
POLARIS GLB.VAL.FD.                               &   True &   True &   True \\
POLEN GLOBAL GROWTH FUND INSTITUTIONAL            &  False &   True &   True \\
PRINCIPAL SYSTEMAT EX INTERNATIONAL FUND R-6      &  False &   True &  False \\
PURISIMA ALL-PURPOSE FD. DEAD - Liquidated        &   True &   True &  False \\
QUAKER GLOBAL TACTICAL ALLOCATION FUND ADVISOR    &   True &  False &   True \\
RBC GLOBAL OPPORTUNITIES FUND I                   &   True &  False &  False \\
ROCKEFELLER EQTY ALLOCTN FD INSTL                 &  False &   True &  False \\
RUSSELL INVESTMENTS GLOBAL EQUITY FUND S          &  False &   True &  False \\
SEI INST INV GLBL MNGD VOLATILITY FD A            &   True &   True &  False \\
SEI INST MGD GLBL MNGD VOLATILITY FD F            &   True &   True &  False \\
SGI GLOBAL EQUITY FUND I                          &   True &   True &  False \\
SALIENT GLOBAL EQ.FD.CL. I                        &  False &   True &  False \\
SANDS CAPITAL GLBL GRO FD INSTL                   &   True &   True &  False \\
SCHARF GLOBAL OPPORTUNITY FUND INST               &   True &   True &  False \\
SCHRODER GLOBAL MULTI- CAP EQUITY FUND R6         &   True &   True &  False \\
SCOUT GLOBAL EQUITY FD. DEAD - Liquidated         &   True &   True &  False \\
SEGALL BRYANT \& HAMILL GLOBAL ALL CAP FUND RTL    &   True &   True &  False \\
SELECTIVE OPPORTUNITY FUND FOUNDATION             &   True &   True &  False \\
SIRIOS FOCUS FUND INST                            &   True &   True &   True \\
SIT ESG GROWTH FUND I                             &   True &   True &   True \\
STATE STREET DEFENSIVE GLOBAL EQUITY FUND I       &   True &   True &  False \\
STATE STREET GLOBAL VALUE SPOTLIGHT FUND K        &  False &   True &   True \\
STRATEGIC EQUITY ALLOCATION FUND NAV              &   True &   True &  False \\
T.ROWE PRICE GLB.LGCP. STK.FD.                    &   True &   True &  False \\
T ROWE PRICE GLOBAL IMPACT EQUITY                 &  False &   True &   True \\
T ROWE PRICE GLB.STK.FD.                          &   True &   True &  False \\
T ROWE PRICE GLOBAL VALUE EQUITY                  &   True &   True &  False \\
T.ROWE PRICE INSTL. DEAD - Merged:9051FK          &   True &   True &  False \\
T ROWE PRICE INSTL.GLB. LGCP.EQ.FD.               &   True &   True &  False \\
T ROWE PRICE QM GLOBAL EQUITY FUND                &  False &   True &  False \\
TD GLOBAL LOW VOLATILITY EQUITY FUND INST         &   True &   True &  False \\
TIF GLB.EQ.SERIES FUND DEAD - Liquidated          &  False &   True &  False \\
TEMPLETON GLB.OPPOR.TST. I                        &   True &   True &  False \\
TEMPLETON GROWTH FD.CL.A                          &   True &   True &  False \\
TEMPLETON WLD.FUND.CL.A                           &   True &   True &  False \\
THORNBURG GLOBAL OPPORTUNITIES FUND I             &  False &   True &  False \\
THRIVENT GLOBAL STOCK FUND A                      &   True &   True &  False \\
THRIVENT LOW VOLATILITY EQUITY S                  &  False &   True &   True \\
TRILLIUM ESG GLOBAL EQUITY FUND RETAIL            &   True &   True &  False \\
TWEEDY BROWNE INTL VALUE FUND II - CURR UNHGD     &  False &   True &  False \\
TWEEDY BROWNE VAL.FD.                             &   True &   True &  False \\
UBS ENGAGE FOR IMPACT FUND P                      &   True &   True &  False \\
US GLB.INVRS.FUND.GLB. MEGATRENDS FUND            &   True &   True &   True \\
USAA CAPITAL GROWTH FUND FUND                     &   True &   True &  False \\
USAA SUSTAINABLE WORLD FUND FUND                  &   True &   True &  False \\
UPRIGHT GW.FD.                                    &   True &   True &  False \\
VANGD.BAIL GIFF GL POSITIVE IPCT.STK.FD INV       &   True &   True &  False \\
VANGUARD GLOBAL CAPITAL CYCLES FUND INVESTOR      &   True &   True &  False \\
VANGUARD GLBL ESG SEL STK FD ADMIRAL              &   True &   True &  False \\
VANGUARD HORIZON FD. VANGD.GLB.EQ.FD.             &   True &   True &  False \\
VICTORY NEWBRIDGE GLOBAL EQUITY FUND A            &   True &   True &  False \\
VICTORY RS GLOBAL FUND Y                          &   True &   True &  False \\
VIRTUS GLB.COMD.STK.FD. CL.I                      &   True &   True &   True \\
VIRTUS NFJ GLOBAL SUSTAINABILITY FUND INST        &   True &   True &  False \\
VIRTUS SGA GLOBAL GROWTH FUND R6                  &   True &   True &  False \\
VIRTUS SGA NEW LEADERS GROWTH FUND R6             &   True &   True &   True \\
VIRTUS VONTOBEL GLOBAL OPPORTUNITIES FUND A       &   True &   True &  False \\
VONTOBEL GLOBAL EQUITY INSTITUTIONAL FUND I       &   True &   True &   True \\
VOYA GLBL HI DIV LOW VOLATILITY FD A              &   True &   True &  False \\
VOYA GLOBAL OPPORTUNITIES FUND A                  &   True &   True &   True \\
WCM FOCUSED GLB.GW.FD. INSTL.CL.                  &   True &   True &  False \\
WASATCH GLOBAL SELECT FUND INSTITUTIONAL          &   True &   True &  False \\
WASATCH GLOBAL VALUE FUND INVESTOR                &   True &   True &  False \\
WELLS FARGO INTRINSIC WORLD EQTY FD A             &   True &   True &  False \\
WESTWOOD GLOBAL EQUITY FD.INSTL.SHS.              &   True &   True &  False \\
WILLIAM BLAIR GLOBAL LEADERS FD.CL.I              &   True &   True &  False \\
WINTERGREEN FD. DEAD - Liquidated                 &   True &   True &  False \\
WINTON GLOBAL EQUITY PORTFOLIO INSTITUTIONAL      &   True &   True &  False \\
WORLD SELECT EQUITY FUND A                        &   True &   True &  False \\
YORKTOWN CAPITAL APPRECIATION FUND A              &   True &   True &  False \\
ABRDN EMERGING MARKETS EX-CHINA FUND A            &  False &   True &  False \\
ABRDN GLOBAL EQUITY IMPACT FUND A                 &   True &   True &   True \\
\bottomrule
\end{tabular}

In [ ]:
print(factor(res_FFC_,FAMAC,ret,h=True, show_sign=True).to_latex())
\begin{tabular}{llllllr}
\toprule
{} &       Alpha &     Mkt-RF &         SMB &         HML &         MOM &  ADJ\_R\_SQ \\
\midrule
1290 GLOBAL TALENTS FUND A                        &     -0.0027 &    0.731** &      0.5809 &  -0.6282*** &      -0.963 &     0.489 \\
1290 SMART BETA EQUITY FUND I                     &   -0.0029** &   0.892*** &  -0.3865*** &    -0.0875* &      0.0665 &     0.916 \\
AB GLOBAL CORE EQUITY PORTFOLIO ADV               &   -0.0026** &  0.9597*** &  -0.2743*** &     -0.0334 &    -0.1051* &     0.919 \\
AB SUSTAINABLE GLOBAL THEMATIC FUND A             &      -0.002 &  1.0291*** &      0.1198 &  -0.4543*** &     -0.0143 &     0.827 \\
AGF GLOBAL EQUITY FUND I DEAD - Liquidated        &   -0.0135** &  1.0659*** &     -0.5313 &     -0.2646 &      0.0233 &     0.920 \\
AGF GLOBAL SUSTAINABLE EQUITY FUND I              &      0.0009 &  1.0517*** &      0.1322 &  -0.4045*** &      0.0353 &     0.917 \\
AMG TRILOGY GLOBAL EQUITY FUND I                  &   -0.0072** &  0.8686*** &     -0.2615 &     -0.5114 &      -0.563 &     0.249 \\
AQR GLOBAL EQ.FD.CL.I                             &  -0.0087*** &  1.0112*** &     -0.212* &      0.0353 &      0.0303 &     0.499 \\
ARTIO SELECT OPPS.FD. INCO.CL.A                   &    -0.007** &  0.9442*** &     -0.1572 &      0.0648 &     -0.1175 &     0.800 \\
ADLER VALUE FUND INSTITUTIONAL                    &     -0.0012 &  1.1062*** &      0.0951 &    0.3347** &     -0.0612 &     0.794 \\
ADVISORY RESEARCH GLOBAL DIVIDEND FUND            &  -0.0081*** &  1.0025*** &       -0.19 &     0.1737* &      0.0127 &     0.624 \\
ALGER GLOBAL FOCUS FUND A                         &  -0.0045*** &  1.0473*** &    0.2501** &  -0.3899*** &      0.0462 &     0.857 \\
ALL.BERN.GBL.VAL.FD. ADVI.CL.SHS.                 &     -0.0011 &  1.0821*** &     -0.0579 &     -0.0237 &   -0.1477** &     0.926 \\
ALLIANZGI BEST STYLES GLOBAL EQUITY FD.CL.R6      &   -0.0249** &  0.9168*** &     -1.7897 &      0.0108 &      0.5311 &     0.104 \\
ALLIANZGI GLB.MGD.VOLT. FD.INSTL.CL.              &    -0.0214* &  0.9265*** &     -0.7787 &      0.2116 &     -0.2717 &     0.022 \\
ALPHA OPPORTUNISTIC ALTERNATIVES FUND I           &   -0.0031** &  0.2565*** &     -0.1518 &    0.2475** &   0.1178*** &     0.447 \\
AMERICAN CENTURY FOCUSED GLOBAL GROWTH FUND INV   &  -0.0071*** &  1.0134*** &   -0.4206** &  -0.2674*** &     -0.0473 &     0.693 \\
AMER.FUND.CAP.WLD.GW.\& INC.FD.CL.A SHS.           &  -0.0046*** &  0.9773*** &  -0.1434*** &      0.0383 &    0.0924** &     0.932 \\
AMERICAN FUNDS GLOBAL INSIGHT FUND F-3            &   -0.0026** &  0.9496*** &  -0.1814*** &     -0.0339 &    0.0726** &     0.925 \\
NEW ECONOMY FUND                                  &    -0.0032* &  0.9962*** &      0.1649 &  -0.3455*** &      0.0688 &     0.794 \\
AMERICAN FUNDS NEW PERSPECTIVE FUND A             &  -0.0042*** &  1.0555*** &  -0.2372*** &  -0.2854*** &      0.0386 &     0.884 \\
ARIEL GLB.EQ.FD.INSTL. CL.                        &     -0.0023 &  0.7374*** &   -0.2173** &      0.0942 &      0.0457 &     0.792 \\
ARISTOTLE VALUE EQUITY FUND I                     &     -0.0003 &  1.0308*** &     -0.1191 &      0.0519 &     -0.0111 &     0.930 \\
ARISTOTLE/SAUL GLOBAL EQUITY FUND I               &   -0.0045** &  0.9609*** &     -0.0118 &      0.0187 &     -0.0693 &     0.847 \\
ARTISAN GLOBAL DISCOVERY FUND INVESTOR            &      0.0013 &  0.9813*** &    0.3708** &  -0.4199*** &      0.0007 &     0.893 \\
ARTISAN GLOBAL EQ.FD. INVESTOR SHARES             &   -0.0067** &   1.032*** &      0.1615 &      0.0015 &   0.4919*** &     0.664 \\
ARTISAN GLB.OPPS.FD. INVR.SHS.                    &      -0.003 &  1.0078*** &      0.1797 &   -0.307*** &    0.2607** &     0.798 \\
ARTISAN GLB.VAL.FD. INVESTOR SHARES               &   -0.0035** &  1.0261*** &      0.0016 &   0.4157*** &      0.0282 &     0.877 \\
AVE MARIA WORLD EQUITY FUND                       &  -0.0052*** &  1.0902*** &   -0.1927** &    0.1408** &      0.0663 &     0.921 \\
BBH GLOBAL CORE SELECT CL.N                       &   -0.0067** &  0.9957*** &  -0.3939*** &     -0.0692 &      0.0273 &     0.765 \\
BMO GLOBAL LOW VOLT.EQ. FD.CL.I                   &   -0.0081** &  0.7948*** &    -0.3124* &      0.1181 &    0.2527** &     0.529 \\
BMO PYRFORD GLOBAL EQUITY FUND I                  &     -0.0039 &  0.8275*** &  -0.3602*** &     -0.0615 &     -0.2405 &     0.836 \\
BNY MELLON GLOBAL STOCK FUND I                    &  -0.0042*** &  0.9216*** &  -0.4691*** &   -0.287*** &     -0.0861 &     0.851 \\
BNY MELLON WORLDWIDE GROWTH FUND A                &  -0.0059*** &  0.9824*** &  -0.6841*** &  -0.2931*** &     -0.0134 &     0.817 \\
BAILLIE GIFFORD GLOBAL ALPHA EQUITY FUND 2        &    -0.0066* &  1.1205*** &      0.2166 &  -0.3454*** &     -0.0284 &     0.710 \\
BAILLIE GIFFORD GBL. STEWD.EQTIES.FD.I            &     -0.0027 &  1.0468*** &   0.6977*** &  -0.6911*** &     -0.0709 &     0.840 \\
BAILLIE GIFFORD LONG TERM GLOBAL GROWTH 2         &     -0.0002 &  1.1482*** &      0.2505 &  -0.9465*** &      0.0093 &     0.761 \\
BARON GLOBAL ADVANTAGE FD.INST CL.                &      0.0011 &  1.0767*** &   0.5526*** &  -0.8807*** &     -0.0538 &     0.780 \\
BLACKROCK ADVANTAGE GLOBAL FUND INVESTOR A        &  -0.0088*** &  1.0416*** &     -0.0129 &    0.1155** &     0.1633* &     0.622 \\
BLACKROCK GLOBAL IMPACT FUND INST                 &   -0.0119** &  0.8816*** &      0.4275 &  -0.3251*** &      0.0356 &     0.848 \\
BLACKROCK UNCONSTRAINED EQUITY FUND INVESTOR A    &  -0.0093*** &  0.9859*** &     -0.2475 &      -0.084 &      0.0795 &     0.643 \\
BOSTON PRTNRS GLBL EQTY ADV FD INST               &      -0.013 &   0.6575** &      0.9461 &     -0.1105 &     -0.5629 &     0.158 \\
BOSTON PRTNRS GLBL EQTY FD INSTL                  &    -0.003** &  1.0761*** &      0.0107 &   0.4283*** &      0.0805 &     0.912 \\
BRANDES GLOBAL EQ.FD.CL. I                        &  -0.0059*** &  1.0518*** &      -0.121 &   0.4968*** &     -0.0396 &     0.895 \\
BRANDES GLBL OPPTYS VAL FD I                      &    -0.006** &  1.0017*** &      0.2331 &   0.4141*** &   -0.245*** &     0.845 \\
BROWN ADVISORY GLOBAL LEADERS FUND INVESTOR       &       0.001 &  0.9797*** &    -0.1761* &  -0.1349*** &     -0.0338 &     0.936 \\
CMG MAULDIN CORE FUND I                           &  -0.0064*** &  0.4334*** &   -0.2326** &   -0.1854** &      0.0201 &     0.547 \\
CRM GLOBAL OPPORTUNITY FD - INVESTOR SHS          &      -0.002 &  0.9768*** &      0.1022 &     -0.1822 &     -0.0595 &     0.900 \\
CALAMOS GLB.EQ.FD.CL.I                            &    -0.009** &  1.1274*** &     -0.0987 &  -0.3482*** &      0.1154 &     0.672 \\
CAMBIAR GLOBAL EQUITY FUND INVESTOR               &   -0.0094** &  0.9817*** &     -0.3847 &     -0.1177 &    -0.2313* &     0.572 \\
CASTLE FOCUS FD.INVESTOR SHARES                   &  -0.0059*** &  0.6798*** &    -0.2771* &      0.0597 &      0.0431 &     0.574 \\
CATALYST/MAP GLOBAL EQUITY FUND A                 &   -0.0036** &  0.8672*** &     -0.1111 &   0.1429*** &      0.0753 &     0.836 \\
CAUSEWAY CONCENTRATED EQUITY FUND INSTL           &     -0.0082 &  1.0838*** &      0.1659 &   0.4703*** &     -0.1343 &     0.846 \\
CAUSEWAY GLB.VAL.FUND INSTL.CLASS                 &    -0.005** &  1.1774*** &       0.081 &   0.4025*** &   -0.2085** &     0.836 \\
CHAUTAUQUA GLOBAL GROWTH FUND INSTITUTIONAL       &      0.0011 &  0.9584*** &    0.2414** &  -0.2448*** &      0.0497 &     0.867 \\
COLUMBIA GLOBAL VALUE FUND A                      &   -0.007*** &  1.0285*** &   -0.2464** &    0.341*** &       0.046 &     0.865 \\
COLUMBIA SELECT GLOBAL EQUITY FUND A              &    -0.0027* &  0.9838*** &    -0.296** &  -0.4366*** &      0.0295 &     0.860 \\
COLUMBIA SELECT GLOBAL GROWTH FUND A              &      -0.003 &  1.1739*** &      0.0926 &  -0.6278*** &     -0.0399 &     0.815 \\
COMMONWEALTH GLOBAL FD.                           &  -0.0053*** &  0.9405*** &     -0.0339 &      0.0105 &     -0.0156 &     0.883 \\
THE COOK \& BYNUM FUND                             &  -0.0066*** &  0.7448*** &   -0.2982** &   0.3994*** &    0.2352** &     0.602 \\
DWS CROCI SECTOR OPPORTUNITIES FUND S             &    -0.007** &   0.848*** &     -0.1108 &     -0.1838 &     -0.1445 &     0.603 \\
DAVIS GLB.FD.CL.A                                 &     -0.0015 &  0.9765*** &   0.4895*** &      0.0965 &     -0.0726 &     0.692 \\
DELAWARE GLOBAL EQUITY FUND A                     &  -0.0084*** &  0.8857*** &   -0.3867** &     -0.0167 &      0.0947 &     0.590 \\
DEL.GLB.VAL.FD.CL.A DEAD - Liquidated             &   -0.0061** &  0.8516*** &   -0.4603** &      -0.024 &     -0.0602 &     0.570 \\
DELAWARE IVY GLOBAL GROWTH FUND A                 &   -0.0082** &  1.1126*** &     -0.5035 &     -0.2854 &     -0.0837 &     0.598 \\
DIAMOND HILL GLOBAL FUND Y                        &   -0.0106** &  1.0751*** &      0.3198 &     -0.1513 &     -0.3643 &     0.797 \\
DODGE \& COX GLOBAL STOCK FUND I                   &   -0.0035** &  1.1041*** &     -0.0878 &   0.3893*** &     -0.1324 &     0.845 \\
DREYFUS STRATEGIC BETA GLOBAL EQUITY FUND I       &   -0.0026** &  0.9587*** &   -0.2824** &     -0.0681 &     -0.0703 &     0.894 \\
DRIEHAUS GLB.GW.FUND DEAD - Liquidated            &    -0.0299* &  1.0751*** &      0.3881 &      1.4261 &      0.8723 &     0.255 \\
ERSHARES GLBL ENTREPRENEURS FD INSTL              &   -0.0061** &  0.9747*** &    0.5331** &   -0.465*** &      0.0018 &     0.632 \\
EATON VANCE FOCUSED GLBL OPPTYS FD I              &     -0.0031 &  1.0434*** &     -0.0829 &     -0.0805 &     -0.0724 &     0.906 \\
EATON VANCE HEXAVEST GLB.EQ.FD.CL.I               &  -0.0059*** &  0.9191*** &    -0.2025* &      0.1555 &        0.07 &     0.801 \\
EATON VANCE RICHD.BERN. EQ.STGY.FD.CL.I           &  -0.0043*** &   0.884*** &  -0.2518*** &     -0.0628 &     0.0996* &     0.796 \\
EPOCH GLOBAL ALL CAP FUND INSTITUTIONAL           &  -0.0077*** &  0.9931*** &  -0.3876*** &     -0.1536 &      -0.017 &     0.699 \\
FEDERATED HERMES GLOBAL EQUITY FUND IS            &   -0.0028** &  0.9903*** &   -0.1685** &   -0.0726** &      0.0304 &     0.977 \\
FIDELITY ADVISOR GLOBAL CAPITAL APPREC FUND I     &    -0.0032* &  1.0661*** &      0.1152 &  -0.1457*** &     0.1217* &     0.848 \\
FIDELITY ENDURING OPPORTUNITIES FUND              &      0.0007 &  0.9573*** &      0.1004 &  -0.4107*** &     -0.0818 &     0.961 \\
FID SRS INTRINSIC OPPTYS FD                       &     -0.0009 &  0.9232*** &   0.3053*** &    0.1956** &     -0.0608 &     0.870 \\
FIDELITY WORLDWIDE FD.                            &  -0.0059*** &  1.0341*** &     -0.1525 &  -0.3325*** &    0.1284** &     0.792 \\
FIERA CAPITAL GLOBAL EQUITY FUND INST             &     -0.0018 &  0.9393*** &  -0.5164*** &  -0.2708*** &     -0.0534 &     0.923 \\
FRANKLIN GLOBAL EQUITY FUND FUND A                &    -0.0025* &  1.0106*** &   -0.1963** &     -0.0101 &     -0.0291 &     0.890 \\
FRANKLIN MUTUAL BEACON FUND Z                     &   -0.005*** &  0.9469*** &    -0.1978* &   0.2233*** &    -0.1412* &     0.819 \\
FRANKLIN MUTUAL GLOBAL DISCOVERY FUND Z           &  -0.0066*** &  0.9154*** &    -0.241** &   0.3414*** &     -0.0703 &     0.793 \\
FRANKLIN WORLD PERSPECTIVES FD.CL.A               &   -0.0089** &  1.1152*** &     -0.1011 &     -0.0538 &      0.2032 &     0.782 \\
FRONTIER MFG GLOBAL EQUITY INSTITUTIONAL          &   -0.0078** &  0.9001*** &  -0.9024*** &   -0.5539** &     -0.2013 &     0.549 \\
FRONTIER MFG GLOBAL PLUS FUND INSTITUTIONAL       &     -0.0143 &  0.9753*** &   -1.0924** &     -0.708* &     -0.4374 &     0.305 \\
FRTR MFG GLBL SUSTAINABLE FD INSTL                &   -0.0056** &  0.7587*** &  -0.3841*** &  -0.2101*** &      0.0713 &     0.909 \\
FRONTIER ROBECO SAM GLOBAL EQUITY FUND INST       &    -0.0198* &  1.2541*** &    -1.3542* &      0.2519 &      0.0393 &     0.465 \\
GMO GLB.FOCD.EQ.FD.CL. III                        &  -0.0151*** &  1.1968*** &      0.3244 &     -0.0324 &     -0.0243 &     0.584 \\
GQG PARTNERS GLOBAL QUALITY EQUITY FUND INST      &    -0.0078* &  0.9566*** &   -0.4707** &     0.2156* &   0.6113*** &     0.846 \\
GABELLI GLOBAL GROWTH FUND AAA                    &  -0.0053*** &  1.0158*** &  -0.3133*** &  -0.6252*** &      -0.009 &     0.848 \\
GRANITE VALUE FUND DEAD - Liquidated              &    -0.0071* &  0.8578*** &     -0.0947 &      0.0725 &     -0.1213 &     0.304 \\
GREENWICH IVY LONG-SHORT FUND INST                &     -0.0021 &     0.2313 &     0.9733* &      0.1198 &  -1.1768*** &     0.314 \\
GUARDIAN CAPITAL DIV GRO FD INST                  &     -0.0029 &  0.9141*** &  -0.6718*** &     -0.0396 &   0.1584*** &     0.943 \\
GUARDIAN CAPITAL FNDM GLBL EQTY FD INST           &     -0.0003 &  0.8865*** &     -0.0605 &     -0.137* &      0.0144 &     0.892 \\
GUIDE STONE GLBL IMPACT FD INSTL                  &     -0.0023 &  0.6738*** &   0.2532*** &  -0.1688*** &  -0.2144*** &     0.975 \\
GUINNESS ATKINSON GLOBAL INNOVATORS FUND INVESTOR &      -0.001 &  1.0652*** &     -0.1871 &  -0.4483*** &   -0.2328** &     0.799 \\
HC ESG GROWTH PORTFOLIO HC STRATEGIC              &  -0.0044*** &  1.0014*** &  -0.1978*** &  -0.0821*** &      -0.024 &     0.960 \\
HSBC GLBL EQTY VOLATILITY FOCUSED FD I            &      0.0223 &    -1.1357 &      1.1767 &   -0.7376** &     -0.7092 &     0.066 \\
HARBOR GLOBAL LEADERS FUND INSTITUTIONAL          &   -0.0051** &  1.0262*** &     -0.2395 &  -0.4763*** &      0.0143 &     0.748 \\
HARBOR GLB.VAL.FD.INSTL. CL.                      &      0.0013 &  1.0076*** &      0.1681 &     -0.5609 &  -0.3304*** &     0.853 \\
HARDING LOEVNER GLOB.EQ. PRTF.ADVI.CL.            &   -0.0047** &  0.9984*** &     -0.0224 &  -0.4132*** &      -0.037 &     0.783 \\
HARDING LOEVNER GLOBAL EQUITY RESEARCH PFLO INS   &   -0.0057** &  0.9366*** &     -0.0051 &   -0.1641** &     -0.0776 &     0.834 \\
HARTFORD CLIMATE OPPORTUNITIES FUND A             &     -0.0047 &   1.116*** &      0.0698 &   -0.1285** &     -0.0075 &     0.798 \\
HARTFORD GLB.GW.FD.CL.A DEAD - Merged:30913E      &      0.0036 &   1.113*** &      0.0748 &  -0.6579*** &     -0.0894 &     0.932 \\
HARTFORD GLOBAL RESEARCH HLS IA                   &     -0.0052 &  1.0683*** &     -0.2879 &      0.0808 &      0.1273 &     0.884 \\
HOTCHKIS \& WILEY GLOBAL VALUE FD.CL.I             &   -0.0042** &  1.2263*** &      0.0736 &   0.5972*** &  -0.2162*** &     0.876 \\
IMPAX GLBL ENVIRON MARKETS FD INST                &     -0.0014 &  1.0622*** &     0.1435* &   -0.193*** &     -0.0243 &     0.890 \\
IMPAX GLBL OPPTYS FD INSTL                        &      0.0007 &  0.9541*** &   -0.2061** &   -0.211*** &     -0.0389 &     0.927 \\
INVESCO GLOBAL CORE EQ. FD.CL.A                   &  -0.0075*** &  1.0414*** &     -0.3031 &      0.0061 &     -0.0244 &     0.792 \\
INVESCO GLOBAL FOCUS FUND Y                       &     -0.0026 &  1.0872*** &      0.0797 &  -0.6067*** &     -0.0643 &     0.819 \\
INVESCO GLOBAL FUND A                             &  -0.0054*** &  1.1634*** &     -0.1865 &  -0.3737*** &   -0.1654** &     0.849 \\
IVS.GLB.GW.FD.CL.A DEAD - Merged:517169           &  -0.0091*** &  1.0128*** &     -0.4126 &    -0.488** &    -0.4154* &     0.594 \\
INVESCO GLOBAL OPPS.FD. CL.A                      &    -0.0049* &   1.132*** &     -0.1336 &     0.2398* &  -0.3242*** &     0.834 \\
IRONBRIDGE GLOBAL FUND DEAD - Liquidated          &   -0.0076** &  0.9585*** &   -0.3975** &  -0.3735*** &      0.0404 &     0.641 \\
JOHCM GLOBAL SELECT FUND INST                     &   -0.0059** &    0.98*** &     -0.1001 &   -0.3389** &      0.1418 &     0.695 \\
JP MORG GLBL UNCONSTRAINED EQTY FD I              &   -0.0072** &  1.0905*** &     -0.2166 &      0.1103 &     -0.1327 &     0.625 \\
JANUS HENDERSON GLOBAL RESEARCH FUND D            &   -0.0029** &   1.054*** &     -0.0808 &   -0.1556** &     -0.0393 &     0.901 \\
JANUS HENDERSON GLOBAL SELECT FUND T              &   -0.0044** &  1.0995*** &       0.139 &      0.1176 &     -0.0231 &     0.815 \\
JANUS HENDERSON GLBL SUSTAINABLE EQTY FD D        &    0.003*** &  1.0385*** &       0.082 &  -0.2906*** &  -0.1445*** &     0.991 \\
JANUS HENDERSON GLOBAL VALUE FUND D               &  -0.0077*** &  0.6981*** &     -0.1504 &      0.2057 &     -0.0825 &     0.314 \\
JANUS PRESERVATION SERIES-GLOBAL C                &  -0.0097*** &  0.8702*** &     -0.1378 &     -0.1981 &      0.0378 &     0.624 \\
JENSEN GLOBAL QUALITY GROWTH FUND I               &      0.0023 &  0.8993*** &  -0.4785*** &  -0.1968*** &     -0.0842 &     0.950 \\
JOHN HANCOCK FDAMENTAL GLBL FRANCHISE FD NAV      &  -0.0087*** &  1.0057*** &  -0.5729*** &  -0.3527*** &     -0.1172 &     0.680 \\
JOHN HANCOCK GLOBAL EQUITY FUND NAV               &  -0.0064*** &  0.9131*** &   -0.3732** &     -0.0303 &     -0.0366 &     0.723 \\
JOHN HANCOCK FUNDS GLB. OPPS.FD.CL.A              &     -0.0041 &  0.9409*** &      0.1754 &     -0.1636 &  -0.4761*** &     0.715 \\
JHAN.FUND.III GLB. SHAREHOLDER YLD.FD.CL.I        &  -0.0071*** &  0.8941*** &  -0.4371*** &   0.2177*** &      0.0646 &     0.832 \\
JOHN HANCOCK GLOBAL THEMATIC OPPS FUND NAV        &   -0.0064** &  0.8829*** &     -0.0534 &   -0.226*** &     -0.1182 &     0.851 \\
JOHN HANCOCK MUTUAL SHARES FUND NAV               &     -0.0006 &  0.7302*** &    -0.2494* &      0.0035 &     -0.0298 &     0.548 \\
JOHN HANCOCK TECHNICAL OPPORTUNITIES FUND NAV     &    -0.0126* &  1.3627*** &      0.2182 &     -0.347* &   0.5207*** &     0.483 \\
JUBAK GLOBAL EQ.FD. DEAD - Liquidated             &  -0.0101*** &    0.95*** &      0.0243 &     -0.2542 &    -0.2451* &     0.809 \\
LSV GLOBAL MANAGED VOLATILITY FUND INST           &  -0.0052*** &  0.8209*** &  -0.3277*** &   0.2706*** &      0.0998 &     0.823 \\
LSV GLOBAL VALUE FUND INST                        &  -0.0036*** &  1.0703*** &      0.0676 &   0.4203*** &     -0.0692 &     0.950 \\
LAZARD EQUITY FRANCHISE PORTFOLIO INSTITUTIONAL   &     -0.009* &  1.1365*** &      0.0724 &   0.3641*** &     -0.1098 &     0.787 \\
LAZARD GLOBAL EQUITY SELECT PORTFOLIO INSTL       &    -0.0021* &  0.9207*** &  -0.2496*** &  -0.1388*** &      0.0489 &     0.939 \\
LAZARD GLOBAL STRATEGIC EQUITY PORTFOLIO INST     &     -0.0165 &  1.0159*** &     -0.5196 &     -0.0421 &      0.2353 &     0.146 \\
LONGLEAF PARTNERS GLOBAL FD.                      &   -0.0061** &  1.1008*** &     0.2692* &   0.2804*** &    -0.1768* &     0.791 \\
LORD ABBETT GLOBAL EQUITY FUND A                  &    -0.0046* &  0.9716*** &     -0.0068 &     -0.1023 &     -0.0164 &     0.819 \\
MFAM GLBL OPPTYS FD INVSTR                        &    -0.0043* &   0.987*** &      0.0923 &  -0.4527*** &      0.0057 &     0.682 \\
MFS BLENDED RESEARCH GLOBAL EQUITY FUND R6        &    -0.0061* &  1.1018*** &     -0.2018 &      0.0496 &     -0.0525 &     0.877 \\
MFS GLB.EQ.FD.CL.B                                &  -0.0036*** &  1.0298*** &  -0.3515*** &     -0.0749 &     -0.0267 &     0.929 \\
MFS GLOBAL LEADERS FD. CL.A                       &   -0.0112** &  0.9563*** &   -0.8991** &      0.1136 &      0.1398 &     0.498 \\
MAIN STAY EPOCH CAPITAL GROWTH FUND I             &     -0.0073 &  0.8769*** &     -0.3671 &   -0.436*** &     -0.1303 &     0.594 \\
MAINSTAY EPOCH GLB.CHO. FD.CL.I                   &  -0.0089*** &   1.109*** &   -0.3028** &     -0.1471 &      0.1119 &     0.694 \\
MAINSTAY EPOCH GLB.EQ. YLD.FD.CL.I                &  -0.0064*** &   0.918*** &  -0.3989*** &   0.2728*** &     0.1139* &     0.852 \\
MAINSTAY ICAP GLB.FD.CL. I                        &   -0.0048** &  1.0207*** &   -0.3361** &     -0.0105 &     -0.0214 &     0.890 \\
MNGD ACCT SRS BLKRK GA DYN EQTY FD K              &    -0.0032* &  1.0923*** &      0.0705 &      0.0598 &     0.0936* &     0.949 \\
MARSICO GLOBAL FUND INVESTOR                      &    -0.0045* &  1.0156*** &     -0.0255 &  -0.6379*** &     -0.0218 &     0.694 \\
MASS MUTUAL GLOBAL FUND R5                        &  -0.0081*** &   1.214*** &     -0.2491 &  -0.4317*** &     -0.1847 &     0.739 \\
MONDRIAN GLOBAL EQUITY VALUE FUND                 &     -0.0017 &  0.8193*** &      0.0615 &   0.3183*** &     -0.3697 &     0.833 \\
MORGAN STANLEY GLOBAL CONCENTRATED PORTFOLIO I    &     -0.0006 &   0.929*** &       0.132 &   -0.1992** &     -0.0511 &     0.849 \\
MORGAN STANLEY GLOBAL CORE PORTFOLIO I            &    -0.0025* &  1.0194*** &     -0.0167 &     -0.1047 &      0.0839 &     0.913 \\
MORGAN STANLEY INSTL.FD. GLB.INSIGHT PRTF.CL.H    &    -0.0079* &  1.0772*** &      0.1407 &      0.2578 &      0.0318 &     0.431 \\
MORGAN STANLEY GLOBAL SUSTAIN PORTFOLIO I         &   -0.0038** &  0.8799*** &  -0.6095*** &  -0.2881*** &      0.0604 &     0.835 \\
MGST.INSTL.FD.GLB.FRCH. PRTF.CL.I                 &   -0.0037** &  0.8676*** &  -0.7792*** &  -0.2523*** &      0.0958 &     0.802 \\
MORG STAN INST GLBL PERMANENCE PFOLIO I           &     -0.0012 &  0.9238*** &     -0.0814 &  -0.4213*** &     -0.1743 &     0.766 \\
MORG STAN INSTL CNTRPNT GLBL I                    &     -0.0037 &  0.9542*** &   1.0639*** &  -0.8848*** &     -0.1329 &     0.677 \\
MORG STAN INSTL GLBL INSIGHT PRT I                &     -0.0057 &  0.9899*** &     0.5523* &  -1.1793*** &     -0.2553 &     0.555 \\
MORGAN STANLEY INSTL.FD. GLB.GW.PRTF.CL.I         &     -0.0013 &  1.0125*** &      0.1078 &  -0.7226*** &     -0.1295 &     0.735 \\
MUNDOVAL FUND                                     &     -0.0017 &  0.9903*** &  -0.3474*** &    -0.0761* &   -0.1433** &     0.873 \\
NATIONWIDE GLBL SUSTAINABLE EQTY FD R6            &   -0.0041** &  1.0742*** &     -0.0017 &     -0.1042 &     -0.0924 &     0.848 \\
NATIXIS LOOMIS SAYLES GLOBAL GROWTH Y             &    -0.0047* &  0.9118*** &     -0.2857 &  -0.5112*** &    -0.1905* &     0.832 \\
NEUBERGER BERMAN FOCUS FD.                        &   -0.0065** &  0.9774*** &     -0.1719 &   -0.398*** &     -0.0804 &     0.662 \\
NEUBERGER BERMAN GLOBAL THEMATIC OPPS.INSTL.CL.   &      -0.004 &  0.8228*** &      0.1522 &      0.0535 &        -0.1 &     0.691 \\
NINETY ONE GLOBAL FRANCHISE FUND I                &     -0.0011 &   0.888*** &  -0.4334*** &  -0.2046*** &      0.0528 &     0.941 \\
NORTHERN ENGAGE 360 FUND                          &    -0.0069* &  0.9685*** &      -0.288 &     -0.2138 &     -0.1964 &     0.787 \\
NUVEEN GLOBAL GROWTH FD. CL.A                     &     -0.0034 &  1.1386*** &   0.5454*** &    -0.2764* &    0.2346** &     0.855 \\
NUVEEN NWQ GLOBAL ALL- CAP FUND I                 &     -0.0041 &     0.5978 &      0.3318 &     -0.3768 &     -0.7001 &     0.283 \\
OAKMARK GLOBAL FUND INVESTOR                      &   -0.0051** &  1.2842*** &      0.1386 &     0.35*** &    -0.1186* &     0.880 \\
OAKMARK GLOBAL SELECT FUND INVESTOR               &    -0.004** &  1.2047*** &      -0.023 &   0.2502*** &   -0.1533** &     0.882 \\
OLD WESTBURY ALL CAP ESG FUND                     &    -0.013** &  0.8266*** &       0.611 &     -0.4014 &     -0.1473 &     0.726 \\
PF MULTI-ASSET FUND P                             &     -0.0079 &  0.9571*** &      0.2004 &     -0.2711 &     -0.1215 &     0.526 \\
PGIM JENNISON GLOBAL OPPORTUNITIES FUND Z         &      0.0005 &  1.1038*** &     0.2362* &  -0.8173*** &      0.1002 &     0.847 \\
PIMCO EQUITIES PFR. WORLD FD.CL.A                 &     -0.0108 &  0.9425*** &     -0.6497 &      0.0114 &      -0.046 &     0.334 \\
PIMCO GLOBAL DIVIDEND FUND A                      &   -0.0196** &  1.1335*** &      -0.895 &      0.2454 &     -0.0877 &     0.257 \\
PMC DIVERSIFIED EQUITY FUND ADVISOR               &  -0.0046*** &  1.0137*** &      0.0101 &      0.0399 &      0.0331 &     0.880 \\
PARVIN HEDGED EQUITY SOLARI WORLD FUND            &   -0.0098** &  0.5559*** &     -0.2998 &    0.1736** &     -0.0567 &     0.776 \\
PHAEACIAN GLOBAL VALUE FUND INST                  &   -0.0082** &  0.9877*** &     -0.1406 &     -0.1484 &     -0.1494 &     0.581 \\
PION GLBL SUSTAINABLE EQTY FD A                   &   -0.0046** &   1.044*** &      0.0199 &   0.3008*** &    0.1753** &     0.816 \\
POLARIS GLB.VAL.FD.                               &     -0.0008 &  1.0368*** &   0.2362*** &   0.3285*** &    -0.0961* &     0.936 \\
POLEN GLOBAL GROWTH FUND INSTITUTIONAL            &     -0.0003 &  0.9518*** &  -0.2428*** &  -0.4338*** &     -0.0004 &     0.936 \\
PRINCIPAL SYSTEMAT EX INTERNATIONAL FUND R-6      &   -0.0093** &  1.0839*** &      0.0262 &      0.1622 &      0.0776 &     0.814 \\
PURISIMA ALL-PURPOSE FD. DEAD - Liquidated        &  -0.0012*** &    -0.0005 &     -0.0005 &      0.0009 &      0.0008 &    -0.081 \\
QUAKER GLOBAL TACTICAL ALLOCATION FUND ADVISOR    &   -0.0039** &  0.9619*** &      0.0631 &   -0.2466** &      0.1114 &     0.806 \\
RBC GLOBAL OPPORTUNITIES FUND I                   &     -0.0011 &  1.0232*** &      0.0282 &  -0.2249*** &      0.0353 &     0.918 \\
ROCKEFELLER EQTY ALLOCTN FD INSTL                 &   -0.0099** &  0.8571*** &      0.1719 &      0.4006 &       0.369 &     0.403 \\
RUSSELL INVESTMENTS GLOBAL EQUITY FUND S          &  -0.0086*** &  1.0222*** &    -0.5349* &      0.0324 &     -0.0326 &     0.648 \\
SEI INST INV GLBL MNGD VOLATILITY FD A            &  -0.0071*** &  0.7658*** &   -0.4157** &      0.0699 &      0.0233 &     0.690 \\
SEI INST MGD GLBL MNGD VOLATILITY FD F            &  -0.0066*** &  0.7353*** &  -0.4484*** &     -0.0474 &      0.1437 &     0.590 \\
SGI GLOBAL EQUITY FUND I                          &     -0.0038 &    0.89*** &      0.0719 &     -0.1476 &     0.1863* &     0.568 \\
SALIENT GLOBAL EQ.FD.CL. I                        &     -0.007* &  0.8377*** &      0.0662 &      0.0156 &     -0.0008 &     0.659 \\
SANDS CAPITAL GLBL GRO FD INSTL                   &     -0.0024 &  1.0974*** &   0.3586*** &  -0.7166*** &     -0.0649 &     0.832 \\
SCHARF GLOBAL OPPORTUNITY FUND INST               &    -0.0044* &  0.9091*** &   -0.3707** &       0.053 &     -0.0568 &     0.735 \\
SCHRODER GLOBAL MULTI- CAP EQUITY FUND R6         &     -0.0323 &    0.6926* &     -1.9447 &        -0.6 &        0.57 &    -0.030 \\
SCOUT GLOBAL EQUITY FD. DEAD - Liquidated         &     -0.0054 &   0.968*** &     -0.5006 &     -0.5682 &     -0.2042 &     0.354 \\
SEGALL BRYANT \& HAMILL GLOBAL ALL CAP FUND RTL    &  -0.0091*** &  0.8817*** &  -0.5867*** &     -0.1309 &     -0.0537 &     0.545 \\
SELECTIVE OPPORTUNITY FUND FOUNDATION             &     -0.0082 &  0.7957*** &       1.01* &     -0.4018 &     -0.3972 &     0.366 \\
SIRIOS FOCUS FUND INST                            &      -0.004 &  0.8971*** &     -0.4002 &     -0.1915 &      0.0024 &     0.804 \\
SIT ESG GROWTH FUND I                             &   -0.003*** &  0.9803*** &  -0.3943*** &  -0.1361*** &      0.0027 &     0.970 \\
STATE STREET DEFENSIVE GLOBAL EQUITY FUND I       &   -0.0135** &  0.8303*** &   -0.8352** &     -0.0956 &      0.0886 &     0.362 \\
STATE STREET GLOBAL VALUE SPOTLIGHT FUND K        &     -0.0204 &  1.2237*** &     -0.9384 &     -0.3582 &     -0.5046 &     0.642 \\
STRATEGIC EQUITY ALLOCATION FUND NAV              &   -0.0072** &  0.9752*** &     -0.1445 &     -0.0593 &     -0.0071 &     0.625 \\
T.ROWE PRICE GLB.LGCP. STK.FD.                    &      -0.002 &  1.0063*** &      0.0681 &  -0.3587*** &     -0.0612 &     0.815 \\
T ROWE PRICE GLOBAL IMPACT EQUITY                 &      0.0027 &  1.0697*** &      0.0408 &  -0.4487*** &      0.0508 &     0.951 \\
T ROWE PRICE GLB.STK.FD.                          &      0.0011 &  1.0314*** &     0.2476* &  -0.3565*** &     -0.0829 &     0.846 \\
T ROWE PRICE GLOBAL VALUE EQUITY                  &   -0.0052** &  1.0109*** &     -0.1145 &   0.2434*** &      0.0266 &     0.797 \\
T.ROWE PRICE INSTL. DEAD - Merged:9051FK          &    -0.0089* &  1.2649*** &     -0.1361 &    -0.3904* &      0.0839 &     0.531 \\
T ROWE PRICE INSTL.GLB. LGCP.EQ.FD.               &   -0.0057** &  1.1264*** &     -0.1701 &     -0.0845 &      0.1229 &     0.677 \\
T ROWE PRICE QM GLOBAL EQUITY FUND                &    -0.0047* &  1.0091*** &    -0.5142* &     -0.1384 &     -0.0532 &     0.857 \\
TD GLOBAL LOW VOLATILITY EQUITY FUND INST         &      -0.005 &  0.6051*** &  -0.5364*** &     -0.0587 &     -0.0301 &     0.244 \\
TIF GLB.EQ.SERIES FUND DEAD - Liquidated          &   -0.0139** &     0.4619 &     -1.5302 &      1.8038 &      0.4336 &     0.112 \\
TEMPLETON GLB.OPPOR.TST. I                        &  -0.0073*** &  1.1346*** &     -0.1514 &     0.543** &     -0.0586 &     0.765 \\
TEMPLETON GROWTH FD.CL.A                          &  -0.0054*** &  1.0258*** &     -0.1389 &   0.2739*** &     -0.0676 &     0.885 \\
TEMPLETON WLD.FUND.CL.A                           &  -0.0078*** &  0.9982*** &    -0.2176* &       0.081 &  -0.2392*** &     0.781 \\
THORNBURG GLOBAL OPPORTUNITIES FUND I             &     -0.0012 &  0.9773*** &      0.1832 &    0.2171** &      0.0517 &     0.767 \\
THRIVENT GLOBAL STOCK FUND A                      &  -0.0073*** &  1.0022*** &   -0.2961** &    -0.1309* &     -0.0332 &     0.746 \\
THRIVENT LOW VOLATILITY EQUITY S                  &  -0.0046*** &    0.76*** &  -0.3599*** &     -0.0381 &    0.1501** &     0.868 \\
TRILLIUM ESG GLOBAL EQUITY FUND RETAIL            &   -0.0034** &  0.9877*** &   -0.2553** &  -0.2064*** &      -0.048 &     0.883 \\
TWEEDY BROWNE INTL VALUE FUND II - CURR UNHGD     &  -0.0043*** &  0.8925*** &    -0.1145* &   0.3121*** &      0.0301 &     0.890 \\
TWEEDY BROWNE VAL.FD.                             &  -0.0069*** &  0.8538*** &  -0.3444*** &   0.1647*** &     -0.0257 &     0.687 \\
UBS ENGAGE FOR IMPACT FUND P                      &    -0.0047* &  1.0107*** &    0.3681** &     -0.0061 &     -0.0064 &     0.869 \\
US GLB.INVRS.FUND.GLB. MEGATRENDS FUND            &     -0.0004 &  0.7248*** &     -0.0269 &     -0.1839 &      0.0757 &     0.722 \\
USAA CAPITAL GROWTH FUND FUND                     &  -0.0041*** &  1.0236*** &   -0.2245** &      0.0049 &      0.0345 &     0.854 \\
USAA SUSTAINABLE WORLD FUND FUND                  &   -0.0057** &  0.9374*** &   -0.3901** &   -0.1958** &     -0.0601 &     0.612 \\
UPRIGHT GW.FD.                                    &     -0.0018 &  1.2487*** &    1.2237** &     -0.0043 &     -0.3799 &     0.346 \\
VANGD.BAIL GIFF GL POSITIVE IPCT.STK.FD INV       &      0.0043 &  1.0992*** &      0.4517 &  -0.6362*** &      0.0472 &     0.773 \\
VANGUARD GLOBAL CAPITAL CYCLES FUND INVESTOR      &     -0.0066 &  0.8073*** &    0.7427** &     0.3653* &     -0.1848 &     0.269 \\
VANGUARD GLBL ESG SEL STK FD ADMIRAL              &     -0.0007 &  0.9526*** &   -0.2616** &   0.1154*** &    -0.1499* &     0.929 \\
VANGUARD HORIZON FD. VANGD.GLB.EQ.FD.             &  -0.0037*** &  1.0084*** &     -0.0254 &    -0.1515* &     -0.0345 &     0.856 \\
VICTORY NEWBRIDGE GLOBAL EQUITY FUND A            &  -0.0084*** &  1.0045*** &    -0.5182* &     -0.3364 &     -0.0662 &     0.557 \\
VICTORY RS GLOBAL FUND Y                          &    -0.0026* &  0.9414*** &  -0.1746*** &   -0.134*** &     -0.0356 &     0.808 \\
VIRTUS GLB.COMD.STK.FD. CL.I                      &   -0.0121** &   0.907*** &    0.7082** &     -0.0444 &    -0.4814* &     0.579 \\
VIRTUS NFJ GLOBAL SUSTAINABILITY FUND INST        &   -0.0066** &  1.0058*** &    -0.5602* &  -0.4574*** &     -0.2573 &     0.722 \\
VIRTUS SGA GLOBAL GROWTH FUND R6                  &     -0.0021 &  0.9875*** &     -0.211* &  -0.3999*** &     -0.0392 &     0.875 \\
VIRTUS SGA NEW LEADERS GROWTH FUND R6             &     -0.0074 &  1.0396*** &   0.7234*** &     -0.1307 &    -0.3144* &     0.911 \\
VIRTUS VONTOBEL GLOBAL OPPORTUNITIES FUND A       &   -0.0043** &  0.9498*** &  -0.3506*** &    -0.33*** &       0.032 &     0.780 \\
VONTOBEL GLOBAL EQUITY INSTITUTIONAL FUND I       &     -0.0022 &   0.911*** &  -0.5083*** &   -0.3251** &      0.0977 &     0.820 \\
VOYA GLBL HI DIV LOW VOLATILITY FD A              &   -0.005*** &  0.9343*** &  -0.1962*** &   0.2214*** &       0.055 &     0.866 \\
VOYA GLOBAL OPPORTUNITIES FUND A                  &     -0.0023 &  1.0412*** &      0.0552 &     -0.0317 &  -0.2262*** &     0.948 \\
WCM FOCUSED GLB.GW.FD. INSTL.CL.                  &     -0.0022 &   0.913*** &     -0.0051 &  -0.5502*** &     -0.0012 &     0.814 \\
WASATCH GLOBAL SELECT FUND INSTITUTIONAL          &     -0.0034 &  0.9263*** &      0.3178 &  -0.5481*** &     -0.1921 &     0.783 \\
WASATCH GLOBAL VALUE FUND INVESTOR                &  -0.0099*** &  0.9959*** &   -0.3803** &    0.484*** &     -0.0227 &     0.514 \\
WELLS FARGO INTRINSIC WORLD EQTY FD A             &   -0.0079** &   0.934*** &      0.0624 &      0.1582 &     -0.1615 &     0.310 \\
WESTWOOD GLOBAL EQUITY FD.INSTL.SHS.              &     -0.0087 &  0.8087*** &      0.5069 &     -0.2319 &     -0.3736 &     0.067 \\
WILLIAM BLAIR GLOBAL LEADERS FD.CL.I              &   -0.0048** &  1.1124*** &     -0.1523 &  -0.3435*** &      0.0231 &     0.838 \\
WINTERGREEN FD. DEAD - Liquidated                 &   -0.0178** &  0.9245*** &     -0.3377 &      0.2656 &      0.4163 &     0.200 \\
WINTON GLOBAL EQUITY PORTFOLIO INSTITUTIONAL      &    -0.0116* &  1.0017*** &      0.1846 &       0.203 &     -0.0667 &     0.540 \\
WORLD SELECT EQUITY FUND A                        &   -0.0072** &  1.0749*** &      -0.164 &    0.1963** &     -0.0977 &     0.877 \\
YORKTOWN CAPITAL APPRECIATION FUND A              &  -0.0112*** &   0.888*** &     -0.1239 &  -0.2877*** &     -0.0713 &     0.654 \\
ABRDN EMERGING MARKETS EX-CHINA FUND A            &  -0.0083*** &   0.999*** &    -0.4016* &     -0.1507 &     -0.0873 &     0.730 \\
ABRDN GLOBAL EQUITY IMPACT FUND A                 &  -0.0055*** &  1.0556*** &     -0.1086 &    -0.1468* &     -0.0023 &     0.842 \\
\bottomrule
\end{tabular}

In [ ]:
print(factor(res_FFC_,FAMAC,GROSS,h=True, show_sign=True).to_latex())
\begin{tabular}{llllllr}
\toprule
{} &       Alpha &     Mkt-RF &         SMB &         HML &         MOM &  ADJ\_R\_SQ \\
\midrule
1290 GLOBAL TALENTS FUND A                        &     -0.0016 &    0.731** &      0.5816 &  -0.6273*** &     -0.9627 &     0.489 \\
1290 SMART BETA EQUITY FUND I                     &     -0.0021 &   0.892*** &  -0.3855*** &    -0.0876* &      0.0662 &     0.916 \\
AB GLOBAL CORE EQUITY PORTFOLIO ADV               &     -0.0019 &  0.9597*** &  -0.2741*** &     -0.0339 &    -0.1054* &     0.919 \\
AB SUSTAINABLE GLOBAL THEMATIC FUND A             &     -0.0009 &  1.0293*** &      0.1207 &  -0.4544*** &     -0.0143 &     0.828 \\
AGF GLOBAL EQUITY FUND I DEAD - Liquidated        &    -0.0128* &  1.0659*** &     -0.5313 &     -0.2646 &      0.0233 &     0.920 \\
AGF GLOBAL SUSTAINABLE EQUITY FUND I              &      0.0015 &  1.0517*** &      0.1322 &  -0.4045*** &      0.0353 &     0.917 \\
AMG TRILOGY GLOBAL EQUITY FUND I                  &   -0.0065** &  0.8694*** &     -0.2619 &     -0.5093 &     -0.5612 &     0.249 \\
AQR GLOBAL EQ.FD.CL.I                             &  -0.0079*** &  1.0113*** &    -0.2117* &      0.0354 &      0.0305 &     0.499 \\
ARTIO SELECT OPPS.FD. INCO.CL.A                   &    -0.0059* &  0.9443*** &      -0.157 &      0.0654 &     -0.1172 &     0.800 \\
ADLER VALUE FUND INSTITUTIONAL                    &     -0.0002 &  1.1062*** &      0.0951 &    0.3346** &     -0.0612 &     0.794 \\
ADVISORY RESEARCH GLOBAL DIVIDEND FUND            &   -0.0071** &   1.003*** &     -0.1906 &     0.1756* &      0.0142 &     0.624 \\
ALGER GLOBAL FOCUS FUND A                         &    -0.0032* &  1.0482*** &    0.2499** &   -0.388*** &      0.0482 &     0.857 \\
ALL.BERN.GBL.VAL.FD. ADVI.CL.SHS.                 &      0.0004 &  1.0822*** &      -0.056 &     -0.0269 &   -0.1498** &     0.925 \\
ALLIANZGI BEST STYLES GLOBAL EQUITY FD.CL.R6      &   -0.0246** &  0.9168*** &     -1.7897 &      0.0108 &      0.5311 &     0.104 \\
ALLIANZGI GLB.MGD.VOLT. FD.INSTL.CL.              &    -0.0209* &  0.9265*** &     -0.7787 &      0.2116 &     -0.2717 &     0.022 \\
ALPHA OPPORTUNISTIC ALTERNATIVES FUND I           &     -0.0021 &  0.2567*** &     -0.1527 &     0.249** &   0.1189*** &     0.447 \\
AMERICAN CENTURY FOCUSED GLOBAL GROWTH FUND INV   &   -0.0062** &  1.0134*** &   -0.4205** &  -0.2673*** &     -0.0472 &     0.693 \\
AMER.FUND.CAP.WLD.GW.\& INC.FD.CL.A SHS.           &   -0.004*** &  0.9774*** &  -0.1432*** &      0.0384 &    0.0925** &     0.932 \\
AMERICAN FUNDS GLOBAL INSIGHT FUND F-3            &     -0.002* &  0.9498*** &  -0.1804*** &     -0.0341 &    0.0725** &     0.925 \\
NEW ECONOMY FUND                                  &     -0.0026 &  0.9963*** &       0.165 &  -0.3455*** &       0.069 &     0.793 \\
AMERICAN FUNDS NEW PERSPECTIVE FUND A             &   -0.0035** &  1.0556*** &  -0.2371*** &  -0.2854*** &      0.0386 &     0.884 \\
ARIEL GLB.EQ.FD.INSTL. CL.                        &     -0.0015 &  0.7377*** &   -0.2167** &      0.0946 &      0.0461 &     0.791 \\
ARISTOTLE VALUE EQUITY FUND I                     &      0.0004 &  1.0308*** &      -0.119 &      0.0514 &     -0.0114 &     0.930 \\
ARISTOTLE/SAUL GLOBAL EQUITY FUND I               &   -0.0037** &  0.9607*** &      -0.011 &      0.0183 &     -0.0697 &     0.847 \\
ARTISAN GLOBAL DISCOVERY FUND INVESTOR            &      0.0024 &  0.9813*** &    0.3702** &  -0.4203*** &      0.0006 &     0.893 \\
ARTISAN GLOBAL EQ.FD. INVESTOR SHARES             &    -0.0055* &  1.0321*** &      0.1616 &      0.0012 &   0.4922*** &     0.664 \\
ARTISAN GLB.OPPS.FD. INVR.SHS.                    &      -0.002 &   1.008*** &      0.1797 &  -0.3067*** &    0.2612** &     0.798 \\
ARTISAN GLB.VAL.FD. INVESTOR SHARES               &     -0.0024 &  1.0263*** &      0.0017 &   0.4161*** &      0.0287 &     0.877 \\
AVE MARIA WORLD EQUITY FUND                       &  -0.0041*** &  1.0903*** &    -0.192** &    0.1411** &      0.0666 &     0.921 \\
BBH GLOBAL CORE SELECT CL.N                       &   -0.0056** &  0.9957*** &  -0.3941*** &     -0.0694 &      0.0272 &     0.765 \\
BMO GLOBAL LOW VOLT.EQ. FD.CL.I                   &    -0.0074* &  0.7948*** &    -0.3124* &      0.1181 &    0.2527** &     0.529 \\
BMO PYRFORD GLOBAL EQUITY FUND I                  &     -0.0031 &  0.8275*** &  -0.3602*** &     -0.0615 &     -0.2405 &     0.836 \\
BNY MELLON GLOBAL STOCK FUND I                    &   -0.0034** &  0.9216*** &  -0.4692*** &  -0.2872*** &     -0.0862 &     0.851 \\
BNY MELLON WORLDWIDE GROWTH FUND A                &   -0.0049** &  0.9824*** &   -0.684*** &  -0.2931*** &     -0.0133 &     0.817 \\
BAILLIE GIFFORD GLOBAL ALPHA EQUITY FUND 2        &      -0.006 &  1.1205*** &      0.2166 &  -0.3455*** &     -0.0285 &     0.710 \\
BAILLIE GIFFORD GBL. STEWD.EQTIES.FD.I            &     -0.0022 &  1.0468*** &   0.6977*** &  -0.6911*** &     -0.0709 &     0.840 \\
BAILLIE GIFFORD LONG TERM GLOBAL GROWTH 2         &      0.0004 &  1.1481*** &      0.2506 &  -0.9468*** &      0.0091 &     0.761 \\
BARON GLOBAL ADVANTAGE FD.INST CL.                &       0.002 &  1.0768*** &   0.5537*** &  -0.8806*** &     -0.0536 &     0.780 \\
BLACKROCK ADVANTAGE GLOBAL FUND INVESTOR A        &   -0.0077** &  1.0418*** &     -0.0115 &    0.1156** &     0.1637* &     0.622 \\
BLACKROCK GLOBAL IMPACT FUND INST                 &   -0.0112** &  0.8816*** &      0.4276 &  -0.3251*** &      0.0356 &     0.848 \\
BLACKROCK UNCONSTRAINED EQUITY FUND INVESTOR A    &  -0.0083*** &  0.9861*** &     -0.2473 &     -0.0839 &      0.0796 &     0.643 \\
BOSTON PRTNRS GLBL EQTY ADV FD INST               &     -0.0125 &   0.6575** &      0.9441 &     -0.1099 &     -0.5617 &     0.158 \\
BOSTON PRTNRS GLBL EQTY FD INSTL                  &     -0.0022 &  1.0765*** &       0.011 &   0.4291*** &      0.0812 &     0.912 \\
BRANDES GLOBAL EQ.FD.CL. I                        &   -0.005*** &  1.0518*** &      -0.121 &   0.4968*** &     -0.0396 &     0.895 \\
BRANDES GLBL OPPTYS VAL FD I                      &     -0.005* &  1.0017*** &      0.2331 &   0.4141*** &   -0.245*** &     0.845 \\
BROWN ADVISORY GLOBAL LEADERS FUND INVESTOR       &      0.0017 &  0.9797*** &    -0.1762* &  -0.1346*** &     -0.0336 &     0.936 \\
CMG MAULDIN CORE FUND I                           &  -0.0048*** &  0.4343*** &    -0.2276* &    -0.1812* &      0.0239 &     0.546 \\
CRM GLOBAL OPPORTUNITY FD - INVESTOR SHS          &     -0.0008 &  0.9768*** &      0.1022 &     -0.1822 &     -0.0595 &     0.900 \\
CALAMOS GLB.EQ.FD.CL.I                            &   -0.0081** &  1.1274*** &     -0.0989 &  -0.3481*** &      0.1156 &     0.672 \\
CAMBIAR GLOBAL EQUITY FUND INVESTOR               &   -0.0085** &  0.9817*** &     -0.3839 &     -0.1172 &    -0.2311* &     0.571 \\
CASTLE FOCUS FD.INVESTOR SHARES                   &   -0.0048** &    0.68*** &    -0.2772* &      0.0599 &      0.0435 &     0.574 \\
CATALYST/MAP GLOBAL EQUITY FUND A                 &     -0.0024 &  0.8671*** &     -0.1107 &   0.1424*** &      0.0751 &     0.836 \\
CAUSEWAY CONCENTRATED EQUITY FUND INSTL           &     -0.0075 &  1.0838*** &      0.1659 &   0.4703*** &     -0.1343 &     0.846 \\
CAUSEWAY GLB.VAL.FUND INSTL.CLASS                 &     -0.0041 &  1.1775*** &      0.0813 &   0.4018*** &   -0.2088** &     0.836 \\
CHAUTAUQUA GLOBAL GROWTH FUND INSTITUTIONAL       &      0.0018 &  0.9583*** &    0.2412** &  -0.2451*** &      0.0494 &     0.867 \\
COLUMBIA GLOBAL VALUE FUND A                      &   -0.006*** &  1.0285*** &   -0.2464** &   0.3409*** &      0.0459 &     0.865 \\
COLUMBIA SELECT GLOBAL EQUITY FUND A              &     -0.0015 &  0.9838*** &   -0.2956** &  -0.4369*** &      0.0293 &     0.860 \\
COLUMBIA SELECT GLOBAL GROWTH FUND A              &     -0.0018 &  1.1741*** &      0.0928 &  -0.6257*** &     -0.0388 &     0.815 \\
COMMONWEALTH GLOBAL FD.                           &   -0.0029** &  0.9412*** &     -0.0306 &      0.0112 &     -0.0147 &     0.884 \\
THE COOK \& BYNUM FUND                             &   -0.0053** &  0.7452*** &   -0.2982** &   0.4001*** &    0.2362** &     0.602 \\
DWS CROCI SECTOR OPPORTUNITIES FUND S             &     -0.006* &   0.848*** &     -0.1108 &     -0.1838 &     -0.1445 &     0.603 \\
DAVIS GLB.FD.CL.A                                 &     -0.0007 &  0.9766*** &   0.4897*** &      0.0965 &     -0.0724 &     0.692 \\
DELAWARE GLOBAL EQUITY FUND A                     &   -0.0072** &   0.886*** &   -0.3864** &     -0.0166 &      0.0951 &     0.590 \\
DEL.GLB.VAL.FD.CL.A DEAD - Liquidated             &    -0.0048* &  0.8515*** &   -0.4601** &     -0.0233 &       -0.06 &     0.570 \\
DELAWARE IVY GLOBAL GROWTH FUND A                 &   -0.0071** &  1.1127*** &     -0.5032 &     -0.2855 &     -0.0836 &     0.598 \\
DIAMOND HILL GLOBAL FUND Y                        &   -0.0099** &  1.0751*** &      0.3198 &     -0.1515 &     -0.3645 &     0.797 \\
DODGE \& COX GLOBAL STOCK FUND I                   &     -0.003* &  1.1041*** &     -0.0878 &   0.3893*** &     -0.1323 &     0.845 \\
DREYFUS STRATEGIC BETA GLOBAL EQUITY FUND I       &    -0.0021* &  0.9587*** &   -0.2824** &     -0.0681 &     -0.0703 &     0.894 \\
DRIEHAUS GLB.GW.FUND DEAD - Liquidated            &    -0.0283* &  1.0754*** &      0.3887 &      1.4269 &      0.8729 &     0.255 \\
ERSHARES GLBL ENTREPRENEURS FD INSTL              &   -0.0048** &  0.9747*** &    0.5335** &  -0.4656*** &      0.0016 &     0.632 \\
EATON VANCE FOCUSED GLBL OPPTYS FD I              &     -0.0023 &  1.0434*** &     -0.0829 &     -0.0806 &     -0.0724 &     0.906 \\
EATON VANCE HEXAVEST GLB.EQ.FD.CL.I               &   -0.0051** &  0.9192*** &    -0.2025* &      0.1565 &      0.0708 &     0.801 \\
EATON VANCE RICHD.BERN. EQ.STGY.FD.CL.I           &   -0.0034** &  0.8841*** &   -0.2517** &     -0.0628 &     0.0998* &     0.796 \\
EPOCH GLOBAL ALL CAP FUND INSTITUTIONAL           &   -0.0069** &  0.9931*** &  -0.3876*** &     -0.1536 &      -0.017 &     0.699 \\
FEDERATED HERMES GLOBAL EQUITY FUND IS            &    -0.0022* &  0.9903*** &   -0.1686** &   -0.0726** &      0.0304 &     0.977 \\
FIDELITY ADVISOR GLOBAL CAPITAL APPREC FUND I     &     -0.0023 &  1.0661*** &      0.1158 &  -0.1459*** &     0.1216* &     0.848 \\
FIDELITY ENDURING OPPORTUNITIES FUND              &      0.0016 &  0.9571*** &      0.1004 &   -0.411*** &     -0.0823 &     0.961 \\
FID SRS INTRINSIC OPPTYS FD                       &     -0.0005 &   0.923*** &   0.3071*** &    0.1991** &     -0.0584 &     0.870 \\
FIDELITY WORLDWIDE FD.                            &  -0.0051*** &  1.0343*** &     -0.1524 &   -0.332*** &    0.1287** &     0.792 \\
FIERA CAPITAL GLOBAL EQUITY FUND INST             &      -0.001 &  0.9393*** &  -0.5164*** &  -0.2708*** &     -0.0534 &     0.923 \\
FRANKLIN GLOBAL EQUITY FUND FUND A                &     -0.0014 &  1.0106*** &   -0.1957** &       -0.01 &     -0.0289 &     0.890 \\
FRANKLIN MUTUAL BEACON FUND Z                     &   -0.0043** &   0.947*** &    -0.1978* &   0.2235*** &     -0.141* &     0.819 \\
FRANKLIN MUTUAL GLOBAL DISCOVERY FUND Z           &  -0.0058*** &  0.9155*** &    -0.241** &   0.3417*** &     -0.0701 &     0.793 \\
FRANKLIN WORLD PERSPECTIVES FD.CL.A               &    -0.0077* &  1.1151*** &     -0.1009 &     -0.0543 &      0.2029 &     0.782 \\
FRONTIER MFG GLOBAL EQUITY INSTITUTIONAL          &   -0.0071** &  0.9001*** &  -0.9024*** &   -0.5539** &     -0.2013 &     0.549 \\
FRONTIER MFG GLOBAL PLUS FUND INSTITUTIONAL       &     -0.0136 &  0.9753*** &   -1.0924** &     -0.708* &     -0.4374 &     0.305 \\
FRTR MFG GLBL SUSTAINABLE FD INSTL                &    -0.0049* &  0.7587*** &  -0.3841*** &  -0.2101*** &      0.0713 &     0.909 \\
FRONTIER ROBECO SAM GLOBAL EQUITY FUND INST       &    -0.0188* &  1.2541*** &    -1.3542* &      0.2519 &      0.0393 &     0.465 \\
GMO GLB.FOCD.EQ.FD.CL. III                        &  -0.0144*** &  1.1969*** &      0.3247 &     -0.0319 &      -0.024 &     0.584 \\
GQG PARTNERS GLOBAL QUALITY EQUITY FUND INST      &    -0.0072* &  0.9566*** &   -0.4707** &     0.2156* &   0.6113*** &     0.846 \\
GABELLI GLOBAL GROWTH FUND AAA                    &   -0.0041** &  1.0158*** &  -0.3128*** &  -0.6268*** &     -0.0096 &     0.848 \\
GRANITE VALUE FUND DEAD - Liquidated              &      -0.006 &  0.8578*** &     -0.0947 &      0.0724 &     -0.1213 &     0.304 \\
GREENWICH IVY LONG-SHORT FUND INST                &     -0.0006 &     0.2313 &     0.9733* &      0.1198 &  -1.1768*** &     0.314 \\
GUARDIAN CAPITAL DIV GRO FD INST                  &     -0.0021 &  0.9141*** &  -0.6718*** &     -0.0396 &   0.1584*** &     0.943 \\
GUARDIAN CAPITAL FNDM GLBL EQTY FD INST           &      0.0005 &  0.8865*** &     -0.0605 &     -0.137* &      0.0144 &     0.892 \\
GUIDE STONE GLBL IMPACT FD INSTL                  &     -0.0017 &  0.6738*** &   0.2532*** &  -0.1688*** &  -0.2144*** &     0.975 \\
GUINNESS ATKINSON GLOBAL INNOVATORS FUND INVESTOR &      0.0001 &  1.0655*** &     -0.1873 &  -0.4478*** &   -0.2323** &     0.799 \\
HC ESG GROWTH PORTFOLIO HC STRATEGIC              &  -0.0041*** &  1.0014*** &  -0.1976*** &  -0.0819*** &     -0.0239 &     0.960 \\
HSBC GLBL EQTY VOLATILITY FOCUSED FD I            &      0.0231 &    -1.1357 &      1.1767 &   -0.7376** &     -0.7092 &     0.066 \\
HARBOR GLOBAL LEADERS FUND INSTITUTIONAL          &    -0.0044* &  1.0263*** &     -0.2395 &  -0.4762*** &      0.0145 &     0.748 \\
HARBOR GLB.VAL.FD.INSTL. CL.                      &      0.0021 &  1.0075*** &      0.1678 &     -0.5611 &  -0.3305*** &     0.853 \\
HARDING LOEVNER GLOB.EQ. PRTF.ADVI.CL.            &    -0.0037* &  0.9985*** &     -0.0221 &  -0.4132*** &     -0.0369 &     0.783 \\
HARDING LOEVNER GLOBAL EQUITY RESEARCH PFLO INS   &    -0.005** &  0.9365*** &     -0.0054 &   -0.1644** &     -0.0778 &     0.834 \\
HARTFORD CLIMATE OPPORTUNITIES FUND A             &     -0.0037 &  1.1161*** &      0.0698 &   -0.1281** &     -0.0072 &     0.798 \\
HARTFORD GLB.GW.FD.CL.A DEAD - Merged:30913E      &    0.0048** &   1.113*** &      0.0748 &  -0.6579*** &     -0.0894 &     0.932 \\
HARTFORD GLOBAL RESEARCH HLS IA                   &     -0.0043 &  1.0684*** &     -0.2878 &      0.0809 &      0.1275 &     0.884 \\
HOTCHKIS \& WILEY GLOBAL VALUE FD.CL.I             &    -0.0034* &  1.2263*** &      0.0739 &    0.597*** &  -0.2163*** &     0.876 \\
IMPAX GLBL ENVIRON MARKETS FD INST                &     -0.0005 &  1.0623*** &      0.144* &   -0.193*** &     -0.0241 &     0.890 \\
IMPAX GLBL OPPTYS FD INSTL                        &      0.0014 &  0.9541*** &   -0.2062** &  -0.2107*** &     -0.0388 &     0.927 \\
INVESCO GLOBAL CORE EQ. FD.CL.A                   &  -0.0065*** &  1.0413*** &     -0.3028 &      0.0062 &     -0.0244 &     0.792 \\
INVESCO GLOBAL FOCUS FUND Y                       &     -0.0017 &  1.0872*** &        0.08 &  -0.6069*** &     -0.0644 &     0.819 \\
INVESCO GLOBAL FUND A                             &   -0.0044** &  1.1635*** &     -0.1862 &  -0.3737*** &   -0.1653** &     0.849 \\
IVS.GLB.GW.FD.CL.A DEAD - Merged:517169           &    -0.008** &   1.013*** &     -0.4124 &   -0.4876** &    -0.4148* &     0.593 \\
INVESCO GLOBAL OPPS.FD. CL.A                      &     -0.0039 &  1.1321*** &      -0.132 &     0.2427* &   -0.323*** &     0.833 \\
IRONBRIDGE GLOBAL FUND DEAD - Liquidated          &   -0.0067** &  0.9585*** &   -0.3975** &  -0.3735*** &      0.0404 &     0.641 \\
JOHCM GLOBAL SELECT FUND INST                     &    -0.005** &    0.98*** &     -0.0999 &   -0.3393** &      0.1416 &     0.695 \\
JP MORG GLBL UNCONSTRAINED EQTY FD I              &    -0.0066* &  1.0896*** &     -0.2127 &      0.1093 &     -0.1322 &     0.626 \\
JANUS HENDERSON GLOBAL RESEARCH FUND D            &    -0.0022* &  1.0543*** &     -0.0804 &   -0.1549** &     -0.0389 &     0.901 \\
JANUS HENDERSON GLOBAL SELECT FUND T              &    -0.0036* &  1.0995*** &       0.139 &      0.1177 &      -0.023 &     0.815 \\
JANUS HENDERSON GLBL SUSTAINABLE EQTY FD D        &   0.0038*** &  1.0385*** &       0.082 &  -0.2906*** &  -0.1445*** &     0.991 \\
JANUS HENDERSON GLOBAL VALUE FUND D               &  -0.0069*** &  0.6984*** &     -0.1506 &      0.2069 &     -0.0814 &     0.314 \\
JANUS PRESERVATION SERIES-GLOBAL C                &  -0.0075*** &  0.8701*** &     -0.1378 &     -0.1987 &      0.0376 &     0.624 \\
JENSEN GLOBAL QUALITY GROWTH FUND I               &      0.0032 &  0.8993*** &  -0.4785*** &  -0.1968*** &     -0.0842 &     0.950 \\
JOHN HANCOCK FDAMENTAL GLBL FRANCHISE FD NAV      &   -0.008*** &  1.0057*** &   -0.573*** &  -0.3527*** &     -0.1171 &     0.680 \\
JOHN HANCOCK GLOBAL EQUITY FUND NAV               &   -0.0056** &  0.9131*** &    -0.373** &     -0.0303 &     -0.0366 &     0.723 \\
JOHN HANCOCK FUNDS GLB. OPPS.FD.CL.A              &     -0.0029 &  0.9409*** &      0.1754 &     -0.1633 &  -0.4761*** &     0.715 \\
JHAN.FUND.III GLB. SHAREHOLDER YLD.FD.CL.I        &  -0.0063*** &  0.8943*** &  -0.4366*** &   0.2179*** &      0.0648 &     0.832 \\
JOHN HANCOCK GLOBAL THEMATIC OPPS FUND NAV        &    -0.0057* &  0.8829*** &     -0.0534 &   -0.226*** &     -0.1182 &     0.851 \\
JOHN HANCOCK MUTUAL SHARES FUND NAV               &      0.0002 &  0.7302*** &    -0.2498* &      0.0038 &     -0.0294 &     0.548 \\
JOHN HANCOCK TECHNICAL OPPORTUNITIES FUND NAV     &    -0.0116* &  1.3633*** &      0.2199 &    -0.3443* &   0.5225*** &     0.483 \\
JUBAK GLOBAL EQ.FD. DEAD - Liquidated             &  -0.0088*** &  0.9501*** &      0.0241 &     -0.2547 &    -0.2451* &     0.809 \\
LSV GLOBAL MANAGED VOLATILITY FUND INST           &   -0.0046** &  0.8209*** &  -0.3277*** &   0.2706*** &      0.0998 &     0.823 \\
LSV GLOBAL VALUE FUND INST                        &   -0.0028** &  1.0703*** &      0.0676 &   0.4203*** &     -0.0692 &     0.950 \\
LAZARD EQUITY FRANCHISE PORTFOLIO INSTITUTIONAL   &    -0.0082* &  1.1365*** &      0.0724 &   0.3641*** &     -0.1098 &     0.787 \\
LAZARD GLOBAL EQUITY SELECT PORTFOLIO INSTL       &     -0.0012 &  0.9206*** &  -0.2489*** &  -0.1397*** &      0.0483 &     0.939 \\
LAZARD GLOBAL STRATEGIC EQUITY PORTFOLIO INST     &     -0.0157 &  1.0158*** &     -0.5193 &     -0.0425 &       0.235 &     0.146 \\
LONGLEAF PARTNERS GLOBAL FD.                      &    -0.005** &  1.1007*** &     0.2701* &   0.2801*** &    -0.1771* &     0.790 \\
LORD ABBETT GLOBAL EQUITY FUND A                  &     -0.0038 &  0.9716*** &      -0.007 &     -0.1025 &     -0.0165 &     0.819 \\
MFAM GLBL OPPTYS FD INVSTR                        &     -0.0033 &  0.9873*** &      0.0925 &   -0.451*** &      0.0072 &     0.682 \\
MFS BLENDED RESEARCH GLOBAL EQUITY FUND R6        &     -0.0057 &  1.1018*** &     -0.2015 &      0.0497 &     -0.0525 &     0.877 \\
MFS GLB.EQ.FD.CL.B                                &     -0.002* &    1.03*** &  -0.3512*** &     -0.0747 &     -0.0262 &     0.929 \\
MFS GLOBAL LEADERS FD. CL.A                       &      -0.01* &  0.9563*** &   -0.8991** &      0.1136 &      0.1398 &     0.498 \\
MAIN STAY EPOCH CAPITAL GROWTH FUND I             &     -0.0066 &  0.8769*** &     -0.3671 &  -0.4361*** &     -0.1302 &     0.594 \\
MAINSTAY EPOCH GLB.CHO. FD.CL.I                   &    -0.008** &  1.1094*** &    -0.303** &     -0.1457 &      0.1129 &     0.694 \\
MAINSTAY EPOCH GLB.EQ. YLD.FD.CL.I                &  -0.0057*** &  0.9181*** &   -0.399*** &   0.2728*** &      0.114* &     0.852 \\
MAINSTAY ICAP GLB.FD.CL. I                        &     -0.004* &  1.0207*** &   -0.3361** &     -0.0105 &     -0.0214 &     0.890 \\
MNGD ACCT SRS BLKRK GA DYN EQTY FD K              &     -0.0028 &  1.0923*** &      0.0705 &      0.0597 &     0.0936* &     0.949 \\
MARSICO GLOBAL FUND INVESTOR                      &     -0.0032 &  1.0156*** &      -0.025 &  -0.6381*** &     -0.0219 &     0.694 \\
MASS MUTUAL GLOBAL FUND R5                        &   -0.0073** &  1.2139*** &     -0.2491 &  -0.4318*** &     -0.1848 &     0.739 \\
MONDRIAN GLOBAL EQUITY VALUE FUND                 &      -0.001 &  0.8193*** &      0.0615 &   0.3183*** &     -0.3697 &     0.833 \\
MORGAN STANLEY GLOBAL CONCENTRATED PORTFOLIO I    &      0.0002 &   0.929*** &       0.132 &   -0.1992** &     -0.0511 &     0.849 \\
MORGAN STANLEY GLOBAL CORE PORTFOLIO I            &     -0.0017 &  1.0194*** &     -0.0167 &     -0.1046 &      0.0839 &     0.913 \\
MORGAN STANLEY INSTL.FD. GLB.INSIGHT PRTF.CL.H    &     -0.0065 &   1.077*** &       0.141 &      0.2575 &      0.0315 &     0.431 \\
MORGAN STANLEY GLOBAL SUSTAIN PORTFOLIO I         &     -0.003* &  0.8798*** &   -0.609*** &  -0.2882*** &      0.0604 &     0.835 \\
MGST.INSTL.FD.GLB.FRCH. PRTF.CL.I                 &    -0.0029* &  0.8676*** &  -0.7791*** &  -0.2524*** &      0.0958 &     0.802 \\
MORG STAN INST GLBL PERMANENCE PFOLIO I           &     -0.0004 &  0.9238*** &     -0.0815 &  -0.4213*** &     -0.1743 &     0.766 \\
MORG STAN INSTL CNTRPNT GLBL I                    &     -0.0028 &  0.9542*** &   1.0639*** &  -0.8847*** &     -0.1328 &     0.677 \\
MORG STAN INSTL GLBL INSIGHT PRT I                &     -0.0047 &  0.9901*** &     0.5525* &  -1.1794*** &     -0.2549 &     0.555 \\
MORGAN STANLEY INSTL.FD. GLB.GW.PRTF.CL.I         &     -0.0005 &  1.0128*** &      0.1079 &   -0.722*** &     -0.1287 &     0.735 \\
MUNDOVAL FUND                                     &     -0.0005 &  0.9904*** &  -0.3474*** &    -0.0762* &   -0.1433** &     0.873 \\
NATIONWIDE GLBL SUSTAINABLE EQTY FD R6            &    -0.0032* &  1.0745*** &     -0.0016 &     -0.1038 &      -0.092 &     0.848 \\
NATIXIS LOOMIS SAYLES GLOBAL GROWTH Y             &     -0.0039 &  0.9118*** &     -0.2856 &  -0.5115*** &    -0.1907* &     0.832 \\
NEUBERGER BERMAN FOCUS FD.                        &   -0.0057** &  0.9775*** &     -0.1718 &   -0.398*** &     -0.0804 &     0.662 \\
NEUBERGER BERMAN GLOBAL THEMATIC OPPS.INSTL.CL.   &      -0.003 &  0.8228*** &      0.1522 &      0.0535 &        -0.1 &     0.691 \\
NINETY ONE GLOBAL FRANCHISE FUND I                &     -0.0004 &   0.888*** &  -0.4334*** &  -0.2046*** &      0.0528 &     0.941 \\
NORTHERN ENGAGE 360 FUND                          &    -0.0063* &  0.9685*** &      -0.288 &     -0.2138 &     -0.1964 &     0.787 \\
NUVEEN GLOBAL GROWTH FD. CL.A                     &     -0.0022 &  1.1386*** &   0.5454*** &    -0.2762* &    0.2347** &     0.855 \\
NUVEEN NWQ GLOBAL ALL- CAP FUND I                 &     -0.0033 &     0.5973 &      0.3314 &     -0.3776 &      -0.701 &     0.282 \\
OAKMARK GLOBAL FUND INVESTOR                      &   -0.0041** &  1.2843*** &      0.1387 &   0.3499*** &    -0.1187* &     0.880 \\
OAKMARK GLOBAL SELECT FUND INVESTOR               &     -0.003* &  1.2048*** &     -0.0227 &   0.2502*** &   -0.1533** &     0.882 \\
OLD WESTBURY ALL CAP ESG FUND                     &    -0.0122* &  0.8266*** &       0.611 &     -0.4014 &     -0.1473 &     0.726 \\
PF MULTI-ASSET FUND P                             &     -0.0075 &  0.9571*** &      0.2004 &     -0.2711 &     -0.1215 &     0.526 \\
PGIM JENNISON GLOBAL OPPORTUNITIES FUND Z         &      0.0014 &   1.104*** &     0.2371* &  -0.8171*** &      0.1008 &     0.847 \\
PIMCO EQUITIES PFR. WORLD FD.CL.A                 &     -0.0097 &  0.9426*** &     -0.6497 &      0.0117 &     -0.0459 &     0.334 \\
PIMCO GLOBAL DIVIDEND FUND A                      &   -0.0186** &  1.1335*** &      -0.895 &      0.2453 &     -0.0878 &     0.257 \\
PMC DIVERSIFIED EQUITY FUND ADVISOR               &   -0.0036** &  1.0138*** &      0.0107 &      0.0397 &      0.0331 &     0.880 \\
PARVIN HEDGED EQUITY SOLARI WORLD FUND            &   -0.0098** &  0.5559*** &     -0.2998 &    0.1736** &     -0.0567 &     0.776 \\
PHAEACIAN GLOBAL VALUE FUND INST                  &    -0.0072* &  0.9873*** &     -0.1403 &     -0.1496 &     -0.1507 &     0.581 \\
PION GLBL SUSTAINABLE EQTY FD A                   &    -0.0036* &   1.044*** &      0.0201 &   0.3007*** &    0.1753** &     0.816 \\
POLARIS GLB.VAL.FD.                               &      0.0001 &  1.0373*** &   0.2361*** &   0.3294*** &    -0.0949* &     0.936 \\
POLEN GLOBAL GROWTH FUND INSTITUTIONAL            &      0.0006 &  0.9518*** &  -0.2423*** &  -0.4342*** &     -0.0007 &     0.936 \\
PRINCIPAL SYSTEMAT EX INTERNATIONAL FUND R-6      &   -0.0088** &  1.0839*** &      0.0263 &       0.162 &      0.0776 &     0.814 \\
PURISIMA ALL-PURPOSE FD. DEAD - Liquidated        &         0.0 &    -0.0005 &     -0.0005 &      0.0009 &      0.0008 &    -0.081 \\
QUAKER GLOBAL TACTICAL ALLOCATION FUND ADVISOR    &      -0.002 &  0.9634*** &      0.0626 &   -0.2425** &      0.1133 &     0.805 \\
RBC GLOBAL OPPORTUNITIES FUND I                   &     -0.0003 &  1.0232*** &      0.0292 &  -0.2254*** &       0.035 &     0.918 \\
ROCKEFELLER EQTY ALLOCTN FD INSTL                 &    -0.0089* &  0.8571*** &      0.1721 &       0.401 &      0.3691 &     0.403 \\
RUSSELL INVESTMENTS GLOBAL EQUITY FUND S          &   -0.0076** &  1.0222*** &    -0.5346* &      0.0317 &     -0.0329 &     0.648 \\
SEI INST INV GLBL MNGD VOLATILITY FD A            &   -0.0069** &  0.7658*** &   -0.4157** &      0.0699 &      0.0233 &     0.690 \\
SEI INST MGD GLBL MNGD VOLATILITY FD F            &  -0.0056*** &  0.7353*** &  -0.4484*** &     -0.0474 &      0.1437 &     0.590 \\
SGI GLOBAL EQUITY FUND I                          &     -0.0031 &  0.8901*** &      0.0719 &     -0.1474 &     0.1866* &     0.568 \\
SALIENT GLOBAL EQ.FD.CL. I                        &     -0.0057 &  0.8377*** &      0.0662 &      0.0156 &     -0.0008 &     0.659 \\
SANDS CAPITAL GLBL GRO FD INSTL                   &     -0.0016 &  1.0975*** &   0.3588*** &  -0.7165*** &     -0.0647 &     0.832 \\
SCHARF GLOBAL OPPORTUNITY FUND INST               &     -0.0039 &  0.9092*** &   -0.3708** &      0.0538 &     -0.0564 &     0.735 \\
SCHRODER GLOBAL MULTI- CAP EQUITY FUND R6         &     -0.0317 &    0.6926* &     -1.9447 &        -0.6 &        0.57 &    -0.030 \\
SCOUT GLOBAL EQUITY FD. DEAD - Liquidated         &     -0.0043 &  0.9685*** &     -0.5015 &     -0.5674 &     -0.2031 &     0.354 \\
SEGALL BRYANT \& HAMILL GLOBAL ALL CAP FUND RTL    &  -0.0082*** &  0.8819*** &  -0.5868*** &     -0.1307 &     -0.0534 &     0.545 \\
SELECTIVE OPPORTUNITY FUND FOUNDATION             &     -0.0071 &  0.7948*** &     1.0079* &     -0.4026 &     -0.3982 &     0.365 \\
SIRIOS FOCUS FUND INST                            &     -0.0027 &  0.8971*** &     -0.4002 &     -0.1915 &      0.0024 &     0.804 \\
SIT ESG GROWTH FUND I                             &    -0.0021* &  0.9803*** &  -0.3935*** &  -0.1361*** &      0.0029 &     0.970 \\
STATE STREET DEFENSIVE GLOBAL EQUITY FUND I       &   -0.0129** &  0.8303*** &   -0.8348** &     -0.0955 &      0.0887 &     0.363 \\
STATE STREET GLOBAL VALUE SPOTLIGHT FUND K        &     -0.0198 &  1.2237*** &     -0.9384 &     -0.3582 &     -0.5046 &     0.642 \\
STRATEGIC EQUITY ALLOCATION FUND NAV              &   -0.0068** &  0.9752*** &     -0.1446 &     -0.0594 &     -0.0072 &     0.625 \\
T.ROWE PRICE GLB.LGCP. STK.FD.                    &     -0.0012 &  1.0063*** &      0.0683 &  -0.3591*** &     -0.0612 &     0.815 \\
T ROWE PRICE GLOBAL IMPACT EQUITY                 &      0.0035 &  1.0697*** &       0.041 &  -0.4487*** &      0.0509 &     0.951 \\
T ROWE PRICE GLB.STK.FD.                          &      0.0018 &  1.0315*** &     0.2479* &  -0.3566*** &     -0.0829 &     0.846 \\
T ROWE PRICE GLOBAL VALUE EQUITY                  &   -0.0045** &  1.0109*** &     -0.1142 &   0.2432*** &      0.0263 &     0.797 \\
T.ROWE PRICE INSTL. DEAD - Merged:9051FK          &    -0.0082* &  1.2649*** &     -0.1361 &    -0.3905* &      0.0839 &     0.531 \\
T ROWE PRICE INSTL.GLB. LGCP.EQ.FD.               &    -0.0051* &  1.1264*** &       -0.17 &     -0.0845 &       0.123 &     0.677 \\
T ROWE PRICE QM GLOBAL EQUITY FUND                &     -0.0041 &  1.0091*** &    -0.5142* &     -0.1383 &     -0.0531 &     0.857 \\
TD GLOBAL LOW VOLATILITY EQUITY FUND INST         &     -0.0042 &  0.6051*** &  -0.5364*** &     -0.0587 &     -0.0301 &     0.244 \\
TIF GLB.EQ.SERIES FUND DEAD - Liquidated          &    -0.0132* &     0.4618 &     -1.5302 &      1.8033 &      0.4333 &     0.112 \\
TEMPLETON GLB.OPPOR.TST. I                        &  -0.0062*** &  1.1346*** &     -0.1513 &    0.5433** &     -0.0584 &     0.765 \\
TEMPLETON GROWTH FD.CL.A                          &  -0.0045*** &  1.0259*** &     -0.1388 &    0.274*** &     -0.0675 &     0.885 \\
TEMPLETON WLD.FUND.CL.A                           &  -0.0069*** &  0.9982*** &    -0.2175* &       0.081 &  -0.2392*** &     0.781 \\
THORNBURG GLOBAL OPPORTUNITIES FUND I             &     -0.0004 &  0.9774*** &      0.1832 &    0.2172** &      0.0518 &     0.767 \\
THRIVENT GLOBAL STOCK FUND A                      &  -0.0065*** &  1.0023*** &   -0.2959** &    -0.1309* &     -0.0331 &     0.746 \\
THRIVENT LOW VOLATILITY EQUITY S                  &   -0.0037** &  0.7599*** &  -0.3601*** &     -0.0396 &    0.1496** &     0.868 \\
TRILLIUM ESG GLOBAL EQUITY FUND RETAIL            &     -0.0023 &  0.9878*** &   -0.2552** &  -0.2064*** &     -0.0478 &     0.883 \\
TWEEDY BROWNE INTL VALUE FUND II - CURR UNHGD     &   -0.0032** &  0.8926*** &    -0.1144* &   0.3121*** &      0.0301 &     0.890 \\
TWEEDY BROWNE VAL.FD.                             &   -0.0058** &  0.8539*** &  -0.3443*** &   0.1648*** &     -0.0256 &     0.687 \\
UBS ENGAGE FOR IMPACT FUND P                      &      -0.004 &  1.0107*** &    0.3681** &     -0.0061 &     -0.0064 &     0.869 \\
US GLB.INVRS.FUND.GLB. MEGATRENDS FUND            &      0.0014 &  0.7246*** &     -0.0281 &     -0.1842 &      0.0755 &     0.722 \\
USAA CAPITAL GROWTH FUND FUND                     &   -0.0031** &  1.0237*** &   -0.2238** &      0.0049 &      0.0347 &     0.854 \\
USAA SUSTAINABLE WORLD FUND FUND                  &    -0.0047* &  0.9376*** &   -0.3898** &   -0.1956** &     -0.0597 &     0.612 \\
UPRIGHT GW.FD.                                    &         0.0 &  1.2487*** &    1.2238** &     -0.0049 &     -0.3802 &     0.346 \\
VANGD.BAIL GIFF GL POSITIVE IPCT.STK.FD INV       &      0.0049 &  1.0992*** &      0.4517 &  -0.6358*** &      0.0475 &     0.773 \\
VANGUARD GLOBAL CAPITAL CYCLES FUND INVESTOR      &     -0.0063 &  0.8072*** &    0.7428** &     0.3652* &     -0.1849 &     0.269 \\
VANGUARD GLBL ESG SEL STK FD ADMIRAL              &     -0.0003 &  0.9526*** &   -0.2616** &   0.1154*** &    -0.1498* &     0.929 \\
VANGUARD HORIZON FD. VANGD.GLB.EQ.FD.             &   -0.0032** &  1.0084*** &     -0.0251 &    -0.1516* &     -0.0345 &     0.856 \\
VICTORY NEWBRIDGE GLOBAL EQUITY FUND A            &   -0.0073** &  1.0045*** &    -0.5182* &     -0.3364 &     -0.0662 &     0.557 \\
VICTORY RS GLOBAL FUND Y                          &     -0.0018 &  0.9414*** &  -0.1736*** &   -0.134*** &     -0.0356 &     0.808 \\
VIRTUS GLB.COMD.STK.FD. CL.I                      &    -0.0109* &   0.907*** &    0.7082** &     -0.0444 &    -0.4814* &     0.579 \\
VIRTUS NFJ GLOBAL SUSTAINABILITY FUND INST        &    -0.0059* &  1.0058*** &    -0.5597* &  -0.4582*** &     -0.2577 &     0.722 \\
VIRTUS SGA GLOBAL GROWTH FUND R6                  &     -0.0011 &  0.9881*** &    -0.2103* &  -0.3992*** &     -0.0372 &     0.875 \\
VIRTUS SGA NEW LEADERS GROWTH FUND R6             &     -0.0067 &  1.0396*** &   0.7234*** &     -0.1306 &    -0.3143* &     0.911 \\
VIRTUS VONTOBEL GLOBAL OPPORTUNITIES FUND A       &    -0.0031* &    0.95*** &  -0.3504*** &  -0.3298*** &      0.0323 &     0.779 \\
VONTOBEL GLOBAL EQUITY INSTITUTIONAL FUND I       &     -0.0015 &   0.911*** &  -0.5083*** &   -0.3251** &      0.0977 &     0.820 \\
VOYA GLBL HI DIV LOW VOLATILITY FD A              &   -0.004*** &  0.9346*** &  -0.1953*** &   0.2215*** &      0.0555 &     0.866 \\
VOYA GLOBAL OPPORTUNITIES FUND A                  &     -0.0011 &  1.0414*** &      0.0559 &     -0.0308 &  -0.2255*** &     0.949 \\
WCM FOCUSED GLB.GW.FD. INSTL.CL.                  &     -0.0013 &  0.9126*** &     -0.0062 &  -0.5512*** &     -0.0015 &     0.814 \\
WASATCH GLOBAL SELECT FUND INSTITUTIONAL          &     -0.0026 &  0.9263*** &      0.3178 &  -0.5481*** &     -0.1921 &     0.783 \\
WASATCH GLOBAL VALUE FUND INVESTOR                &    -0.009** &  0.9959*** &   -0.3803** &    0.484*** &     -0.0227 &     0.514 \\
WELLS FARGO INTRINSIC WORLD EQTY FD A             &   -0.0067** &  0.9341*** &      0.0624 &      0.1585 &     -0.1612 &     0.310 \\
WESTWOOD GLOBAL EQUITY FD.INSTL.SHS.              &     -0.0078 &  0.8087*** &      0.5069 &     -0.2319 &     -0.3736 &     0.067 \\
WILLIAM BLAIR GLOBAL LEADERS FD.CL.I              &    -0.0039* &  1.1125*** &     -0.1521 &  -0.3437*** &      0.0233 &     0.838 \\
WINTERGREEN FD. DEAD - Liquidated                 &   -0.0162** &  0.9244*** &     -0.3375 &      0.2652 &       0.416 &     0.200 \\
WINTON GLOBAL EQUITY PORTFOLIO INSTITUTIONAL      &      -0.011 &  1.0017*** &      0.1846 &       0.203 &     -0.0667 &     0.540 \\
WORLD SELECT EQUITY FUND A                        &   -0.0069** &   1.075*** &     -0.1639 &    0.1967** &     -0.0974 &     0.877 \\
YORKTOWN CAPITAL APPRECIATION FUND A              &  -0.0099*** &  0.8887*** &     -0.1225 &  -0.2884*** &      -0.071 &     0.654 \\
ABRDN EMERGING MARKETS EX-CHINA FUND A            &   -0.007*** &  0.9989*** &    -0.4017* &     -0.1508 &     -0.0874 &     0.730 \\
ABRDN GLOBAL EQUITY IMPACT FUND A                 &   -0.0041** &  1.0545*** &     -0.1115 &    -0.1532* &     -0.0052 &     0.842 \\
\bottomrule
\end{tabular}

Robustness Outliers¶

In this section, we removed outliers from our main dataset and performed some of the analyses already conducted above.

Making the dataset without outliers¶

In [ ]:
no_outlier = res_FFC[(res_FFC['Alpha'] > res_FFC['Alpha'].quantile(0.05)) & (res_FFC['Alpha'] < res_FFC['Alpha'].quantile(0.95))]
no_outlier_GROSS = res_FFC_GROSS[(res_FFC_GROSS['Alpha'] > res_FFC_GROSS['Alpha'].quantile(0.05)) & (res_FFC_GROSS['Alpha'] < res_FFC_GROSS['Alpha'].quantile(0.95))]

no_outlier_outliers = res_FFC_GROSS[(res_FFC_GROSS['Alpha'] < res_FFC_GROSS['Alpha'].quantile(0.05)) | (res_FFC_GROSS['Alpha'] > res_FFC_GROSS['Alpha'].quantile(0.95))]
no_outliers_outliers = pd.concat([pd.DataFrame(exp.mean()),no_outlier_outliers],axis=1).dropna()

no_outliers = pd.concat([pd.DataFrame(exp.mean()),no_outlier],axis=1).dropna()
no_outliers_GROSS = pd.concat([pd.DataFrame(exp.mean()),no_outlier_GROSS],axis=1).dropna()

robust_funds = no_outliers.index
cheap_fund_no_outliers = [i for i in no_outliers.index if i in cheap_funds] 
medium_fund_no_outliers = [i for i in no_outliers.index if i in medium_funds] 
expensive_fund_no_outliers = [i for i in no_outliers.index if i in expensive_funds] 

Carhart 4 Alphas on Expense Ratio¶

Gross return Carhart 4 Alphas on Expense Ratio - No outliers¶

In [ ]:
reg(no_outliers_GROSS[0]/100, (no_outliers_GROSS['Alpha']+1)**12-1, h=True)
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  Alpha   R-squared:                       0.009
Model:                            OLS   Adj. R-squared:                  0.005
Method:                 Least Squares   F-statistic:                     2.023
Date:                Sun, 25 Jun 2023   Prob (F-statistic):              0.156
Time:                        15:39:07   Log-Likelihood:                 445.92
No. Observations:                 225   AIC:                            -887.8
Df Residuals:                     223   BIC:                            -881.0
Df Model:                           1                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0598      0.007     -8.529      0.000      -0.074      -0.046
0              0.8681      0.610      1.422      0.155      -0.328       2.065
==============================================================================
Omnibus:                        3.926   Durbin-Watson:                   1.878
Prob(Omnibus):                  0.140   Jarque-Bera (JB):                3.829
Skew:                          -0.273   Prob(JB):                        0.147
Kurtosis:                       2.667   Cond. No.                         269.
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction

Net return Carhart 4 Alphas on Expense Ratio - No outliers¶

In [ ]:
reg(no_outliers[0]/100, (no_outliers['Alpha']+1)**12-1, h=True)
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  Alpha   R-squared:                       0.000
Model:                            OLS   Adj. R-squared:                 -0.004
Method:                 Least Squares   F-statistic:                  0.001005
Date:                Sun, 25 Jun 2023   Prob (F-statistic):              0.975
Time:                        15:39:07   Log-Likelihood:                 448.24
No. Observations:                 225   AIC:                            -892.5
Df Residuals:                     223   BIC:                            -885.7
Df Model:                           1                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0605      0.007     -8.573      0.000      -0.074      -0.047
0             -0.0192      0.606     -0.032      0.975      -1.207       1.169
==============================================================================
Omnibus:                        3.965   Durbin-Watson:                   1.764
Prob(Omnibus):                  0.138   Jarque-Bera (JB):                3.866
Skew:                          -0.274   Prob(JB):                        0.145
Kurtosis:                       2.667   Cond. No.                         270.
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction

Plotting Gross return Carhart 4 Alphas on Expense Ratio¶

In [ ]:
from scipy.interpolate import UnivariateSpline
# Plotting and uses a basic Regression line based on the output from the Regression above
coef = reg(no_outliers_GROSS[0]/100, (no_outliers_GROSS['Alpha']+1)**12-1, returns=True)
plt.xlabel('Expense ratio')
plt.ylabel('Annualized 4-Factor Alpha')
line = lambda x: coef.params['const']+x*coef.params[0]
plt.scatter(no_outliers_GROSS[0]/100, (no_outliers_GROSS['Alpha']+1)**12-1,label='Fund',color='grey')
plt.scatter(no_outliers_outliers[0]/100, (no_outliers_outliers['Alpha']+1)**12-1,color='red',label='Outlier')

# Plotting Non-parametric line
spl = UnivariateSpline(no_outliers_GROSS.sort_values(0)[0]/100,(no_outliers_GROSS.sort_values(0)['Alpha']+1)**12-1)

v = np.linspace(0.2,2,100)/100

ys = spl(v)

plt.plot(v,ys, label='Non-parametric line')
plt.plot(v,line(v), color='black', label='Linear Regression line')
plt.ylim(-0.3,0.2)
plt.xlim(0.1/100, 2.2/100)
plt.axvline(x=cheap/100, c='g', ls='--',label='Low/Medium cost')
plt.axvline(x=medium/100, c='y', ls='--',label='Medium/High cost')
plt.title(f'Carhart 4 Alpha on Expense Ratio')
plt.legend()
Out[ ]:
<matplotlib.legend.Legend at 0x7fa650b9ab80>

Equally Weighted Portfolios - FFC - No outliers - Cost groups¶

All funds (without outliers)¶

In [ ]:
EW(FAMAC, returns=ret[robust_funds],h=True)
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.912
Model:                            OLS   Adj. R-squared:                  0.909
Method:                 Least Squares   F-statistic:                     242.5
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           3.69e-58
Time:                        15:39:07   Log-Likelihood:                 386.05
No. Observations:                 131   AIC:                            -762.1
Df Residuals:                     126   BIC:                            -747.7
Df Model:                           4                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0050      0.001     -4.336      0.000      -0.007      -0.003
Mkt-RF         0.9803      0.035     28.411      0.000       0.913       1.048
SMB           -0.1094      0.077     -1.419      0.156      -0.260       0.042
HML           -0.1023      0.042     -2.413      0.016      -0.185      -0.019
MOM           -0.0248      0.036     -0.687      0.492      -0.096       0.046
==============================================================================
Omnibus:                      107.281   Durbin-Watson:                   2.149
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              773.186
Skew:                          -3.027   Prob(JB):                    1.27e-168
Kurtosis:                      13.247   Cond. No.                         69.3
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa600cff970>

Low-cost funds¶

In [ ]:
EW(FAMAC, returns=ret[cheap_fund_no_outliers],h=True)
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.897
Model:                            OLS   Adj. R-squared:                  0.893
Method:                 Least Squares   F-statistic:                     223.0
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           3.85e-56
Time:                        15:39:07   Log-Likelihood:                 376.63
No. Observations:                 131   AIC:                            -743.3
Df Residuals:                     126   BIC:                            -728.9
Df Model:                           4                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0048      0.001     -4.121      0.000      -0.007      -0.003
Mkt-RF         0.9653      0.035     27.505      0.000       0.896       1.034
SMB           -0.1438      0.081     -1.773      0.076      -0.303       0.015
HML           -0.0830      0.047     -1.782      0.075      -0.174       0.008
MOM           -0.0244      0.039     -0.622      0.534      -0.101       0.053
==============================================================================
Omnibus:                       99.076   Durbin-Watson:                   2.267
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              596.367
Skew:                          -2.810   Prob(JB):                    3.17e-130
Kurtosis:                      11.814   Cond. No.                         69.3
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa611c5b160>

Medium-cost funds¶

In [ ]:
EW(FAMAC, returns=ret[medium_fund_no_outliers],h=True)
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.907
Model:                            OLS   Adj. R-squared:                  0.904
Method:                 Least Squares   F-statistic:                     266.6
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           1.86e-60
Time:                        15:39:07   Log-Likelihood:                 378.49
No. Observations:                 131   AIC:                            -747.0
Df Residuals:                     126   BIC:                            -732.6
Df Model:                           4                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0046      0.001     -3.823      0.000      -0.007      -0.002
Mkt-RF         1.0041      0.036     27.737      0.000       0.933       1.075
SMB           -0.1113      0.077     -1.438      0.151      -0.263       0.040
HML           -0.1385      0.042     -3.275      0.001      -0.221      -0.056
MOM           -0.0357      0.035     -1.008      0.314      -0.105       0.034
==============================================================================
Omnibus:                      109.601   Durbin-Watson:                   2.185
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              855.806
Skew:                          -3.072   Prob(JB):                    1.46e-186
Kurtosis:                      13.911   Cond. No.                         69.3
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa600c8efd0>

High-cost funds¶

In [ ]:
EW(FAMAC, returns=ret[expensive_fund_no_outliers],h=True)
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.913
Model:                            OLS   Adj. R-squared:                  0.910
Method:                 Least Squares   F-statistic:                     233.6
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           2.93e-57
Time:                        15:39:07   Log-Likelihood:                 389.12
No. Observations:                 131   AIC:                            -768.2
Df Residuals:                     126   BIC:                            -753.9
Df Model:                           4                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0057      0.001     -4.703      0.000      -0.008      -0.003
Mkt-RF         0.9665      0.034     28.640      0.000       0.900       1.033
SMB           -0.0854      0.082     -1.043      0.297      -0.246       0.075
HML           -0.0786      0.045     -1.756      0.079      -0.166       0.009
MOM           -0.0130      0.041     -0.316      0.752      -0.094       0.068
==============================================================================
Omnibus:                       96.467   Durbin-Watson:                   1.956
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              544.089
Skew:                          -2.748   Prob(JB):                    7.12e-119
Kurtosis:                      11.335   Cond. No.                         69.3
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa600906c70>

Fama-French five-factor regression¶

In this section, we ran the Fama-french five-factor regression on our dataset. This is a part of the appendix in our thesis, therefor the section is last in our code.

In [ ]:
res_FF5 = factor(res_FF5_,FAMA5,ret,h=True)
res_FF5_GROSS = factor(res_FF5_,FAMA5,GROSS,h=True)

res_FF5_level = factor(res_FF5_,FAMA5,ret,h=True,level=0.1)
res_FF5_GROSS_level = factor(res_FF5_,FAMA5,GROSS,h=True,level=0.1)
In [ ]:
print(f'''There are {len(res_FF5)} individual funds, from these {len(res_FF5[res_FF5['Alpha'] > 0])} generated alpha if we looking 
at after fee numbers
Before fee there are {len(res_FF5_GROSS[res_FF5_GROSS['Alpha'] > 0])} funds''')


print(f'''There are {len(res_FF5)} individual funds, from these {len(res_FF5[res_FF5['Alpha'] < 0])} negative alpha if we looking 
at after fee numbers
Before fee there are {len(res_FF5_GROSS[res_FF5_GROSS['Alpha'] < 0])} funds''')


print(f'''

10% significance

There are {len(res_FF5_level)} individual funds, from these {len(res_FF5_level[res_FF5_level['Alpha'] > 0])} generated alpha if we looking 
at after fee numbers
Before fee there are {len(res_FF5_GROSS_level[res_FF5_GROSS_level['Alpha'] > 0])} funds''')


print(f'''There are {len(res_FF5_level)} individual funds, from these {len(res_FF5_level[res_FF5_level['Alpha'] < 0])} negative alpha if we looking 
at after fee numbers
Before fee there are {len(res_FF5_GROSS_level[res_FF5_GROSS_level['Alpha'] < 0])} funds''')
There are 251 individual funds, from these 25 generated alpha if we looking 
at after fee numbers
Before fee there are 38 funds
There are 251 individual funds, from these 226 negative alpha if we looking 
at after fee numbers
Before fee there are 213 funds


10% significance

There are 251 individual funds, from these 5 generated alpha if we looking 
at after fee numbers
Before fee there are 7 funds
There are 251 individual funds, from these 159 negative alpha if we looking 
at after fee numbers
Before fee there are 125 funds
In [ ]:
res_FF5.describe()
Out[ ]:
Alpha Mkt-RF SMB HML RMW CMA ADJ_R_SQ
count 251.000 251.000 251.000 251.000 251.000 251.000 251.000
mean -0.005 0.951 -0.131 0.091 0.039 -0.317 0.734
std 0.005 0.172 0.455 0.475 0.703 0.641 0.211
min -0.033 -0.061 -1.939 -1.050 -2.936 -3.276 -0.054
25% -0.008 0.889 -0.332 -0.157 -0.242 -0.602 0.645
50% -0.005 0.971 -0.161 0.056 0.012 -0.293 0.813
75% -0.002 1.037 0.042 0.244 0.253 0.060 0.878
max 0.009 1.524 4.176 3.252 4.839 1.570 0.992
In [ ]:
res_FF5_GROSS.describe()
Out[ ]:
Alpha Mkt-RF SMB HML RMW CMA ADJ_R_SQ
count 251.000 251.000 251.000 251.000 251.000 251.000 251.000
mean -0.005 0.951 -0.131 0.091 0.038 -0.317 0.734
std 0.005 0.172 0.455 0.475 0.703 0.641 0.211
min -0.032 -0.061 -1.939 -1.050 -2.936 -3.276 -0.054
25% -0.007 0.889 -0.332 -0.157 -0.241 -0.603 0.645
50% -0.004 0.971 -0.161 0.056 0.011 -0.293 0.813
75% -0.001 1.037 0.042 0.244 0.253 0.058 0.878
max 0.009 1.524 4.176 3.252 4.839 1.570 0.992
In [ ]:
EW(FAMA5,h=True)
EW(FAMA5,returns=GROSS,h=True)
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.914
Model:                            OLS   Adj. R-squared:                  0.911
Method:                 Least Squares   F-statistic:                     258.5
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           4.08e-64
Time:                        15:39:11   Log-Likelihood:                 387.82
No. Observations:                 131   AIC:                            -763.6
Df Residuals:                     125   BIC:                            -746.4
Df Model:                           5                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0049      0.001     -4.224      0.000      -0.007      -0.003
Mkt-RF         0.9577      0.042     23.062      0.000       0.876       1.039
SMB           -0.1746      0.073     -2.379      0.017      -0.318      -0.031
HML            0.0243      0.063      0.388      0.698      -0.099       0.147
RMW           -0.0441      0.108     -0.407      0.684      -0.257       0.168
CMA           -0.2896      0.167     -1.738      0.082      -0.616       0.037
==============================================================================
Omnibus:                       97.964   Durbin-Watson:                   2.200
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              590.137
Skew:                          -2.764   Prob(JB):                    7.14e-129
Kurtosis:                      11.806   Cond. No.                         141.
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
Equaly weighted
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                  EW-RF   R-squared:                       0.914
Model:                            OLS   Adj. R-squared:                  0.911
Method:                 Least Squares   F-statistic:                     257.6
Date:                Sun, 25 Jun 2023   Prob (F-statistic):           4.94e-64
Time:                        15:39:11   Log-Likelihood:                 387.72
No. Observations:                 131   AIC:                            -763.4
Df Residuals:                     125   BIC:                            -746.2
Df Model:                           5                                         
Covariance Type:                  HAC                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0039      0.001     -3.415      0.001      -0.006      -0.002
Mkt-RF         0.9578      0.042     23.051      0.000       0.876       1.039
SMB           -0.1745      0.073     -2.375      0.018      -0.318      -0.030
HML            0.0241      0.063      0.384      0.701      -0.099       0.147
RMW           -0.0449      0.109     -0.413      0.680      -0.258       0.168
CMA           -0.2896      0.167     -1.735      0.083      -0.617       0.037
==============================================================================
Omnibus:                       97.938   Durbin-Watson:                   2.197
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              589.302
Skew:                          -2.764   Prob(JB):                    1.08e-128
Kurtosis:                      11.798   Cond. No.                         141.
==============================================================================

Notes:
[1] Standard Errors are heteroscedasticity and autocorrelation robust (HAC) using 1 lags and without small sample correction
Out[ ]:
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x7fa6115fd2b0>
In [ ]:
 
In [ ]: