#################################
## Sharpe ratios
#################################
mkt_sharpe = mean(port_all2$mktrf)/sd(port_all2$mktrf) * sqrt(12)

all_e_sharpe = mean(port_all2$r_port_e)/sd(port_all2$r_port_e) * sqrt(12)
all_v_sharpe = mean(port_all2$r_port_v)/sd(port_all2$r_port_v) * sqrt(12)

non1000_e_sharpe = mean(port_non_top1000_2$r_port_e)/sd(port_non_top1000_2$r_port_e) * sqrt(12)
non1000_v_sharpe = mean(port_non_top1000_2$r_port_v)/sd(port_non_top1000_2$r_port_v) * sqrt(12)

print(rbind(mkt_sharpe,all_e_sharpe,all_v_sharpe,non1000_e_sharpe,non1000_v_sharpe))
##                        [,1]
## mkt_sharpe       0.48032948
## all_e_sharpe     0.58282141
## all_v_sharpe     0.05480038
## non1000_e_sharpe 0.72048737
## non1000_v_sharpe 0.50506017
#################################
## 3 sets of factor models
#################################
f_capm_e = "r_port_e ~ mktrf"
f_capm_v = "r_port_v ~ mktrf"
f_ff_e = "r_port_e ~ mktrf + smb + hml"
f_ff_v = "r_port_v ~ mktrf + smb + hml"
f_ch_e = "r_port_e ~ mktrf + smb + hml + umd"
f_ch_v = "r_port_v ~ mktrf + smb + hml + umd"

m_capm_v_non1000 = lm(f_capm_v,data = port_non_top1000_2)
m_capm_e_non1000 = lm(f_capm_e,data = port_non_top1000_2)
m_capm_v_all = lm(f_capm_v,data = port_all2)
m_capm_e_all = lm(f_capm_e,data = port_all2)

m_ff_v_all = lm(f_ff_v,data = port_all2)
m_ff_e_all = lm(f_ff_e,data = port_all2)
m_ff_v_non1000 = lm(f_ff_v,data = port_non_top1000_2)
m_ff_e_non1000 = lm(f_ff_e,data = port_non_top1000_2)

