loading packages and data

    from the  histgrams we can see that a lot of variables are not normally ditributed, thus we took log of these variables. 

we ts the variables after take log

suntrust_data$log_interest.income <- log(suntrust_data$total.interest.income)
suntrust_data$log_interest.expense <- log(suntrust_data$total.interest.expense)
suntrust_data$log_noninterest.expense <- log(suntrust_data$total.noninterest.expense)
suntrust_data$log_noninterest.income <- log(suntrust_data$total.noninterest.income)
suntrust_data$log_alll <- log(suntrust_data$provision.ALLL)
## Warning in log(suntrust_data$provision.ALLL): 产生了NaNs
suntrust_data$log_house.price.index..level. <- log(suntrust_data$house.price.index..level.)
suntrust_data$log_unemployment.rate <- log(suntrust_data$unemployment.rate)
suntrust_data$log_mortgage.rate <- log(suntrust_data$mortgage.rate)
suntrust_data$log_DJ.index <- log(suntrust_data$dow.jones.total.stock.market.index..level.)
suntrust_data$log_10treasury.yield <- log(suntrust_data$x10.year.treasury.yield)
suntrust_data$log_5treasury.yield <- log(suntrust_data$x5.year.treasury.yield)
suntrust_data$log_3treasury.yield <- log(suntrust_data$x3.month.treasury.rate)
suntrust_data$log_bbb <- log(suntrust_data$bbb.corporate.yield)
suntrust_data$market.returns <- diff(suntrust_data$dow.jones.total.stock.market.index..level.)
## Warning in `[<-.data.table`(x, j = name, value = value): Supplied 103 items
## to be assigned to 104 items of column 'market.returns' (recycled leaving
## remainder of 1 items).
jpmorgan_data$log_interest.income <- log(jpmorgan_data$total.interest.income)
jpmorgan_data$log_interest.expense <- log(jpmorgan_data$total.interest.expense)
jpmorgan_data$log_noninterest.expense <- log(jpmorgan_data$total.noninterest.expense)
jpmorgan_data$log_noninterest.income <- log(jpmorgan_data$total.noninterest.income)
jpmorgan_data$log_alll <- log(jpmorgan_data$provision.ALLL)
## Warning in log(jpmorgan_data$provision.ALLL): 产生了NaNs
jpmorgan_data$log_house.price.index..level. <- log(jpmorgan_data$house.price.index..level.)
jpmorgan_data$log_unemployment.rate <- log(jpmorgan_data$unemployment.rate)
jpmorgan_data$log_mortgage.rate <- log(jpmorgan_data$mortgage.rate)
jpmorgan_data$log_DJ.index <- log(jpmorgan_data$dow.jones.total.stock.market.index..level.)
jpmorgan_data$log_10treasury.yield <- log(jpmorgan_data$x10.year.treasury.yield)
jpmorgan_data$log_5treasury.yield <- log(jpmorgan_data$x5.year.treasury.yield)
jpmorgan_data$log_3treasury.yield <- log(jpmorgan_data$x3.month.treasury.rate)
jpmorgan_data$log_bbb <- log(jpmorgan_data$bbb.corporate.yield)
jpmorgan_data$market.returns <- diff(jpmorgan_data$dow.jones.total.stock.market.index..level.)
## Warning in `[<-.data.table`(x, j = name, value = value): Supplied 103 items
## to be assigned to 104 items of column 'market.returns' (recycled leaving
## remainder of 1 items).
suntrust_data <- na.omit(suntrust_data)
jpmorgan_data <- na.omit(jpmorgan_data)

suntrust_ts <- ts(suntrust_data,start = c(1990), end = c(2016),frequency = 4)
jpmorgan_ts <- ts(jpmorgan_data,start = c(1990), end = c(2016),frequency = 4)

fit models for total interest income. The candidate macro-indicators are : treasury bbb and mortgage(we have problems here because these three variable’s correlation level are high, “> 0.8”)

JP.intinc_model1 <- tslm(log_interest.income ~ 
                           log_10treasury.yield +
                           log_bbb +
                           log_mortgage.rate, 
                         data = jpmorgan_ts)
summary(JP.intinc_model1)
## 
## Call:
## tslm(formula = log_interest.income ~ log_10treasury.yield + log_bbb + 
##     log_mortgage.rate, data = jpmorgan_ts)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.96385 -0.37908 -0.03025  0.25835  1.47841 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           20.3327     0.9575  21.236  < 2e-16 ***
## log_10treasury.yield   0.9012     0.7906   1.140  0.25705    
## log_bbb                1.0533     0.5259   2.003  0.04787 *  
## log_mortgage.rate     -4.3309     1.3302  -3.256  0.00154 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5068 on 101 degrees of freedom
## Multiple R-squared:  0.6168, Adjusted R-squared:  0.6054 
## F-statistic: 54.19 on 3 and 101 DF,  p-value: < 2.2e-16
ST.intinc_model1 <- tslm(log_interest.income ~ 
                            log_10treasury.yield +
                            log_bbb +
                            log_mortgage.rate, 
                          data = suntrust_ts)
summary(ST.intinc_model1)
## 
## Call:
## tslm(formula = log_interest.income ~ log_10treasury.yield + log_bbb + 
##     log_mortgage.rate, data = suntrust_ts)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.5899 -0.2696 -0.1028  0.2588  0.8709 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           14.9325     0.7060  21.152   <2e-16 ***
## log_10treasury.yield  -0.3189     0.5823  -0.548    0.585    
## log_bbb                0.3062     0.3878   0.789    0.432    
## log_mortgage.rate     -0.5452     0.9795  -0.557    0.579    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3732 on 101 degrees of freedom
## Multiple R-squared:  0.2764, Adjusted R-squared:  0.2549 
## F-statistic: 12.86 on 3 and 101 DF,  p-value: 3.487e-07
 The 10 year Treasury yield is not significant for the regression model, so we will use the 5 year Treasury yield. We tried using the 3 month treasury rate because after we took log of it, it has "-inf" because you can't take the log of zero, and also the distribution does not improve by taking log. So we will choose 5 year for treasury. 
 
JP.intinc_model2 <- tslm(log_interest.income ~ 
                           log_5treasury.yield+
                           log_bbb+
                           log_mortgage.rate,
                         data = jpmorgan_ts)
summary(JP.intinc_model2)
## 
## Call:
## tslm(formula = log_interest.income ~ log_5treasury.yield + log_bbb + 
##     log_mortgage.rate, data = jpmorgan_ts)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.96672 -0.28720 -0.01295  0.23602  1.37780 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          23.0149     0.8414  27.353  < 2e-16 ***
## log_5treasury.yield   1.5375     0.3192   4.816 5.15e-06 ***
## log_bbb               2.1322     0.5292   4.029 0.000109 ***
## log_mortgage.rate    -7.2282     0.9841  -7.345 5.42e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.46 on 101 degrees of freedom
## Multiple R-squared:  0.6844, Adjusted R-squared:  0.675 
## F-statistic:    73 on 3 and 101 DF,  p-value: < 2.2e-16
checkresiduals(JP.intinc_model2)

## 
##  Breusch-Godfrey test for serial correlation of order up to 8
## 
## data:  Residuals from Linear regression model
## LM test = 70.533, df = 8, p-value = 3.849e-12
ST.intinc_model2 <- tslm(log_interest.income ~ 
                            log_5treasury.yield+
                            log_bbb+
                            log_mortgage.rate,
                          data = suntrust_ts)
summary(ST.intinc_model2)
## 
## Call:
## tslm(formula = log_interest.income ~ log_5treasury.yield + log_bbb + 
##     log_mortgage.rate, data = suntrust_ts)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.64196 -0.23264 -0.05643  0.19219  0.88352 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          17.6056     0.6347  27.738  < 2e-16 ***
## log_5treasury.yield   0.9649     0.2400   4.020 0.000112 ***
## log_bbb               1.1105     0.3995   2.780 0.006492 ** 
## log_mortgage.rate    -3.7706     0.7415  -5.085  1.7e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.347 on 101 degrees of freedom
## Multiple R-squared:  0.3744, Adjusted R-squared:  0.3558 
## F-statistic: 20.15 on 3 and 101 DF,  p-value: 2.597e-10
checkresiduals(ST.intinc_model2)