m_ch_v_all = lm(f_ch_v,data = port_all2)
m_ch_e_all = lm(f_ch_e,data = port_all2)
m_ch_v_non1000 = lm(f_ch_v,data = port_non_top1000_2)
m_ch_e_non1000 = lm(f_ch_e,data = port_non_top1000_2)
# significant alphas
summary(m_capm_e_all)
## 
## Call:
## lm(formula = f_capm_e, data = port_all2)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.191951 -0.017694  0.001393  0.018056  0.148257 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept) 0.005289   0.001680   3.149  0.00175 **
## mktrf       0.089190   0.037141   2.401  0.01676 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.03454 on 429 degrees of freedom
## Multiple R-squared:  0.01326,    Adjusted R-squared:  0.01096 
## F-statistic: 5.767 on 1 and 429 DF,  p-value: 0.01676
summary(m_capm_v_all)
## 
## Call:
## lm(formula = f_capm_v, data = port_all2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.30391 -0.02848  0.00124  0.02376  0.31998 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept) 0.0001119  0.0025159   0.044   0.9645  
## mktrf       0.1140927  0.0556256   2.051   0.0409 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.05173 on 429 degrees of freedom
## Multiple R-squared:  0.009711,   Adjusted R-squared:  0.007403 
## F-statistic: 4.207 on 1 and 429 DF,  p-value: 0.04087
summary(m_capm_e_non1000)
## 
## Call:
## lm(formula = f_capm_e, data = port_non_top1000_2)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.224664 -0.018873  0.001443  0.019618  0.136143 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 0.006978   0.001721   4.054 5.99e-05 ***
## mktrf       0.064321   0.038059   1.690   0.0917 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.0354 on 429 degrees of freedom
## Multiple R-squared:  0.006614,   Adjusted R-squared:  0.004298 
## F-statistic: 2.856 on 1 and 429 DF,  p-value: 0.09174
summary(m_capm_v_non1000)
## 
## Call:
## lm(formula = f_capm_v, data = port_non_top1000_2)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.238556 -0.018900  0.001097  0.020344  0.224040 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 0.004875   0.001926   2.531 0.011725 *  
## mktrf       0.158375   0.042586   3.719 0.000227 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.03961 on 429 degrees of freedom
## Multiple R-squared:  0.03123,    Adjusted R-squared:  0.02897 
## F-statistic: 13.83 on 1 and 429 DF,  p-value: 0.0002266
summary(m_ff_e_all)
## 
## Call:
## lm(formula = f_ff_e, data = port_all2)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.139020 -0.013939  0.000173  0.014160  0.067653 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.008560   0.001189   7.199 2.74e-12 ***
## mktrf       -0.116545   0.027880  -4.180 3.53e-05 ***
## smb          0.138853   0.040495   3.429 0.000665 ***
## hml         -0.817350   0.042307 -19.320  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.02419 on 427 degrees of freedom
## Multiple R-squared:  0.5183, Adjusted R-squared:  0.5149 
## F-statistic: 153.1 on 3 and 427 DF,  p-value: < 2.2e-16
summary(m_ff_v_all)
## 
## Call:
## lm(formula = f_ff_v, data = port_all2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.18126 -0.01869 -0.00003  0.01907  0.11480 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.004499   0.001706   2.638  0.00864 ** 
## mktrf       -0.216100   0.039991  -5.404 1.09e-07 ***
## smb          0.509594   0.058086   8.773  < 2e-16 ***
## hml         -1.109003   0.060685 -18.275  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.0347 on 427 degrees of freedom
## Multiple R-squared:  0.5565, Adjusted R-squared:  0.5534 
## F-statistic: 178.6 on 3 and 427 DF,  p-value: < 2.2e-16
summary(m_ff_e_non1000)
## 
## Call:
## lm(formula = f_ff_e, data = port_non_top1000_2)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.173171 -0.015563  0.001486  0.018427  0.075574 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.009984   0.001377   7.253 1.93e-12 ***
## mktrf       -0.110846   0.032278  -3.434 0.000653 ***
## smb          0.044700   0.046884   0.953 0.340916    
## hml         -0.747914   0.048981 -15.270  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.02801 on 427 degrees of freedom
## Multiple R-squared:  0.3809, Adjusted R-squared:  0.3766 
## F-statistic: 87.58 on 3 and 427 DF,  p-value: < 2.2e-16
summary(m_ff_v_non1000)
## 
## Call:
## lm(formula = f_ff_v, data = port_non_top1000_2)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.188587 -0.017482  0.000308  0.017624  0.117819 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.008133   0.001482   5.487 7.03e-08 ***
## mktrf       -0.059878   0.034756  -1.723   0.0856 .  
## smb          0.218022   0.050482   4.319 1.95e-05 ***
## hml         -0.817069   0.052740 -15.492  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.03016 on 427 degrees of freedom
## Multiple R-squared:  0.4409, Adjusted R-squared:  0.437 
## F-statistic: 112.3 on 3 and 427 DF,  p-value: < 2.2e-16
summary(m_ch_e_all)
## 
## Call:
## lm(formula = f_ch_e, data = port_all2)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.101752 -0.013856  0.000295  0.013537  0.081551 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.007544   0.001184   6.374 4.79e-10 ***
## mktrf       -0.090313   0.027855  -3.242 0.001279 ** 
## smb          0.133821   0.039603   3.379 0.000794 ***
## hml         -0.772030   0.042535 -18.150  < 2e-16 ***
## umd          0.118628   0.026007   4.561 6.65e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.02365 on 426 degrees of freedom
## Multiple R-squared:  0.5407, Adjusted R-squared:  0.5364 
## F-statistic: 125.4 on 4 and 426 DF,  p-value: < 2.2e-16
summary(m_ch_v_all)
## 
## Call:
## lm(formula = f_ch_v, data = port_all2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.18749 -0.01912  0.00002  0.01907  0.11797 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.004138   0.001736   2.383   0.0176 *  
## mktrf       -0.206772   0.040861  -5.060 6.23e-07 ***
## smb          0.507804   0.058094   8.741  < 2e-16 ***
## hml         -1.092887   0.062395 -17.516  < 2e-16 ***
## umd          0.042184   0.038149   1.106   0.2695    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.03469 on 426 degrees of freedom
## Multiple R-squared:  0.5578, Adjusted R-squared:  0.5536 
## F-statistic: 134.3 on 4 and 426 DF,  p-value: < 2.2e-16
summary(m_ch_e_non1000)
## 
## Call:
## lm(formula = f_ch_e, data = port_non_top1000_2)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.127228 -0.015339  0.000007  0.017682  0.091136 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.008731   0.001366   6.393 4.28e-10 ***
## mktrf       -0.078508   0.032144  -2.442    0.015 *  
## smb          0.038495   0.045700   0.842    0.400    
## hml         -0.692044   0.049084 -14.099  < 2e-16 ***
## umd          0.146241   0.030011   4.873 1.55e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.02729 on 426 degrees of freedom
## Multiple R-squared:  0.4136, Adjusted R-squared:  0.4081 
## F-statistic: 75.12 on 4 and 426 DF,  p-value: < 2.2e-16
summary(m_ch_v_non1000)
## 
## Call:
## lm(formula = f_ch_v, data = port_non_top1000_2)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.135867 -0.017544  0.000141  0.016923  0.097349 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.006695   0.001465   4.570 6.40e-06 ***
## mktrf       -0.022771   0.034480  -0.660    0.509    
## smb          0.210903   0.049022   4.302 2.10e-05 ***
## hml         -0.752959   0.052651 -14.301  < 2e-16 ***
## umd          0.167811   0.032192   5.213 2.91e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.02927 on 426 degrees of freedom
## Multiple R-squared:  0.4745, Adjusted R-squared:  0.4695 
## F-statistic: 96.15 on 4 and 426 DF,  p-value: < 2.2e-16