## 
##  Breusch-Godfrey test for serial correlation of order up to 8
## 
## data:  Residuals from Linear regression model
## LM test = 84.618, df = 8, p-value = 5.724e-15
X5 Treasury works better for both model. but suffer from autocorrelation. 

hope to get the correlation data from Ivan. Try with eliminating morgate. but failed it performs bad on both dataset.

JP.intinc_model3 <- tslm(log_interest.income ~ 
                           log_5treasury.yield+
                           log_bbb,
                         data = jpmorgan_ts)
summary(JP.intinc_model3)
## 
## Call:
## tslm(formula = log_interest.income ~ log_5treasury.yield + log_bbb, 
##     data = jpmorgan_ts)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.97870 -0.48701 -0.01862  0.36057  1.45933 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          18.1002     0.6287  28.788  < 2e-16 ***
## log_5treasury.yield  -0.6028     0.1606  -3.753  0.00029 ***
## log_bbb              -0.8382     0.4206  -1.993  0.04896 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5669 on 102 degrees of freedom
## Multiple R-squared:  0.5158, Adjusted R-squared:  0.5063 
## F-statistic: 54.33 on 2 and 102 DF,  p-value: < 2.2e-16
checkresiduals(JP.intinc_model3)

## 
##  Breusch-Godfrey test for serial correlation of order up to 8
## 
## data:  Residuals from Linear regression model
## LM test = 82.613, df = 8, p-value = 1.454e-14
ST.intinc_model3 <- tslm(log_interest.income ~ 
                           log_5treasury.yield+
                           log_bbb,
                         data = suntrust_ts)
summary(ST.intinc_model3)
## 
## Call:
## tslm(formula = log_interest.income ~ log_5treasury.yield + log_bbb, 
##     data = suntrust_ts)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.6521 -0.2706 -0.1552  0.2899  0.8471 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          15.0413     0.4299  34.989   <2e-16 ***
## log_5treasury.yield  -0.1488     0.1095  -1.359    0.177    
## log_bbb              -0.4410     0.2877  -1.533    0.128    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.387 on 102 degrees of freedom
## Multiple R-squared:  0.2142, Adjusted R-squared:  0.1988 
## F-statistic:  13.9 on 2 and 102 DF,  p-value: 4.581e-06
checkresiduals(ST.intinc_model3)

## 
##  Breusch-Godfrey test for serial correlation of order up to 8
## 
## data:  Residuals from Linear regression model
## LM test = 94.27, df = 8, p-value < 2.2e-16

try to eliminate autocorrelation by subset the recent years, after 2009 because of the big economic recession

JP.ts <- window(jpmorgan_ts, start  = c(2009))
ST.ts <- window(suntrust_ts, start = c(2009))

JP.intinc_model2s <- tslm(log_interest.income ~ 
                           log_5treasury.yield+
                           log_bbb+
                           log_mortgage.rate,
                         data = JP.ts)
summary(JP.intinc_model2s)
## 
## Call:
## tslm(formula = log_interest.income ~ log_5treasury.yield + log_bbb + 
##     log_mortgage.rate, data = JP.ts)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.32161 -0.22171 -0.00379  0.19837  0.44204 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          19.8465     0.7042  28.182  < 2e-16 ***
## log_5treasury.yield   0.4599     0.2371   1.939 0.063822 .  
## log_bbb               1.7422     0.3964   4.395 0.000179 ***
## log_mortgage.rate    -4.4120     0.6926  -6.370 1.14e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2616 on 25 degrees of freedom
## Multiple R-squared:  0.8135, Adjusted R-squared:  0.7911 
## F-statistic: 36.34 on 3 and 25 DF,  p-value: 2.866e-09
checkresiduals(JP.intinc_model2s)

## 
##  Breusch-Godfrey test for serial correlation of order up to 7
## 
## data:  Residuals from Linear regression model
## LM test = 23.083, df = 7, p-value = 0.001648
ST.intinc_model2s <- tslm(log_interest.income ~ 
                           log_5treasury.yield+
                           log_bbb+
                           log_mortgage.rate,
                         data = ST.ts)
summary(ST.intinc_model2s)
## 
## Call:
## tslm(formula = log_interest.income ~ log_5treasury.yield + log_bbb + 
##     log_mortgage.rate, data = ST.ts)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.140635 -0.107533 -0.005049  0.084299  0.194416 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          14.9629     0.3123  47.908  < 2e-16 ***
## log_5treasury.yield   0.1039     0.1039   1.001 0.326587    
## log_bbb               1.0826     0.2366   4.577 0.000112 ***
## log_mortgage.rate    -1.7629     0.3346  -5.269 1.86e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1147 on 25 degrees of freedom
## Multiple R-squared:  0.7198, Adjusted R-squared:  0.6861 
## F-statistic:  21.4 on 3 and 25 DF,  p-value: 4.39e-07
checkresiduals(ST.intinc_model2s)

## 
##  Breusch-Godfrey test for serial correlation of order up to 7
## 
## data:  Residuals from Linear regression model
## LM test = 22.313, df = 7, p-value = 0.002244

Forecasting. Need to ensure scenario settings.

same procedures for interest expense. Results similar to interest income. Just pose model2 and model 2s

JP.intex_model2s <- tslm(log_interest.expense ~ 
                            log_5treasury.yield+
                            log_bbb+
                            log_mortgage.rate,
                          data = JP.ts)
summary(JP.intex_model2s)
## 
## Call:
## tslm(formula = log_interest.expense ~ log_5treasury.yield + log_bbb + 
##     log_mortgage.rate, data = JP.ts)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.30951 -0.15464 -0.07842  0.19076  0.50645 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          14.4244     0.6512  22.150  < 2e-16 ***
## log_5treasury.yield  -0.2189     0.2193  -0.998   0.3277    
## log_bbb               1.7460     0.3665   4.764 6.88e-05 ***
## log_mortgage.rate    -1.6360     0.6404  -2.554   0.0171 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2419 on 25 degrees of freedom
## Multiple R-squared:  0.5617, Adjusted R-squared:  0.5091 
## F-statistic: 10.68 on 3 and 25 DF,  p-value: 0.0001054
checkresiduals(JP.intex_model2s)

## 
##  Breusch-Godfrey test for serial correlation of order up to 7
## 
## data:  Residuals from Linear regression model
## LM test = 23.905, df = 7, p-value = 0.001184
ST.intex_model2s <- tslm(log_interest.expense ~ 
                            log_5treasury.yield+
                            log_bbb+
                            log_mortgage.rate,
                          data = ST.ts)
summary(ST.intex_model2s)
## 
## Call:
## tslm(formula = log_interest.expense ~ log_5treasury.yield + log_bbb + 
##     log_mortgage.rate, data = ST.ts)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.50096 -0.19129 -0.01956  0.21106  0.48053 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           9.2732     0.8065  11.498 1.78e-11 ***
## log_5treasury.yield  -0.1192     0.2682  -0.445   0.6605    
## log_bbb               3.3724     0.6108   5.521 9.74e-06 ***
## log_mortgage.rate    -1.6085     0.8639  -1.862   0.0744 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2962 on 25 degrees of freedom
## Multiple R-squared:  0.7158, Adjusted R-squared:  0.6817 
## F-statistic: 20.99 on 3 and 25 DF,  p-value: 5.211e-07
checkresiduals(ST.intex_model2s)

## 
##  Breusch-Godfrey test for serial correlation of order up to 7
## 
## data:  Residuals from Linear regression model
## LM test = 21.909, df = 7, p-value = 0.002634

models for noninterest income and noninterest expense. candidate variables are: GDP, market volatiliry, stock returns, home price growth. Still working on how to calculate market return on r. models for noninterest income

JP.noninc_model1 <- tslm(log_noninterest.income ~  
                           real.gdp.growth +
                           log_house.price.index..level. +
                           market.volatility.index..level. ,data = JP.ts)
summary(JP.noninc_model1)
## 
## Call:
## tslm(formula = log_noninterest.income ~ real.gdp.growth + log_house.price.index..level. + 
##     market.volatility.index..level., data = JP.ts)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.7795 -0.3522  0.1286  0.2639  0.6806 
## 
## Coefficients:
##                                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                     -3.482188   2.030911  -1.715   0.0988 .  
## real.gdp.growth                 -0.030932   0.039759  -0.778   0.4439    
## log_house.price.index..level.    3.892148   0.394269   9.872 4.16e-10 ***
## market.volatility.index..level.  0.008170   0.008383   0.975   0.3391    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4255 on 25 degrees of freedom
## Multiple R-squared:  0.8013, Adjusted R-squared:  0.7775 
## F-statistic: 33.61 on 3 and 25 DF,  p-value: 6.252e-09
checkresiduals(JP.noninc_model1)

## 
##  Breusch-Godfrey test for serial correlation of order up to 7
## 
## data:  Residuals from Linear regression model
## LM test = 22.999, df = 7, p-value = 0.001706
ST.noninc_model1 <- tslm(log_noninterest.income ~  
                           log_house.price.index..level. +
                        real.gdp.growth +
                        market.volatility.index..level. ,data = ST.ts)
summary(ST.noninc_model1)
## 
## Call:
## tslm(formula = log_noninterest.income ~ log_house.price.index..level. + 
##     real.gdp.growth + market.volatility.index..level., data = ST.ts)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.44041 -0.16026 -0.04025  0.17164  0.36869 
## 
## Coefficients:
##                                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                      2.990538   1.130927   2.644   0.0139 *  
## log_house.price.index..level.    2.073219   0.219152   9.460 9.71e-10 ***
## real.gdp.growth                 -0.031455   0.026751  -1.176   0.2507    
## market.volatility.index..level.  0.009279   0.004997   1.857   0.0751 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2371 on 25 degrees of freedom
## Multiple R-squared:  0.7891, Adjusted R-squared:  0.7638 
## F-statistic: 31.18 on 3 and 25 DF,  p-value: 1.311e-08
checkresiduals(ST.noninc_model1)

## 
##  Breusch-Godfrey test for serial correlation of order up to 7
## 
## data:  Residuals from Linear regression model
## LM test = 16.395, df = 7, p-value = 0.02174

models for noninterest expense

JP.nonex_model1 <- tslm(log_noninterest.expense ~  
                           real.gdp.growth +
                           log_house.price.index..level. +
                           market.volatility.index..level. ,data = JP.ts)
summary(JP.nonex_model1)
## 
## Call:
## tslm(formula = log_noninterest.expense ~ real.gdp.growth + log_house.price.index..level. + 
##     market.volatility.index..level., data = JP.ts)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.65460 -0.30195  0.05034  0.25766  0.65361 
## 
## Coefficients:
##                                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                     -1.401843   1.874158  -0.748    0.461    
## real.gdp.growth                 -0.014878   0.036690  -0.406    0.689    
## log_house.price.index..level.    3.500214   0.363838   9.620 6.96e-10 ***
## market.volatility.index..level.  0.010484   0.007736   1.355    0.187    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3926 on 25 degrees of freedom
## Multiple R-squared:  0.7912, Adjusted R-squared:  0.7662 
## F-statistic: 31.58 on 3 and 25 DF,  p-value: 1.156e-08
checkresiduals(JP.nonex_model1)

## 
##  Breusch-Godfrey test for serial correlation of order up to 7
## 
## data:  Residuals from Linear regression model
## LM test = 26.229, df = 7, p-value = 0.0004583
ST.nonex_model1 <- tslm(log_noninterest.expense ~  
                           log_house.price.index..level. +
                        real.gdp.growth +
                        market.volatility.index..level. ,data = ST.ts)
summary(ST.nonex_model1)
## 
## Call:
## tslm(formula = log_noninterest.expense ~ log_house.price.index..level. + 
##     real.gdp.growth + market.volatility.index..level., data = ST.ts)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.4931 -0.1875  0.0390  0.1567  0.3211 
## 
## Coefficients:
##                                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                      5.106628   1.125745   4.536 0.000124 ***
## log_house.price.index..level.    1.761887   0.218147   8.077 1.97e-08 ***
## real.gdp.growth                 -0.017865   0.026628  -0.671 0.508427    
## market.volatility.index..level.  0.008572   0.004974   1.723 0.097150 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.236 on 25 degrees of freedom
## Multiple R-squared:  0.7291, Adjusted R-squared:  0.6965 
## F-statistic: 22.42 on 3 and 25 DF,  p-value: 2.896e-07
checkresiduals(ST.nonex_model1)

## 
##  Breusch-Godfrey test for serial correlation of order up to 7
## 
## data:  Residuals from Linear regression model
## LM test = 23.38, df = 7, p-value = 0.001463
Since using recent data can help reduce autocorrelatioins. I directly use those data to fit models.(I actually run the regression of the whole time, ST.ts and JP.ts still win. So I didn't pose them.)  gdp performs bad on this model. Mayve need stock returns.

models for Provisions for loan & lease Loss. Candidates: real.gdp, 5 treasury, mortgage, bbb

JP.alll_model1 <- tslm(log_alll ~ real.gdp.growth +
                         log_10treasury.yield +
                         log_mortgage.rate +
                         log_bbb, data = JP.ts)
summary(JP.alll_model1)
## 
## Call:
## tslm(formula = log_alll ~ real.gdp.growth + log_10treasury.yield + 
##     log_mortgage.rate + log_bbb, data = JP.ts)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.9858 -0.2320  0.1107  0.5317  1.6651 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           22.4922     3.3747   6.665  6.8e-07 ***
## real.gdp.growth        0.0285     0.1272   0.224  0.82455    
## log_10treasury.yield   7.3087     2.3601   3.097  0.00493 ** 
## log_mortgage.rate    -18.4352     3.9035  -4.723  8.4e-05 ***
## log_bbb                6.8930     2.2046   3.127  0.00458 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.188 on 24 degrees of freedom
## Multiple R-squared:  0.5314, Adjusted R-squared:  0.4533 
## F-statistic: 6.804 on 4 and 24 DF,  p-value: 0.0008272
checkresiduals(JP.alll_model1)

## 
##  Breusch-Godfrey test for serial correlation of order up to 8
## 
## data:  Residuals from Linear regression model
## LM test = 11.043, df = 8, p-value = 0.1993
ST.alll_model1 <- tslm(log_alll ~ real.gdp.growth +
                         log_10treasury.yield +
                         log_mortgage.rate+
                         log_bbb, data = ST.ts)
summary(ST.alll_model1)
## 
## Call:
## tslm(formula = log_alll ~ real.gdp.growth + log_10treasury.yield + 
##     log_mortgage.rate + log_bbb, data = ST.ts)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1976 -0.4692  0.1647  0.6139  1.0702 
## 
## Coefficients:
##                       Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           14.90894    2.64370   5.639 8.32e-06 ***
## real.gdp.growth       -0.07702    0.10651  -0.723  0.47662    
## log_10treasury.yield   3.22592    1.82259   1.770  0.08944 .  
## log_mortgage.rate    -11.31674    3.03202  -3.732  0.00103 ** 
## log_bbb                6.78554    1.96900   3.446  0.00210 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9102 on 24 degrees of freedom
## Multiple R-squared:  0.4656, Adjusted R-squared:  0.3766 
## F-statistic: 5.228 on 4 and 24 DF,  p-value: 0.003571
checkresiduals(ST.alll_model1)

## 
##  Breusch-Godfrey test for serial correlation of order up to 8
## 
## data:  Residuals from Linear regression model
## LM test = 20.323, df = 8, p-value = 0.00918