Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.
library(tseries)
library(quantmod)
library(dplyr)
library(tree)
library(caret)
library(e1071)
library(dynlm)
#Dataset https://archive.ics.uci.edu/ml/datasets/Dow+Jones+Index
setwd("~/DA 6813 - DATA ANALYTICS APPS/03 Dow Jones Case Study")
dow_jones <- read.csv("dow_jones_index.data", header = TRUE)
head(dow_jones)
dow_jones<-na.omit(dow_jones)
anyNA(dow_jones)
## [1] FALSE
str(dow_jones)
## 'data.frame': 720 obs. of 16 variables:
## $ quarter : int 1 1 1 1 1 1 1 1 1 1 ...
## $ stock : chr "AA" "AA" "AA" "AA" ...
## $ date : chr "1/14/2011" "1/21/2011" "1/28/2011" "2/4/2011" ...
## $ open : chr "$16.71" "$16.19" "$15.87" "$16.18" ...
## $ high : chr "$16.71" "$16.38" "$16.63" "$17.39" ...
## $ low : chr "$15.64" "$15.60" "$15.82" "$16.18" ...
## $ close : chr "$15.97" "$15.79" "$16.13" "$17.14" ...
## $ volume : int 242963398 138428495 151379173 154387761 114691279 80023895 132981863 109493077 114332562 130374108 ...
## $ percent_change_price : num -4.428 -2.471 1.638 5.933 0.231 ...
## $ percent_change_volume_over_last_wk: num 1.38 -43.02 9.36 1.99 -25.71 ...
## $ previous_weeks_volume : int 239655616 242963398 138428495 151379173 154387761 114691279 80023895 132981863 109493077 114332562 ...
## $ next_weeks_open : chr "$16.19" "$15.87" "$16.18" "$17.33" ...
## $ next_weeks_close : chr "$15.79" "$16.13" "$17.14" "$17.37" ...
## $ percent_change_next_weeks_price : num -2.471 1.638 5.933 0.231 -0.633 ...
## $ days_to_next_dividend : int 19 12 5 97 90 83 76 69 62 55 ...
## $ percent_return_next_dividend : num 0.188 0.19 0.186 0.175 0.173 ...
## - attr(*, "na.action")= 'omit' Named int [1:30] 1 13 25 37 49 61 73 85 97 109 ...
## ..- attr(*, "names")= chr [1:30] "1" "13" "25" "37" ...
dow_jones$open=as.numeric(gsub("\\$","",dow_jones$open))
dow_jones$high=as.numeric(gsub("\\$","",dow_jones$high))
dow_jones$low=as.numeric(gsub("\\$","",dow_jones$low))
dow_jones$close=as.numeric(gsub("\\$","",dow_jones$close))
dow_jones$next_weeks_open=as.numeric(gsub("\\$","",dow_jones$next_weeks_open))
dow_jones$next_weeks_close=as.numeric(gsub("\\$","",dow_jones$next_weeks_close))
str(dow_jones)
## 'data.frame': 720 obs. of 16 variables:
## $ quarter : int 1 1 1 1 1 1 1 1 1 1 ...
## $ stock : chr "AA" "AA" "AA" "AA" ...
## $ date : chr "1/14/2011" "1/21/2011" "1/28/2011" "2/4/2011" ...
## $ open : num 16.7 16.2 15.9 16.2 17.3 ...
## $ high : num 16.7 16.4 16.6 17.4 17.5 ...
## $ low : num 15.6 15.6 15.8 16.2 17 ...
## $ close : num 16 15.8 16.1 17.1 17.4 ...
## $ volume : int 242963398 138428495 151379173 154387761 114691279 80023895 132981863 109493077 114332562 130374108 ...
## $ percent_change_price : num -4.428 -2.471 1.638 5.933 0.231 ...
## $ percent_change_volume_over_last_wk: num 1.38 -43.02 9.36 1.99 -25.71 ...
## $ previous_weeks_volume : int 239655616 242963398 138428495 151379173 154387761 114691279 80023895 132981863 109493077 114332562 ...
## $ next_weeks_open : num 16.2 15.9 16.2 17.3 17.4 ...
## $ next_weeks_close : num 15.8 16.1 17.1 17.4 17.3 ...
## $ percent_change_next_weeks_price : num -2.471 1.638 5.933 0.231 -0.633 ...
## $ days_to_next_dividend : int 19 12 5 97 90 83 76 69 62 55 ...
## $ percent_return_next_dividend : num 0.188 0.19 0.186 0.175 0.173 ...
## - attr(*, "na.action")= 'omit' Named int [1:30] 1 13 25 37 49 61 73 85 97 109 ...
## ..- attr(*, "names")= chr [1:30] "1" "13" "25" "37" ...
lag.plot(dow_jones$open,set.lag=1:4)
lag.plot(dow_jones$high, set.lag=1:4)
lag.plot(dow_jones$low, set.lag=1:4)
lag.plot(dow_jones$close, set.lag=1:4)
lag.plot(dow_jones$percent_change_volume_over_last_wk, set.lag=1:4)
lag.plot(dow_jones$percent_change_next_weeks_price, set.lag=1:4)
lag.plot(dow_jones$percent_return_next_dividend, set.lag=1:4)
### Group and mutate all predictor variables into lag versions
# Open Lag
dow_jones=dow_jones %>%
group_by(stock)%>%
mutate(open.lag=dplyr::lag(open,n=1))
# High Lag
dow_jones=dow_jones %>%
group_by(stock)%>%
mutate(high.lag=dplyr::lag(high,n=1))
# Low Lag
dow_jones=dow_jones %>%
group_by(stock)%>%
mutate(low.lag=dplyr::lag(low,n=1))
# Close Lag
dow_jones=dow_jones %>%
group_by(stock)%>%
mutate(close.lag=dplyr::lag(close,n=1))
# Percent Change Volume Over Last Week Lag
dow_jones=dow_jones %>%
group_by(stock)%>%
mutate(percent_change_volume_over_last_wk.lag=dplyr::lag(percent_change_volume_over_last_wk,n=1))
# Percent Change Next Weeks Price Lag
dow_jones=dow_jones %>%
group_by(stock)%>%
mutate(percent_change_next_weeks_price.lag=dplyr::lag(percent_change_next_weeks_price,n=1))
# Percent Return Next Dividend Lag
dow_jones=dow_jones %>%
group_by(stock)%>%
mutate(percent_return_next_dividend.lag=dplyr::lag(percent_return_next_dividend,n=1))
# Next Weeks Close Lag
dow_jones=dow_jones %>%
group_by(stock)%>%
mutate(next_weeks_close.lag=dplyr::lag(next_weeks_close,n=1))
# Next Weeks Open Lag
dow_jones= dow_jones %>%
group_by(stock) %>%
mutate(next_weeks_open.lag = dplyr::lag(next_weeks_open, n =1))
str(dow_jones)
## tibble [720 x 25] (S3: grouped_df/tbl_df/tbl/data.frame)
## $ quarter : int [1:720] 1 1 1 1 1 1 1 1 1 1 ...
## $ stock : chr [1:720] "AA" "AA" "AA" "AA" ...
## $ date : chr [1:720] "1/14/2011" "1/21/2011" "1/28/2011" "2/4/2011" ...
## $ open : num [1:720] 16.7 16.2 15.9 16.2 17.3 ...
## $ high : num [1:720] 16.7 16.4 16.6 17.4 17.5 ...
## $ low : num [1:720] 15.6 15.6 15.8 16.2 17 ...
## $ close : num [1:720] 16 15.8 16.1 17.1 17.4 ...
## $ volume : int [1:720] 242963398 138428495 151379173 154387761 114691279 80023895 132981863 109493077 114332562 130374108 ...
## $ percent_change_price : num [1:720] -4.428 -2.471 1.638 5.933 0.231 ...
## $ percent_change_volume_over_last_wk : num [1:720] 1.38 -43.02 9.36 1.99 -25.71 ...
## $ previous_weeks_volume : int [1:720] 239655616 242963398 138428495 151379173 154387761 114691279 80023895 132981863 109493077 114332562 ...
## $ next_weeks_open : num [1:720] 16.2 15.9 16.2 17.3 17.4 ...
## $ next_weeks_close : num [1:720] 15.8 16.1 17.1 17.4 17.3 ...
## $ percent_change_next_weeks_price : num [1:720] -2.471 1.638 5.933 0.231 -0.633 ...
## $ days_to_next_dividend : int [1:720] 19 12 5 97 90 83 76 69 62 55 ...
## $ percent_return_next_dividend : num [1:720] 0.188 0.19 0.186 0.175 0.173 ...
## $ open.lag : num [1:720] NA 16.7 16.2 15.9 16.2 ...
## $ high.lag : num [1:720] NA 16.7 16.4 16.6 17.4 ...
## $ low.lag : num [1:720] NA 15.6 15.6 15.8 16.2 ...
## $ close.lag : num [1:720] NA 16 15.8 16.1 17.1 ...
## $ percent_change_volume_over_last_wk.lag: num [1:720] NA 1.38 -43.02 9.36 1.99 ...
## $ percent_change_next_weeks_price.lag : num [1:720] NA -2.471 1.638 5.933 0.231 ...
## $ percent_return_next_dividend.lag : num [1:720] NA 0.188 0.19 0.186 0.175 ...
## $ next_weeks_close.lag : num [1:720] NA 15.8 16.1 17.1 17.4 ...
## $ next_weeks_open.lag : num [1:720] NA 16.2 15.9 16.2 17.3 ...
## - attr(*, "groups")= tibble [30 x 2] (S3: tbl_df/tbl/data.frame)
## ..$ stock: chr [1:30] "AA" "AXP" "BA" "BAC" ...
## ..$ .rows: list<int> [1:30]
## .. ..$ : int [1:24] 1 2 3 4 5 6 7 8 9 10 ...
## .. ..$ : int [1:24] 12 13 14 15 16 17 18 19 20 21 ...
## .. ..$ : int [1:24] 23 24 25 26 27 28 29 30 31 32 ...
## .. ..$ : int [1:24] 34 35 36 37 38 39 40 41 42 43 ...
## .. ..$ : int [1:24] 45 46 47 48 49 50 51 52 53 54 ...
## .. ..$ : int [1:24] 56 57 58 59 60 61 62 63 64 65 ...
## .. ..$ : int [1:24] 67 68 69 70 71 72 73 74 75 76 ...
## .. ..$ : int [1:24] 78 79 80 81 82 83 84 85 86 87 ...
## .. ..$ : int [1:24] 89 90 91 92 93 94 95 96 97 98 ...
## .. ..$ : int [1:24] 100 101 102 103 104 105 106 107 108 109 ...
## .. ..$ : int [1:24] 111 112 113 114 115 116 117 118 119 120 ...
## .. ..$ : int [1:24] 122 123 124 125 126 127 128 129 130 131 ...
## .. ..$ : int [1:24] 133 134 135 136 137 138 139 140 141 142 ...
## .. ..$ : int [1:24] 144 145 146 147 148 149 150 151 152 153 ...
## .. ..$ : int [1:24] 155 156 157 158 159 160 161 162 163 164 ...
## .. ..$ : int [1:24] 166 167 168 169 170 171 172 173 174 175 ...
## .. ..$ : int [1:24] 188 189 190 191 192 193 194 195 196 197 ...
## .. ..$ : int [1:24] 177 178 179 180 181 182 183 184 185 186 ...
## .. ..$ : int [1:24] 199 200 201 202 203 204 205 206 207 208 ...
## .. ..$ : int [1:24] 210 211 212 213 214 215 216 217 218 219 ...
## .. ..$ : int [1:24] 221 222 223 224 225 226 227 228 229 230 ...
## .. ..$ : int [1:24] 232 233 234 235 236 237 238 239 240 241 ...
## .. ..$ : int [1:24] 243 244 245 246 247 248 249 250 251 252 ...
## .. ..$ : int [1:24] 254 255 256 257 258 259 260 261 262 263 ...
## .. ..$ : int [1:24] 265 266 267 268 269 270 271 272 273 274 ...
## .. ..$ : int [1:24] 276 277 278 279 280 281 282 283 284 285 ...
## .. ..$ : int [1:24] 287 288 289 290 291 292 293 294 295 296 ...
## .. ..$ : int [1:24] 298 299 300 301 302 303 304 305 306 307 ...
## .. ..$ : int [1:24] 309 310 311 312 313 314 315 316 317 318 ...
## .. ..$ : int [1:24] 320 321 322 323 324 325 326 327 328 329 ...
## .. ..@ ptype: int(0)
## ..- attr(*, ".drop")= logi TRUE
newdata<-split(dow_jones,dow_jones$quarter)
train<-newdata[[1]]
test<-newdata[[2]]
train1<-split(train,train$stock)
test1<-split(test,test$stock)
#Linear Regression model linear model
glmfxn <- function (trainstock, teststock,formula) {
set.seed(123)
glmfit <- glm(formula,data = trainstock)
linear.predict <- predict.glm(glmfit, newdata = teststock)
linear.predict <- ifelse(linear.predict >= mean(linear.predict), "1", "0")
linear.actual <- ifelse(teststock$percent_change_next_weeks_price >= mean(teststock$percent_change_next_weeks_price), "1", "0")
confusion=caret::confusionMatrix(as.factor(linear.actual), as.factor(linear.predict))
print(confusion$overall)
print(summary(glmfit))
}
formula = percent_change_next_weeks_price ~ open.lag + high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag + percent_return_next_dividend.lag + volume
for (l in names(train1))
{
x=train1[[l]]
y=test1[[l]]
glmfxn(x,y,formula)
namefilmodel = paste0("Linear_Accuracy", l, ".txt")
sink(namefilmodel)
print(glmfxn(x,y, formula))
sink()
}
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.46153846 -0.04597701 0.19223244 0.74865452 0.69230769
## AccuracyPValue McnemarPValue
## 0.97867974 0.44969180
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8
## -0.000524 -0.014270 0.102605 -0.009935 0.125832 -0.137112 -0.056192
## 9 10 11
## 0.085689 0.035388 -0.131482
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.890e+03 3.140e+02 -12.388 0.0513 .
## open.lag -5.608e+00 1.438e+00 -3.900 0.1598
## high.lag -1.711e+00 3.346e+00 -0.511 0.6991
## low.lag -1.724e+00 1.599e+00 -1.078 0.4761
## close.lag 1.355e+02 1.193e+01 11.353 0.0559 .
## next_weeks_open.lag -1.001e+01 9.420e-01 -10.623 0.0598 .
## next_weeks_close.lag -4.428e+00 4.362e-01 -10.153 0.0625 .
## percent_return_next_dividend.lag 1.127e+04 8.586e+02 13.123 0.0484 *
## volume -5.333e-08 2.845e-08 -1.875 0.3120
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for gaussian family taken to be 0.07450371)
##
## Null deviance: 71.608455 on 9 degrees of freedom
## Residual deviance: 0.074504 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: -0.61614
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.6153846 0.2352941 0.3157776 0.8614207 0.5384615
## AccuracyPValue McnemarPValue
## 0.3937754 1.0000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -1.40020 0.42585 0.06117 0.47213 0.75478 -0.07361 -0.57018 -0.14837
## 10 11
## 0.34897 0.12945
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.015e+03 3.884e+03 0.776 0.580
## open.lag -3.583e+00 8.135e+00 -0.440 0.736
## high.lag 6.974e+00 5.774e+00 1.208 0.440
## low.lag 3.430e+00 1.232e+01 0.278 0.827
## close.lag -4.869e+01 4.649e+01 -1.047 0.485
## next_weeks_open.lag 8.653e+00 1.937e+01 0.447 0.733
## next_weeks_close.lag 2.512e-01 1.076e+00 0.234 0.854
## percent_return_next_dividend.lag -3.828e+03 4.822e+03 -0.794 0.573
## volume -4.255e-08 2.101e-07 -0.203 0.873
##
## (Dispersion parameter for gaussian family taken to be 3.429323)
##
## Null deviance: 81.8985 on 9 degrees of freedom
## Residual deviance: 3.4293 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 37.677
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.30769231 -0.40963855 0.09092039 0.61426166 0.61538462
## AccuracyPValue McnemarPValue
## 0.99438593 1.00000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -0.47566 0.68489 -0.11085 0.08669 0.15775 -0.00266 -0.54181 0.26649
## 10 11
## -0.37152 0.30669
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -4.872e+04 1.233e+04 -3.951 0.158
## open.lag -3.393e+00 1.056e+00 -3.212 0.192
## high.lag 1.635e+00 8.010e-01 2.041 0.290
## low.lag -4.708e+00 1.528e+00 -3.082 0.200
## close.lag 3.457e+02 8.776e+01 3.939 0.158
## next_weeks_open.lag 8.157e+00 2.244e+00 3.635 0.171
## next_weeks_close.lag -8.283e+00 1.831e+00 -4.525 0.138
## percent_return_next_dividend.lag 4.169e+04 1.053e+04 3.957 0.158
## volume -1.180e-06 2.983e-07 -3.955 0.158
##
## (Dispersion parameter for gaussian family taken to be 1.336687)
##
## Null deviance: 48.8315 on 9 degrees of freedom
## Residual deviance: 1.3367 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 28.255
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.53846154 0.04878049 0.25134548 0.80776756 0.69230769
## AccuracyPValue McnemarPValue
## 0.92934774 0.68309140
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -0.06952 0.14442 0.25608 1.29496 -0.92745 1.06025 1.86077 -2.32173
## 10 11
## -1.01466 -0.28311
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.439e+03 3.195e+03 -0.450 0.731
## open.lag 6.343e+00 1.627e+01 0.390 0.763
## high.lag -3.805e+00 2.420e+01 -0.157 0.901
## low.lag 8.521e+00 2.276e+01 0.374 0.772
## close.lag 2.112e+01 8.645e+01 0.244 0.847
## next_weeks_open.lag 2.122e+01 2.327e+01 0.912 0.529
## next_weeks_close.lag 1.526e+00 5.223e+00 0.292 0.819
## percent_return_next_dividend.lag 9.282e+03 2.264e+04 0.410 0.752
## volume 1.045e-08 2.016e-08 0.519 0.695
##
## (Dispersion parameter for gaussian family taken to be 13.71508)
##
## Null deviance: 80.109 on 9 degrees of freedom
## Residual deviance: 13.715 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 51.538
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.46153846 -0.02247191 0.19223244 0.74865452 0.61538462
## AccuracyPValue McnemarPValue
## 0.92110952 0.44969180
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -0.13350 0.24664 -0.24909 0.11162 0.10957 -0.33192 -0.07756 0.41762
## 10 11
## -0.17330 0.07992
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.821e+02 3.335e+02 -1.745 0.331
## open.lag -3.720e-01 3.554e-01 -1.047 0.485
## high.lag -5.032e-01 5.053e-01 -0.996 0.501
## low.lag -1.305e+00 6.829e-01 -1.911 0.307
## close.lag 6.257e+00 2.020e+00 3.097 0.199
## next_weeks_open.lag -1.550e+00 9.525e-01 -1.627 0.351
## next_weeks_close.lag -3.286e-02 1.803e-01 -0.182 0.885
## percent_return_next_dividend.lag 7.232e+02 3.747e+02 1.930 0.304
## volume 3.785e-07 6.306e-08 6.003 0.105
##
## (Dispersion parameter for gaussian family taken to be 0.4921773)
##
## Null deviance: 60.21376 on 9 degrees of freedom
## Residual deviance: 0.49218 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 18.264
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.4615385 -0.1234568 0.1922324 0.7486545 0.7692308
## AccuracyPValue McnemarPValue
## 0.9966868 0.4496918
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -0.36109 0.46907 -0.45081 0.15219 0.02019 2.61889 -1.68494 -0.51216
## 10 11
## -0.72268 0.47135
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.262e+02 9.500e+02 -0.238 0.851
## open.lag 2.351e+01 9.454e+00 2.486 0.243
## high.lag -2.307e+01 9.146e+00 -2.522 0.240
## low.lag 3.411e+00 1.197e+01 0.285 0.823
## close.lag -9.067e+00 4.405e+01 -0.206 0.871
## next_weeks_open.lag 1.578e+01 2.121e+01 0.744 0.593
## next_weeks_close.lag -3.219e+00 4.294e+00 -0.750 0.590
## percent_return_next_dividend.lag 2.674e+02 1.505e+03 0.178 0.888
## volume 1.300e-08 2.089e-08 0.622 0.646
##
## (Dispersion parameter for gaussian family taken to be 11.28155)
##
## Null deviance: 253.209 on 9 degrees of freedom
## Residual deviance: 11.282 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 49.585
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.53846154 0.07142857 0.25134548 0.80776756 0.53846154
## AccuracyPValue McnemarPValue
## 0.61146992 1.00000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## 0.23662 -0.59649 0.10088 0.26180 -0.02956 0.21745 -0.31366 0.15608
## 10 11
## 0.08661 -0.11974
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.924e+02 2.016e+02 4.425 0.1415
## open.lag 3.685e+00 4.848e-01 7.602 0.0833 .
## high.lag -5.052e+00 7.646e-01 -6.608 0.0956 .
## low.lag -1.759e+00 3.253e-01 -5.406 0.1164
## close.lag -1.843e+00 1.612e+00 -1.143 0.4575
## next_weeks_open.lag 1.153e+00 8.397e-01 1.373 0.4007
## next_weeks_close.lag 1.051e-01 1.571e-01 0.669 0.6245
## percent_return_next_dividend.lag -7.066e+02 1.491e+02 -4.738 0.1324
## volume 5.151e-08 3.814e-08 1.351 0.4057
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for gaussian family taken to be 0.6832389)
##
## Null deviance: 56.04482 on 9 degrees of freedom
## Residual deviance: 0.68324 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 21.544
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.6153846 0.2168675 0.3157776 0.8614207 0.5384615
## AccuracyPValue McnemarPValue
## 0.3937754 1.0000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -0.16880 0.00781 0.18622 0.18185 -0.41128 0.09074 0.19995 0.24957
## 10 11
## -0.34744 0.01136
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.086e+03 7.087e+02 1.532 0.368
## open.lag 2.046e+00 1.206e+00 1.696 0.339
## high.lag -9.870e+00 2.974e+00 -3.319 0.186
## low.lag 4.315e+00 1.536e+00 2.809 0.218
## close.lag -6.836e+00 5.032e+00 -1.358 0.404
## next_weeks_open.lag -6.571e-01 2.244e+00 -0.293 0.819
## next_weeks_close.lag 1.105e-01 4.416e-01 0.250 0.844
## percent_return_next_dividend.lag -6.448e+02 4.449e+02 -1.449 0.384
## volume 2.385e-07 7.355e-08 3.242 0.190
##
## (Dispersion parameter for gaussian family taken to be 0.4967913)
##
## Null deviance: 54.79677 on 9 degrees of freedom
## Residual deviance: 0.49679 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 18.357
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.6923077 0.3500000 0.3857383 0.9090796 0.6153846
## AccuracyPValue McnemarPValue
## 0.3966378 1.0000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -1.78633 1.51276 0.39411 0.01758 -0.29622 1.03945 -0.65223 0.41945
## 10 11
## -1.11282 0.46425
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -4.150e+03 2.788e+03 -1.489 0.377
## open.lag 3.028e+00 2.798e+00 1.082 0.475
## high.lag 2.232e+00 4.871e+00 0.458 0.726
## low.lag -6.138e+00 3.674e+00 -1.671 0.343
## close.lag 5.445e+01 3.629e+01 1.500 0.374
## next_weeks_open.lag -2.922e+00 5.704e+00 -0.512 0.699
## next_weeks_close.lag -1.431e+00 1.234e+00 -1.159 0.453
## percent_return_next_dividend.lag 2.169e+03 1.437e+03 1.509 0.373
## volume 1.488e-07 9.595e-08 1.551 0.365
##
## (Dispersion parameter for gaussian family taken to be 8.858525)
##
## Null deviance: 83.7400 on 9 degrees of freedom
## Residual deviance: 8.8585 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 47.167
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.46153846 -0.09638554 0.19223244 0.74865452 0.61538462
## AccuracyPValue McnemarPValue
## 0.92110952 1.00000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -0.1361 -0.1492 -0.2767 0.7293 -0.3707 0.2087 0.1018 -0.6803
## 10 11
## 0.2146 0.3586
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.506e+02 2.108e+03 -0.071 0.955
## open.lag -7.365e+00 4.842e+00 -1.521 0.370
## high.lag 3.898e+00 1.014e+01 0.384 0.766
## low.lag 3.826e-01 1.961e+00 0.195 0.877
## close.lag 9.927e+00 4.520e+01 0.220 0.862
## next_weeks_open.lag -9.575e-01 3.422e+00 -0.280 0.826
## next_weeks_close.lag -5.063e+00 2.015e+00 -2.513 0.241
## percent_return_next_dividend.lag 2.035e+02 1.499e+03 0.136 0.914
## volume -2.525e-08 1.266e-08 -1.995 0.296
##
## (Dispersion parameter for gaussian family taken to be 1.477958)
##
## Null deviance: 41.063 on 9 degrees of freedom
## Residual deviance: 1.478 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 29.26
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.7692308 0.4935065 0.4618685 0.9496189 0.6923077
## AccuracyPValue McnemarPValue
## 0.3969090 1.0000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## 0.5518 0.3121 -0.1493 1.6757 -0.4771 0.2546 0.7011 -1.0052
## 10 11
## -0.6936 -1.1702
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.611e+03 2.233e+04 -0.117 0.926
## open.lag 5.364e-01 6.002e+00 0.089 0.943
## high.lag -1.617e+00 6.456e+00 -0.250 0.844
## low.lag 3.817e+00 1.098e+01 0.348 0.787
## close.lag 3.326e+01 3.075e+02 0.108 0.931
## next_weeks_open.lag 1.248e+00 1.776e+01 0.070 0.955
## next_weeks_close.lag -4.184e+00 3.833e+00 -1.092 0.472
## percent_return_next_dividend.lag 2.067e+03 1.642e+04 0.126 0.920
## volume -1.031e-07 1.697e-07 -0.607 0.652
##
## (Dispersion parameter for gaussian family taken to be 6.87694)
##
## Null deviance: 59.8948 on 9 degrees of freedom
## Residual deviance: 6.8769 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 44.635
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.7692308 0.5301205 0.4618685 0.9496189 0.6153846
## AccuracyPValue McnemarPValue
## 0.1986072 1.0000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## 1.65774 0.48931 0.49051 -1.01875 -1.06657 0.09504 0.08995 0.45500
## 10 11
## -1.20897 0.01675
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.960e+02 7.356e+01 4.024 0.155
## open.lag -4.306e+01 1.219e+01 -3.533 0.176
## high.lag 4.031e+01 1.151e+01 3.503 0.177
## low.lag 1.230e+01 4.773e+00 2.578 0.236
## close.lag 5.010e+00 5.360e+00 0.935 0.521
## next_weeks_open.lag -2.246e+01 6.764e+00 -3.320 0.186
## next_weeks_close.lag 1.784e-01 8.880e-01 0.201 0.874
## percent_return_next_dividend.lag -1.198e+01 3.222e+01 -0.372 0.773
## volume 2.030e-07 6.920e-08 2.934 0.209
##
## (Dispersion parameter for gaussian family taken to be 7.089576)
##
## Null deviance: 145.3825 on 9 degrees of freedom
## Residual deviance: 7.0896 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 44.939
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.3846154 -0.2380952 0.1385793 0.6842224 0.5384615
## AccuracyPValue McnemarPValue
## 0.9180193 1.0000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -0.01088 0.04371 -0.18633 0.16262 0.19485 0.42992 -0.83824 -0.24980
## 10 11
## 0.10613 0.34801
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.665e+02 6.346e+01 2.624 0.232
## open.lag -1.665e-01 5.051e-01 -0.330 0.797
## high.lag 4.117e-01 2.264e-01 1.818 0.320
## low.lag -7.767e-01 4.591e-01 -1.692 0.340
## close.lag 3.141e-02 1.212e+00 0.026 0.984
## next_weeks_open.lag 6.747e-01 1.186e+00 0.569 0.671
## next_weeks_close.lag -1.152e+00 3.689e-01 -3.122 0.197
## percent_return_next_dividend.lag -7.351e+00 5.670e+01 -0.130 0.918
## volume -3.209e-07 1.208e-07 -2.657 0.229
##
## (Dispersion parameter for gaussian family taken to be 1.183404)
##
## Null deviance: 34.0021 on 9 degrees of freedom
## Residual deviance: 1.1834 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 27.037
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.6153846 0.1975309 0.3157776 0.8614207 0.5384615
## AccuracyPValue McnemarPValue
## 0.3937754 0.3710934
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -1.21706 -0.78824 1.08278 2.37445 -0.39225 0.38602 -1.97540 -0.67930
## 10 11
## 1.14224 0.06676
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.301e+03 3.748e+03 0.881 0.540
## open.lag -1.266e+00 6.341e+00 -0.200 0.875
## high.lag -7.320e+00 1.074e+01 -0.681 0.619
## low.lag 2.383e-01 1.101e+01 0.022 0.986
## close.lag -6.260e+01 9.060e+01 -0.691 0.615
## next_weeks_open.lag -9.314e+00 1.434e+01 -0.650 0.633
## next_weeks_close.lag -7.428e-02 4.159e+00 -0.018 0.989
## percent_return_next_dividend.lag -1.881e+03 2.201e+03 -0.855 0.550
## volume 1.315e-08 4.463e-08 0.295 0.818
##
## (Dispersion parameter for gaussian family taken to be 14.88865)
##
## Null deviance: 53.635 on 9 degrees of freedom
## Residual deviance: 14.889 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 52.359
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.6923077 0.3809524 0.3857383 0.9090796 0.5384615
## AccuracyPValue McnemarPValue
## 0.2032927 1.0000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8
## 0.012086 0.031377 0.016816 -0.094080 -0.018603 0.049501 0.006441
## 9 10 11
## 0.011092 -0.096165 0.081536
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.876e+02 1.580e+01 11.868 0.0535 .
## open.lag 2.608e+00 3.536e-01 7.376 0.0858 .
## high.lag -1.255e+00 3.622e-01 -3.465 0.1789
## low.lag -3.909e+00 3.625e-01 -10.784 0.0589 .
## close.lag 6.322e-01 4.990e-01 1.267 0.4254
## next_weeks_open.lag 2.178e+00 6.582e-01 3.310 0.1868
## next_weeks_close.lag -2.287e+00 1.154e-01 -19.820 0.0321 *
## percent_return_next_dividend.lag -7.284e+01 4.560e+00 -15.974 0.0398 *
## volume -3.217e-08 7.725e-09 -4.165 0.1500
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for gaussian family taken to be 0.02912122)
##
## Null deviance: 31.295553 on 9 degrees of freedom
## Residual deviance: 0.029121 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: -10.01
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.53846154 0.09302326 0.25134548 0.80776756 0.61538462
## AccuracyPValue McnemarPValue
## 0.80507595 0.68309140
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -0.00595 -0.52585 0.56567 -0.13588 0.19354 -0.22117 0.50470 -0.66253
## 10 11
## 0.19459 0.09288
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.777e+04 9.739e+03 -1.825 0.319
## open.lag 1.278e+01 7.272e+00 1.757 0.329
## high.lag -7.745e+00 5.036e+00 -1.538 0.367
## low.lag -9.113e+00 6.475e+00 -1.407 0.393
## close.lag 1.984e+02 1.105e+02 1.795 0.324
## next_weeks_open.lag -8.436e+00 5.781e+00 -1.459 0.382
## next_weeks_close.lag 6.897e+00 3.861e+00 1.786 0.325
## percent_return_next_dividend.lag 1.635e+04 8.937e+03 1.829 0.318
## volume 8.285e-08 6.322e-08 1.311 0.415
##
## (Dispersion parameter for gaussian family taken to be 1.441526)
##
## Null deviance: 46.6293 on 9 degrees of freedom
## Residual deviance: 1.4415 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 29.01
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.7692308 0.5301205 0.4618685 0.9496189 0.6153846
## AccuracyPValue McnemarPValue
## 0.1986072 1.0000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## 0.42242 -0.76378 0.20828 0.09029 0.05549 -0.11299 -0.04609 -0.14013
## 10 11
## 0.27167 0.01484
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.901e+02 3.976e+03 0.073 0.954
## open.lag -6.864e-01 9.488e-01 -0.723 0.601
## high.lag 5.634e+00 1.904e+00 2.960 0.207
## low.lag 1.885e+00 2.704e+00 0.697 0.612
## close.lag -3.611e+00 3.144e+01 -0.115 0.927
## next_weeks_open.lag -6.751e+00 2.098e+00 -3.218 0.192
## next_weeks_close.lag 1.291e+00 1.144e+00 1.129 0.461
## percent_return_next_dividend.lag -2.078e+02 2.700e+03 -0.077 0.951
## volume 5.644e-08 7.570e-08 0.746 0.592
##
## (Dispersion parameter for gaussian family taken to be 0.9249677)
##
## Null deviance: 30.78673 on 9 degrees of freedom
## Residual deviance: 0.92497 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 24.573
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.23076923 -0.51162791 0.05038107 0.53813154 0.61538462
## AccuracyPValue McnemarPValue
## 0.99910735 0.75182963
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -0.11824 0.88587 -0.10881 -0.90632 -0.03072 0.46258 0.40047 -0.59638
## 10 11
## -0.07876 0.09032
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.342e+04 9.577e+03 -1.401 0.395
## open.lag 4.568e+00 2.984e+00 1.531 0.368
## high.lag -4.490e+00 3.188e+00 -1.409 0.393
## low.lag -1.017e+01 4.508e+00 -2.257 0.266
## close.lag 2.243e+02 1.552e+02 1.446 0.385
## next_weeks_open.lag 3.022e+00 6.897e+00 0.438 0.737
## next_weeks_close.lag -3.116e+00 2.000e+00 -1.558 0.363
## percent_return_next_dividend.lag 7.256e+03 5.157e+03 1.407 0.393
## volume -1.301e-07 1.499e-07 -0.868 0.545
##
## (Dispersion parameter for gaussian family taken to be 2.377337)
##
## Null deviance: 32.0891 on 9 degrees of freedom
## Residual deviance: 2.3773 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 34.013
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.3846154 -0.2380952 0.1385793 0.6842224 0.5384615
## AccuracyPValue McnemarPValue
## 0.9180193 1.0000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## 0.08836 -0.83493 0.57110 0.09497 0.76710 -0.30781 0.97224 -1.09509
## 10 11
## 0.48000 -0.73595
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.105e+04 1.337e+04 -0.827 0.560
## open.lag -4.624e-01 1.504e+00 -0.307 0.810
## high.lag -7.977e-01 1.668e+00 -0.478 0.716
## low.lag 2.211e+00 1.790e+00 1.235 0.433
## close.lag 7.345e+01 9.029e+01 0.814 0.565
## next_weeks_open.lag -5.186e-01 3.082e+00 -0.168 0.894
## next_weeks_close.lag -4.329e-01 1.118e+00 -0.387 0.765
## percent_return_next_dividend.lag 6.814e+03 8.194e+03 0.832 0.558
## volume 2.056e-09 1.118e-07 0.018 0.988
##
## (Dispersion parameter for gaussian family taken to be 4.639793)
##
## Null deviance: 40.0671 on 9 degrees of freedom
## Residual deviance: 4.6398 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 40.7
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.46153846 -0.04597701 0.19223244 0.74865452 0.69230769
## AccuracyPValue McnemarPValue
## 0.97867974 0.44969180
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -0.36999 0.04079 0.10917 0.11795 0.47845 0.73723 0.52067 -1.64248
## 10 11
## 0.09085 -0.08265
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.260e+04 1.139e+04 -1.106 0.468
## open.lag 8.747e-01 1.230e+00 0.711 0.607
## high.lag 4.208e-01 1.386e+00 0.304 0.812
## low.lag -1.196e+00 1.701e+00 -0.703 0.610
## close.lag 7.039e+01 6.242e+01 1.128 0.462
## next_weeks_open.lag -1.461e+00 2.021e+00 -0.723 0.602
## next_weeks_close.lag 5.545e-01 9.509e-01 0.583 0.664
## percent_return_next_dividend.lag 1.036e+04 9.329e+03 1.110 0.467
## volume 4.642e-07 5.020e-07 0.925 0.525
##
## (Dispersion parameter for gaussian family taken to be 3.920724)
##
## Null deviance: 42.6031 on 9 degrees of freedom
## Residual deviance: 3.9207 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 39.016
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.46153846 -0.07058824 0.19223244 0.74865452 0.53846154
## AccuracyPValue McnemarPValue
## 0.79806522 1.00000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## 0.11725 -0.18912 0.00719 -0.21501 -0.30547 0.74500 0.07770 0.29963
## 10 11
## -0.49461 -0.04255
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -7.910e+03 8.171e+03 -0.968 0.510
## open.lag -4.751e+00 6.033e+00 -0.787 0.575
## high.lag 3.992e+00 4.422e+00 0.903 0.533
## low.lag 8.779e+00 8.460e+00 1.038 0.488
## close.lag 1.044e+02 1.126e+02 0.927 0.524
## next_weeks_open.lag 8.935e+00 5.823e+00 1.535 0.368
## next_weeks_close.lag -4.101e+00 1.344e+00 -3.051 0.202
## percent_return_next_dividend.lag 3.509e+03 3.569e+03 0.983 0.505
## volume -1.575e-08 1.600e-08 -0.985 0.505
##
## (Dispersion parameter for gaussian family taken to be 1.086405)
##
## Null deviance: 27.3820 on 9 degrees of freedom
## Residual deviance: 1.0864 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 26.182
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.6153846 0.2352941 0.3157776 0.8614207 0.5384615
## AccuracyPValue McnemarPValue
## 0.3937754 1.0000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -0.46375 -0.21169 -0.37494 0.78964 1.22996 -0.45205 0.09962 -1.17193
## 10 11
## 0.28095 0.27419
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.957e+03 1.876e+03 -1.043 0.487
## open.lag 7.713e-01 7.481e+00 0.103 0.935
## high.lag 1.009e+00 3.008e+00 0.335 0.794
## low.lag 1.730e+00 1.045e+01 0.166 0.896
## close.lag 3.828e+01 3.495e+01 1.095 0.471
## next_weeks_open.lag -1.987e+00 7.625e+00 -0.261 0.838
## next_weeks_close.lag -3.339e+00 4.976e+00 -0.671 0.624
## percent_return_next_dividend.lag 1.632e+03 1.554e+03 1.050 0.484
## volume 3.315e-09 1.655e-08 0.200 0.874
##
## (Dispersion parameter for gaussian family taken to be 4.27861)
##
## Null deviance: 16.4064 on 9 degrees of freedom
## Residual deviance: 4.2786 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 39.889
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.92307692 0.84337349 0.63970256 0.99805437 0.53846154
## AccuracyPValue McnemarPValue
## 0.00388447 1.00000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -1.94888 1.65512 -0.01126 -1.02891 -0.57389 0.45331 1.70917 0.96130
## 10 11
## -1.30717 0.09120
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.791e+01 2.764e+03 0.017 0.989
## open.lag 1.034e+00 8.975e+00 0.115 0.927
## high.lag 4.839e+00 1.657e+01 0.292 0.819
## low.lag 1.460e+00 1.662e+01 0.088 0.944
## close.lag -2.908e+00 8.573e+01 -0.034 0.978
## next_weeks_open.lag 2.627e+00 2.236e+01 0.117 0.926
## next_weeks_close.lag -8.131e+00 8.970e+00 -0.907 0.531
## percent_return_next_dividend.lag -2.725e+01 1.314e+03 -0.021 0.987
## volume 1.557e-08 1.889e-08 0.824 0.561
##
## (Dispersion parameter for gaussian family taken to be 13.69351)
##
## Null deviance: 63.495 on 9 degrees of freedom
## Residual deviance: 13.694 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 51.522
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.84615385 0.67500000 0.54552894 0.98079333 0.61538462
## AccuracyPValue McnemarPValue
## 0.07186756 1.00000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## 0.00029 -0.10692 0.13324 -0.07502 0.12966 -0.04195 0.30333 -0.62884
## 10 11
## 0.17079 0.11543
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -4.661e+01 5.686e+01 -0.820 0.563
## open.lag -7.787e-01 1.456e+00 -0.535 0.687
## high.lag 1.059e+00 1.107e+00 0.956 0.514
## low.lag -3.917e+00 1.980e+00 -1.979 0.298
## close.lag 3.493e+00 3.627e+00 0.963 0.512
## next_weeks_open.lag 1.169e+00 1.758e+00 0.665 0.626
## next_weeks_close.lag -1.166e+00 7.068e-01 -1.650 0.347
## percent_return_next_dividend.lag 5.878e+01 3.820e+01 1.539 0.367
## volume 2.958e-08 4.256e-08 0.695 0.613
##
## (Dispersion parameter for gaussian family taken to be 0.5833192)
##
## Null deviance: 13.87737 on 9 degrees of freedom
## Residual deviance: 0.58332 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 19.963
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.53846154 0.07142857 0.25134548 0.80776756 0.53846154
## AccuracyPValue McnemarPValue
## 0.61146992 1.00000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -0.7966 -0.6692 -0.1787 -0.2110 -0.8526 1.0149 0.5474 0.1429
## 10 11
## 0.5550 0.4480
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.733e+04 1.961e+04 -0.884 0.539
## open.lag -9.973e+00 5.434e+00 -1.835 0.318
## high.lag 2.319e+00 5.259e+00 0.441 0.736
## low.lag 7.766e+00 6.935e+00 1.120 0.464
## close.lag 2.898e+02 3.482e+02 0.832 0.558
## next_weeks_open.lag 1.976e+01 7.957e+00 2.483 0.244
## next_weeks_close.lag -5.632e+00 2.913e+00 -1.933 0.304
## percent_return_next_dividend.lag 5.748e+03 6.428e+03 0.894 0.536
## volume -6.476e-08 5.418e-08 -1.195 0.444
##
## (Dispersion parameter for gaussian family taken to be 3.744787)
##
## Null deviance: 53.6770 on 9 degrees of freedom
## Residual deviance: 3.7448 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 38.557
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.46153846 0.04210526 0.19223244 0.74865452 0.61538462
## AccuracyPValue McnemarPValue
## 0.92110952 0.13057002
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## 0.14190 -0.24672 -0.37580 1.10050 -0.59954 -0.04866 0.88200 -0.85660
## 10 11
## -0.12269 0.12560
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.057e+01 3.870e+01 -0.273 0.830
## open.lag -3.935e+00 3.543e+00 -1.111 0.467
## high.lag -1.030e+00 1.568e+00 -0.657 0.630
## low.lag 7.335e+00 7.030e+00 1.043 0.486
## close.lag -4.446e-01 3.790e+00 -0.117 0.926
## next_weeks_open.lag -1.683e+00 5.775e+00 -0.291 0.819
## next_weeks_close.lag -1.365e-01 8.329e-01 -0.164 0.897
## percent_return_next_dividend.lag 1.655e+01 2.002e+01 0.826 0.560
## volume 1.108e-07 1.750e-07 0.633 0.641
##
## (Dispersion parameter for gaussian family taken to be 3.337651)
##
## Null deviance: 29.0020 on 9 degrees of freedom
## Residual deviance: 3.3377 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 37.406
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.6153846 0.1558442 0.3157776 0.8614207 0.6153846
## AccuracyPValue McnemarPValue
## 0.6194222 1.0000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## 0.07515 -0.30274 -0.05030 0.35520 -0.07556 0.03188 -0.55782 0.46519
## 10 11
## 0.07114 -0.01213
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.448e+01 4.540e+01 -1.200 0.442
## open.lag -2.306e+00 1.001e+00 -2.305 0.261
## high.lag 2.072e+00 5.905e-01 3.508 0.177
## low.lag 1.372e+00 8.465e-01 1.621 0.352
## close.lag -5.719e-01 1.766e+00 -0.324 0.801
## next_weeks_open.lag -1.750e+00 1.386e+00 -1.262 0.427
## next_weeks_close.lag 1.336e+00 4.988e-01 2.678 0.228
## percent_return_next_dividend.lag 7.281e+01 3.532e+01 2.062 0.288
## volume 7.697e-08 1.377e-07 0.559 0.675
##
## (Dispersion parameter for gaussian family taken to be 0.7654922)
##
## Null deviance: 27.38573 on 9 degrees of freedom
## Residual deviance: 0.76549 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 22.681
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.6153846 0.2168675 0.3157776 0.8614207 0.6153846
## AccuracyPValue McnemarPValue
## 0.6194222 1.0000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8
## -0.069802 0.006460 0.011370 -0.123693 -0.065919 0.079207 0.000299
## 9 10 11
## 0.055894 0.076936 0.029249
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -8.557e+03 1.645e+03 -5.202 0.1209
## open.lag -1.329e+00 2.713e-01 -4.899 0.1282
## high.lag 2.935e+00 4.999e-01 5.872 0.1074
## low.lag -1.820e+00 2.730e-01 -6.667 0.0948 .
## close.lag 1.171e+02 2.216e+01 5.283 0.1191
## next_weeks_open.lag 5.075e+00 9.378e-01 5.411 0.1163
## next_weeks_close.lag -2.091e+00 3.515e-01 -5.949 0.1060
## percent_return_next_dividend.lag 3.112e+03 5.972e+02 5.210 0.1207
## volume 6.452e-08 6.019e-09 10.720 0.0592 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for gaussian family taken to be 0.0408612)
##
## Null deviance: 13.622563 on 9 degrees of freedom
## Residual deviance: 0.040861 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: -6.6228
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.46153846 -0.09638554 0.19223244 0.74865452 0.61538462
## AccuracyPValue McnemarPValue
## 0.92110952 1.00000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -0.28095 0.29300 -0.08076 0.23686 -0.20242 -0.10799 -0.07632 -0.06589
## 10 11
## 0.33236 -0.04789
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.340e+03 7.087e+02 3.301 0.187
## open.lag 2.132e+00 4.892e-01 4.358 0.144
## high.lag -5.095e-01 4.975e-01 -1.024 0.492
## low.lag -6.745e+00 1.141e+00 -5.909 0.107
## close.lag -2.046e+01 6.971e+00 -2.935 0.209
## next_weeks_open.lag 4.719e+00 1.316e+00 3.586 0.173
## next_weeks_close.lag -9.404e-01 3.493e-01 -2.692 0.226
## percent_return_next_dividend.lag -1.706e+03 5.180e+02 -3.293 0.188
## volume 5.862e-08 3.050e-08 1.922 0.305
##
## (Dispersion parameter for gaussian family taken to be 0.4029669)
##
## Null deviance: 25.69711 on 9 degrees of freedom
## Residual deviance: 0.40297 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 16.264
##
## Number of Fisher Scoring iterations: 2
##
## Accuracy Kappa AccuracyLower AccuracyUpper AccuracyNull
## 0.6153846 0.2168675 0.3157776 0.8614207 0.6153846
## AccuracyPValue McnemarPValue
## 0.6194222 1.0000000
##
## Call:
## glm(formula = formula, data = trainstock)
##
## Deviance Residuals:
## 2 3 4 5 6 7 8 9
## -1.3106 1.9004 -0.8624 -0.0243 -0.3120 0.3152 0.3052 -0.8658
## 10 11
## -0.1419 0.9961
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.589e+02 3.308e+02 0.783 0.577
## open.lag 3.469e+00 3.377e+00 1.027 0.491
## high.lag -1.875e+00 1.898e+00 -0.988 0.504
## low.lag -3.731e+00 2.874e+00 -1.298 0.418
## close.lag -1.622e+00 5.862e+00 -0.277 0.828
## next_weeks_open.lag 2.609e+00 4.703e+00 0.555 0.678
## next_weeks_close.lag -4.883e-01 8.753e-01 -0.558 0.676
## percent_return_next_dividend.lag -2.262e+02 2.977e+02 -0.760 0.586
## volume -4.127e-08 8.741e-08 -0.472 0.719
##
## (Dispersion parameter for gaussian family taken to be 8.125535)
##
## Null deviance: 52.3465 on 9 degrees of freedom
## Residual deviance: 8.1255 on 1 degrees of freedom
## (1 observation deleted due to missingness)
## AIC: 46.303
##
## Number of Fisher Scoring iterations: 2
library(rpart)
#Decision Tree
treefxn <- function(trainstock, teststock, formula){
set.seed(123)
treefit <- rpart(formula = percent_change_next_weeks_price ~ open.lag + high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag + percent_return_next_dividend.lag + volume, data = trainstock)
tree.predict <- predict(treefit, newdata = teststock)
tree.predict <- ifelse(tree.predict >= mean(tree.predict), 1,0)
tree.obs <- ifelse(teststock$percent_change_next_weeks_price >= mean(teststock$percent_change_next_weeks_price ),1,0)
table <- table(tree.obs, tree.predict); print(summary(treefit))
accuracy <- sum(diag(table))/12
print(accuracy)
a="--------------------------------------------"
print(a)
}
formula = percent_change_next_weeks_price ~ open.lag + high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag + percent_return_next_dividend.lag + volume
for (i in names(train1)){
x= train1[[i]]
y= test1[[i]]
treefxn(x,y)
}
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.5063097, MSE=7.396094
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 81.35704 0.5063097 *
## [1] 0.5
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=-0.1007376, MSE=7.445442
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 81.89987 -0.1007376 *
## [1] 0.5833333
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.33315, MSE=4.507134
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 49.57847 0.33315 *
## [1] 0.5833333
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=-1.18569, MSE=9.147387
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 100.6213 -1.18569 *
## [1] 0.5833333
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=1.22566, MSE=6.215511
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 68.37062 1.22566 *
## [1] 0.6666667
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=-1.980863, MSE=23.03305
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 253.3636 -1.980863 *
## [1] 0.5
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=1.357659, MSE=5.115582
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 56.2714 1.357659 *
## [1] 0.5833333
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.951576, MSE=6.093058
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 67.02364 0.951576 *
## [1] 0.6666667
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.9941116, MSE=7.664681
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 84.31149 0.9941116 *
## [1] 0.6666667
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.5534461, MSE=4.923739
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 54.16113 0.5534461 *
## [1] 0.5833333
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.08367836, MSE=5.645937
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 62.10531 0.08367836 *
## [1] 0.6666667
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=-0.8282461, MSE=14.2346
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 156.5806 -0.8282461 *
## [1] 0.5
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.9289144, MSE=3.910377
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 43.01414 0.9289144 *
## [1] 0.5833333
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=-0.514455, MSE=4.899382
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 53.89321 -0.514455 *
## [1] 0.8333333
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=-0.3726834, MSE=2.96518
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 32.61699 -0.3726834 *
## [1] 0.5833333
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.4257086, MSE=4.242058
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 46.66263 0.4257086 *
## [1] 0.5
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.6960514, MSE=2.9926
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 32.9186 0.6960514 *
## [1] 0.5833333
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.1814895, MSE=2.931064
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 32.2417 0.1814895 *
## [1] 0.5
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.1537836, MSE=3.653254
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 40.18579 0.1537836 *
## [1] 0.5833333
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.2433954, MSE=4.07107
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 44.78177 0.2433954 *
## [1] 0.5
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=-0.2658768, MSE=2.494709
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 27.44179 -0.2658768 *
## [1] 0.5833333
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=-0.997133, MSE=1.516492
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 16.68142 -0.997133 *
## [1] 0.5
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=1.030686, MSE=5.867546
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 64.54301 1.030686 *
## [1] 0.6666667
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=-0.5041435, MSE=1.342612
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 14.76874 -0.5041435 *
## [1] 0.6666667
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.4225943, MSE=5.022097
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 55.24307 0.4225943 *
## [1] 0.5833333
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.8638288, MSE=2.639371
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 29.03308 0.8638288 *
## [1] 0.8333333
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.5271037, MSE=2.529723
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 27.82696 0.5271037 *
## [1] 0.75
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.6546603, MSE=1.58812
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 17.46932 0.6546603 *
## [1] 0.5833333
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=-0.09309427, MSE=2.484481
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 27.32929 -0.09309427 *
## [1] 0.5833333
## [1] "--------------------------------------------"
## Call:
## rpart(formula = percent_change_next_weeks_price ~ open.lag +
## high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag +
## percent_return_next_dividend.lag + volume, data = trainstock)
## n= 11
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 11 observations
## mean=0.499862, MSE=4.864841
##
## n= 11
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 11 53.51325 0.499862 *
## [1] 0.5833333
## [1] "--------------------------------------------"
# SVM Radial Model
svmfxn <- function(trainstock, teststock, formula){
set.seed(123)
svmfit <- svm(formula, data = trainstock, kernerl ="radial", cost= 0.1, gamma=0.01)
svm.predict <- predict(svmfit, newdata = teststock, type="class")
svm.predict <- ifelse(svm.predict >= mean(svm.predict), 1,0)
svm.obs <- ifelse(teststock$percent_change_next_weeks_price >= mean(teststock$percent_change_next_weeks_price ),1,0)
table <- table(svm.obs, svm.predict)
accuracy <- sum(diag(table))/12
print(summary(svmfit))
print(accuracy)
}
formula = percent_change_next_weeks_price ~ open.lag + high.lag + low.lag + close.lag + next_weeks_open.lag + next_weeks_close.lag + percent_return_next_dividend.lag + volume
for (i in names(train1)){
x= train1[[i]]
y= test1[[i]]
svmfxn(x,y, formula)
}
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 10
##
##
##
##
##
## [1] 0.4166667
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.4166667
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.4166667
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.5
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.5833333
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.5833333
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 10
##
##
##
##
##
## [1] 0.5833333
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 10
##
##
##
##
##
## [1] 0.5833333
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.5833333
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.5
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.75
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 10
##
##
##
##
##
## [1] 0.4166667
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.8333333
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.6666667
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 10
##
##
##
##
##
## [1] 0.6666667
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.5833333
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.6666667
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.5
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.5
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.6666667
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 10
##
##
##
##
##
## [1] 0.75
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.5
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.6666667
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.5
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.5
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 9
##
##
##
##
##
## [1] 0.8333333
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 10
##
##
##
##
##
## [1] 0.8333333
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 10
##
##
##
##
##
## [1] 0.9166667
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 10
##
##
##
##
##
## [1] 0.75
##
## Call:
## svm(formula = formula, data = trainstock, kernerl = "radial", cost = 0.1,
## gamma = 0.01)
##
##
## Parameters:
## SVM-Type: eps-regression
## SVM-Kernel: radial
## cost: 0.1
## gamma: 0.01
## epsilon: 0.1
##
##
## Number of Support Vectors: 8
##
##
##
##
##
## [1] 0.4166667
# CAPM and Stock Risk and Reward Calculations
dow_jones_2 = read.csv("dow_jones_index.data", header = TRUE)
# convert factors to numeric
dow_jones_2$open=as.numeric(gsub("\\$","",dow_jones_2$open))
dow_jones_2$high=as.numeric(gsub("\\$","",dow_jones_2$high))
dow_jones_2$low=as.numeric(gsub("\\$","",dow_jones_2$low))
dow_jones_2$close=as.numeric(gsub("\\$","",dow_jones_2$close))
dow_jones_2$next_weeks_open=as.numeric(gsub("\\$","",dow_jones_2$next_weeks_open))
dow_jones_2$next_weeks_close=as.numeric(gsub("\\$","",dow_jones_2$next_weeks_close))
DowJData3 <- split(dow_jones_2, dow_jones_2$stock)
#S&P 500 Data - Download "^GSPC.csv"from
# https://finance.yahoo.com/quote/%5EGSPC/history?period1=1293840000&period2=1308960000&interval=1wk&filter=history&frequency=1wk
SP500Dta <- read.csv("^GSPC.csv")
#compute percent change
ReturnSP500 = na.omit(Delt(SP500Dta[,5]))
ReturnAA = na.omit(Delt(DowJData3$AA[,7])); ReturnAA
## Delt.1.arithmetic
## [1,] -0.027405603
## [2,] -0.011271133
## [3,] 0.021532616
## [4,] 0.062616243
## [5,] 0.013418903
## [6,] -0.005181347
## [7,] -0.034722222
## [8,] -0.005995204
## [9,] -0.033172497
## [10,] 0.004990643
## [11,] 0.060831782
## [12,] 0.022235225
## [13,] 0.025758443
## [14,] -0.078125000
## [15,] 0.027239709
## [16,] 0.001767826
## [17,] 0.008823529
## [18,] -0.002915452
## [19,] -0.049122807
## [20,] 0.013530135
## [21,] -0.033980583
## [22,] -0.040201005
## [23,] -0.036649215
## [24,] 0.034646739
## attr(,"na.action")
## [1] 1
## attr(,"class")
## [1] "omit"
ReturnAXP = na.omit(Delt(DowJData3$AXP[,7]))
ReturnBA = na.omit(Delt(DowJData3$BA[,7]))
ReturnBAC = na.omit(Delt(DowJData3$BAC[,7]))
ReturnCAT = na.omit(Delt(DowJData3$CAT[,7]))
ReturnCSCO = na.omit(Delt(DowJData3$CSCO[,7]))
ReturnCVX = na.omit(Delt(DowJData3$CVX[,7]))
ReturnDD = na.omit(Delt(DowJData3$DD[,7]))
ReturnDIS = na.omit(Delt(DowJData3$DIS[,7]))
ReturnGE = na.omit(Delt(DowJData3$GE[,7]))
ReturnHD = na.omit(Delt(DowJData3$HD[,7]))
ReturnHPQ = na.omit(Delt(DowJData3$HPQ[,7]))
ReturnIBM = na.omit(Delt(DowJData3$IBM[,7]))
ReturnINTC = na.omit(Delt(DowJData3$INTC[,7]))
ReturnJNJ = na.omit(Delt(DowJData3$JNJ[,7]))
ReturnJPM = na.omit(Delt(DowJData3$JPM[,7]))
ReturnKO = na.omit(Delt(DowJData3$KO[,7]))
ReturnKRFT = na.omit(Delt(DowJData3$KRFT[,7]))
ReturnMCD = na.omit(Delt(DowJData3$MCD[,7]))
ReturnMMM = na.omit(Delt(DowJData3$MMM[,7]))
ReturnMRK = na.omit(Delt(DowJData3$MRK[,7]))
ReturnMSFT = na.omit(Delt(DowJData3$MSFT[,7]))
ReturnPFE = na.omit(Delt(DowJData3$PFE[,7]))
ReturnPG = na.omit(Delt(DowJData3$PG[,7]))
ReturnT = na.omit(Delt(DowJData3$T[,7]))
ReturnTRV = na.omit(Delt(DowJData3$TRV[,7]))
ReturnUTX = na.omit(Delt(DowJData3$UTX[,7]))
ReturnWMT= na.omit(Delt(DowJData3$WMT[,7]))
ReturnVZ = na.omit(Delt(DowJData3$VZ[,7]))
ReturnXOM = na.omit(Delt(DowJData3$XOM[,7]))
#combine datas
MyData = cbind(ReturnSP500,
ReturnAA,
ReturnAXP,
ReturnBA,
ReturnBAC,
ReturnCAT,
ReturnCSCO,
ReturnCVX,
ReturnDD,
ReturnDIS,
ReturnGE,
ReturnHD,
ReturnHPQ,
ReturnIBM,
ReturnINTC,
ReturnJNJ,
ReturnJPM,
ReturnKO,
ReturnKRFT,
ReturnMCD,
ReturnMMM,
ReturnMRK,
ReturnMSFT,
ReturnPFE,
ReturnPG,
ReturnT,
ReturnTRV,
ReturnUTX,
ReturnWMT,
ReturnVZ,
ReturnXOM)
colnames(MyData) = c("SP500", "AA", "AXP", "BA", "BAC", "CAT", "CSCO", "CVX", "DD", "DIS", "GE", "HD", "HPQ", "IBM", "INTC", "JNJ", "JPM", "KO", "KRFT", "MCD", "MMM", "MRK", "MSFT", "PFE", "PG", "T", "TRV", "UTX", "WMT", "VZ", "XOM")
head(MyData)
## SP500 AA AXP BA BAC
## [1,] 0.017097908 -0.027405603 0.0426059513 0.009945229 0.070175439
## [2,] -0.007647470 -0.011271133 -0.0054054054 0.022977023 -0.065573770
## [3,] -0.005462275 0.021532616 -0.0465217391 -0.034179688 -0.045614035
## [4,] 0.027053943 0.062616243 -0.0009119927 0.031055901 0.050735294
## [5,] 0.013944960 0.013418903 0.0668644455 0.010647240 0.033589923
## [6,] 0.010427706 -0.005181347 -0.0260962567 0.012475742 -0.001354096
## CAT CSCO CVX DD DIS
## [1,] 0.002987304 0.01144492 0.017984428 0.0008038585 -0.004055767
## [2,] -0.013402829 -0.02310231 0.010233761 -0.0291164659 0.011453296
## [3,] 0.031590296 0.01013514 -0.004371934 0.0401240951 -0.022395571
## [4,] 0.040865385 0.05351171 0.040055692 0.0445416584 0.047876448
## [5,] 0.039662617 -0.15192744 -0.006796416 0.0390253189 0.066322771
## [6,] 0.022406799 0.00802139 0.023535511 0.0256504214 0.003455425
## GE HD HPQ IBM INTC
## [1,] 0.021161150 0.043920884 0.0257263251 0.0139931048 0.020329138
## [2,] 0.048884166 0.017275007 0.0211891892 0.0366666667 -0.012333966
## [3,] 0.023302938 0.005204054 -0.0364175312 0.0238585209 0.030739673
## [4,] 0.017821782 0.002724796 0.0421885300 0.0300860499 0.010251631
## [5,] 0.037451362 0.018478261 0.0255112798 -0.0009146341 0.003690037
## [6,] 0.005157056 0.026680896 0.0006167763 0.0060421117 0.017463235
## JNJ JPM KO KRFT MCD
## [1,] -0.000798722 0.029101742 0.003337572 0.004809234 -0.004168347
## [2,] 0.001758593 0.008461367 -0.005702519 0.000319081 0.012827437
## [3,] -0.042291733 -0.016559947 -0.008921459 -0.026156300 -0.023063592
## [4,] 0.013831028 0.001122586 0.005626105 0.021618081 0.010507642
## [5,] -0.002301118 0.044404575 0.016144501 -0.016992626 0.028224173
## [6,] 0.006754530 0.030706463 0.015416077 0.008153947 -0.000131337
## MMM MRK MSFT PFE PG
## [1,] 0.021686188 -0.083534137 -0.0104895105 0.000000000 0.015968992
## [2,] 0.013507378 -0.009640666 -0.0098939929 0.001090513 0.005798871
## [3,] -0.020719005 -0.024483776 -0.0096359743 -0.011437908 -0.025944470
## [4,] 0.009720952 -0.005443000 0.0007207207 0.063360882 -0.009190031
## [5,] 0.039755352 0.005472788 -0.0187252431 -0.024352332 0.017607294
## [6,] 0.012636166 -0.006652555 -0.0069724771 0.019118428 -0.006642979
## T TRV UTX WMT VZ
## [1,] -0.014558059 0.024376524 0.000000000 0.013498521 -0.013080991
## [2,] -0.003517411 0.006772835 0.014162873 0.016785258 -0.014382403
## [3,] -0.029650547 0.014727273 0.015336658 0.017405347 0.019456366
## [4,] 0.017460895 0.028668697 0.013385730 -0.011816578 0.019085041
## [5,] 0.017876296 0.027521338 0.032476975 -0.006068178 0.002203250
## [6,] 0.003512469 0.032717410 -0.002230047 -0.005566529 0.006320418
## XOM
## [1,] 0.0297658420
## [2,] 0.0146454265
## [3,] 0.0001266143
## [4,] 0.0543106722
## [5,] -0.0055235351
## [6,] 0.0202849553
#compute mean and standard deviation
DataMean = apply(MyData, 2, mean)
DataSD = apply(MyData, 2, sd)
cbind(DataMean, DataSD)
## DataMean DataSD
## SP500 7.115672e-06 0.01497110
## AA -2.556261e-03 0.03450483
## AXP 3.978729e-03 0.02867944
## BA 1.470660e-03 0.02740461
## BAC -1.203075e-02 0.03342655
## CAT 3.237159e-03 0.03336199
## CSCO -1.327265e-02 0.03920114
## CVX 3.252364e-03 0.02448295
## DD 2.143464e-03 0.02664204
## DIS -1.662886e-03 0.02746833
## GE -7.380844e-04 0.02560781
## HD 1.101705e-03 0.02335630
## HPQ -9.842898e-03 0.03914964
## IBM 4.734383e-03 0.01806670
## INTC 1.558625e-03 0.03211640
## JNJ 1.811071e-03 0.02068670
## JPM -3.912704e-03 0.02246357
## KO 1.437651e-03 0.01628497
## KRFT 4.482347e-03 0.01777007
## MCD 4.173738e-03 0.01919738
## MMM 2.399982e-03 0.02069039
## MRK -2.898597e-03 0.02654569
## MSFT -6.599840e-03 0.01858821
## PFE 4.102367e-03 0.02598915
## PG -1.100626e-03 0.01777888
## T 2.412863e-03 0.01926273
## TRV 2.720362e-03 0.01934159
## UTX 2.888433e-03 0.02084871
## WMT -1.130565e-03 0.01894121
## VZ 2.326181e-04 0.01783121
## XOM 9.597025e-04 0.02533114
lm.AA <- lm(AA~ SP500, data = as.data.frame(MyData))
#2
lm.AXP <- lm(AXP~ SP500, data = as.data.frame(MyData))
#3
lm.BA <- lm(BA~ SP500, data = as.data.frame(MyData))
#4
lm.BAC <- lm(BAC~ SP500, data = as.data.frame(MyData))
#5
lm.CAT <- lm(CAT~ SP500, data = as.data.frame(MyData))
#6
lm.CSCO <- lm(CSCO~ SP500, data = as.data.frame(MyData))
#7
lm.CVX <- lm(CVX~ SP500, data = as.data.frame(MyData))
#8
lm.DD <- lm(DD~ SP500, data = as.data.frame(MyData))
#9
lm.DIS <- lm(DIS~ SP500, data = as.data.frame(MyData))
#10
lm.GE <- lm(GE~ SP500, data = as.data.frame(MyData))
#11
lm.HD <- lm(HD~ SP500, data = as.data.frame(MyData))
#12
lm.HPQ <- lm(HPQ~ SP500, data = as.data.frame(MyData))
#13
lm.IBM <- lm(IBM~ SP500, data = as.data.frame(MyData))
#14
lm.INTC <- lm(INTC~ SP500, data = as.data.frame(MyData))
#15
lm.JNJ <- lm(JNJ~ SP500, data = as.data.frame(MyData))
#16
lm.JPM <- lm(JPM~ SP500, data = as.data.frame(MyData))
#17
lm.KO <- lm(KO~ SP500, data = as.data.frame(MyData))
#18
lm.KRFT <- lm(KRFT~ SP500, data = as.data.frame(MyData))
#19
lm.MCD <- lm(MCD~ SP500, data = as.data.frame(MyData))
#20
lm.MMM <- lm(MMM~ SP500, data = as.data.frame(MyData))
#21
lm.MRK <- lm(MRK~ SP500, data = as.data.frame(MyData))
#22
lm.MSFT <- lm(MSFT~ SP500, data = as.data.frame(MyData))
#23
lm.PFE <- lm(PFE~ SP500, data = as.data.frame(MyData))
#24
lm.PG <- lm(PG~ SP500, data = as.data.frame(MyData))
#25
lm.T <- lm(T~ SP500, data = as.data.frame(MyData))
#26
lm.TRV <- lm(TRV~ SP500, data = as.data.frame(MyData))
#27
lm.UTX <- lm(UTX~ SP500, data = as.data.frame(MyData))
#28
lm.WMT <- lm(WMT~ SP500, data = as.data.frame(MyData))
#29
lm.VZ <- lm(VZ~ SP500, data = as.data.frame(MyData))
#30
lm.XOM <- lm(XOM~ SP500, data = as.data.frame(MyData))
#1
BetaDowJ <- summary(lm.AA)$coefficient[2,1]
paste("Beta of AA:" , BetaDowJ)
## [1] "Beta of AA: 1.2833481132258"
summary(lm.AA)
##
## Call:
## lm(formula = AA ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.067356 -0.014664 -0.000238 0.029137 0.040291
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.002565 0.005982 -0.429 0.67219
## SP500 1.283348 0.408152 3.144 0.00471 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.0293 on 22 degrees of freedom
## Multiple R-squared: 0.3101, Adjusted R-squared: 0.2787
## F-statistic: 9.887 on 1 and 22 DF, p-value: 0.00471
#2
BetaDowJ <- summary(lm.AXP)$coefficient[2,1]
paste("Beta of AXP:" , BetaDowJ)
## [1] "Beta of AXP: 1.00635300424091"
summary(lm.AXP)
##
## Call:
## lm(formula = AXP ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.044996 -0.016408 0.000195 0.018459 0.048859
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.003972 0.005093 0.780 0.44383
## SP500 1.006353 0.347522 2.896 0.00839 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02495 on 22 degrees of freedom
## Multiple R-squared: 0.276, Adjusted R-squared: 0.2431
## F-statistic: 8.386 on 1 and 22 DF, p-value: 0.008386
## [1] "Beta of AXP: 1.00635300424091"
#3
BetaDowJ <- summary(lm.BA)$coefficient[2,1]
paste("Beta of BA:" , BetaDowJ)
## [1] "Beta of BA: 1.41543537150699"
## [1] "Beta of BA: 1.41543537150699"
summary(lm.BA)
##
## Call:
## lm(formula = BA ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.037170 -0.009942 -0.003999 0.015026 0.032341
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.001461 0.003627 0.403 0.691
## SP500 1.415435 0.247467 5.720 9.41e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01777 on 22 degrees of freedom
## Multiple R-squared: 0.5979, Adjusted R-squared: 0.5796
## F-statistic: 32.71 on 1 and 22 DF, p-value: 9.408e-06
#4
BetaDowJ <- summary(lm.BAC)$coefficient[2,1]
paste("Beta of BAC:" , BetaDowJ)
## [1] "Beta of BAC: 0.955091855655937"
## [1] "Beta of BAC: 0.955091855655937"
summary(lm.BAC)
##
## Call:
## lm(formula = BAC ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.063646 -0.014841 -0.000059 0.023144 0.065883
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.012038 0.006306 -1.909 0.0694 .
## SP500 0.955092 0.430270 2.220 0.0371 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.03089 on 22 degrees of freedom
## Multiple R-squared: 0.183, Adjusted R-squared: 0.1458
## F-statistic: 4.927 on 1 and 22 DF, p-value: 0.03705
#5
BetaDowJ <- summary(lm.CAT)$coefficient[2,1]
paste("Beta of CAT:" , BetaDowJ)
## [1] "Beta of CAT: 1.47045665275587"
## [1] "Beta of CAT: 1.47045665275587"
summary(lm.CAT)
##
## Call:
## lm(formula = CAT ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.036903 -0.015046 -0.003569 0.007387 0.075427
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.003227 0.005232 0.617 0.543742
## SP500 1.470457 0.356985 4.119 0.000451 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02563 on 22 degrees of freedom
## Multiple R-squared: 0.4354, Adjusted R-squared: 0.4098
## F-statistic: 16.97 on 1 and 22 DF, p-value: 0.0004511
#6
BetaDowJ <- summary(lm.CSCO)$coefficient[2,1]
paste("Beta of CSCO:" , BetaDowJ)
## [1] "Beta of CSCO: 0.740944862500916"
## [1] "Beta of CSCO: 0.740944862500916"
summary(lm.CSCO)
##
## Call:
## lm(formula = CSCO ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.148982 -0.006500 0.002232 0.013904 0.051434
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.013278 0.007847 -1.692 0.105
## SP500 0.740945 0.535440 1.384 0.180
##
## Residual standard error: 0.03844 on 22 degrees of freedom
## Multiple R-squared: 0.08007, Adjusted R-squared: 0.03826
## F-statistic: 1.915 on 1 and 22 DF, p-value: 0.1803
#7
BetaDowJ <- summary(lm.CVX)$coefficient[2,1]
paste("Beta of CVX:" , BetaDowJ)
## [1] "Beta of CVX: 0.884911936383771"
## [1] "Beta of CVX: 0.884911936383771"
summary(lm.CVX)
##
## Call:
## lm(formula = CVX ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.047996 -0.008521 0.000548 0.011641 0.046233
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.003246 0.004297 0.755 0.45802
## SP500 0.884912 0.293203 3.018 0.00632 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02105 on 22 degrees of freedom
## Multiple R-squared: 0.2928, Adjusted R-squared: 0.2607
## F-statistic: 9.109 on 1 and 22 DF, p-value: 0.006324
#8
BetaDowJ <- summary(lm.DD)$coefficient[2,1]
paste("Beta of DD:" , BetaDowJ)
## [1] "Beta of DD: 1.1856017925928"
## [1] "Beta of DD: 1.1856017925928"
summary(lm.DD)
##
## Call:
## lm(formula = DD ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.03147 -0.01389 -0.00369 0.01054 0.04892
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.002135 0.004147 0.515 0.611777
## SP500 1.185602 0.282939 4.190 0.000379 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02031 on 22 degrees of freedom
## Multiple R-squared: 0.4439, Adjusted R-squared: 0.4186
## F-statistic: 17.56 on 1 and 22 DF, p-value: 0.0003791
#9
BetaDowJ <- summary(lm.DIS)$coefficient[2,1]
paste("Beta of DIS:" , BetaDowJ)
## [1] "Beta of DIS: 1.37172413225927"
## [1] "Beta of DIS: 1.37172413225927"
summary(lm.DIS)
##
## Call:
## lm(formula = DIS ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.031604 -0.011978 0.002863 0.010408 0.048867
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.001673 0.003807 -0.439 0.665
## SP500 1.371724 0.259782 5.280 2.68e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01865 on 22 degrees of freedom
## Multiple R-squared: 0.559, Adjusted R-squared: 0.5389
## F-statistic: 27.88 on 1 and 22 DF, p-value: 2.68e-05
#10
BetaDowJ <- summary(lm.GE)$coefficient[2,1]
paste("Beta of GE:" , BetaDowJ)
## [1] "Beta of GE: 1.14991258972729"
## [1] "Beta of GE: 1.14991258972729"
summary(lm.GE)
##
## Call:
## lm(formula = GE ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.031669 -0.008516 -0.003067 0.004831 0.058424
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.0007463 0.0039567 -0.189 0.85213
## SP500 1.1499126 0.2699706 4.259 0.00032 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01938 on 22 degrees of freedom
## Multiple R-squared: 0.452, Adjusted R-squared: 0.427
## F-statistic: 18.14 on 1 and 22 DF, p-value: 0.0003202
#11
BetaDowJ <- summary(lm.HD)$coefficient[2,1]
paste("Beta of HD:" , BetaDowJ)
## [1] "Beta of HD: 0.914377519178353"
## [1] "Beta of HD: 0.914377519178353"
summary(lm.HD)
##
## Call:
## lm(formula = HD ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.036225 -0.015135 0.002431 0.014231 0.030201
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.001095 0.003950 0.277 0.78415
## SP500 0.914378 0.269495 3.393 0.00262 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01935 on 22 degrees of freedom
## Multiple R-squared: 0.3435, Adjusted R-squared: 0.3137
## F-statistic: 11.51 on 1 and 22 DF, p-value: 0.002615
#12
BetaDowJ <- summary(lm.HPQ)$coefficient[2,1]
paste("Beta of HPQ:" , BetaDowJ)
## [1] "Beta of HPQ: 1.18207574932582"
## [1] "Beta of HPQ: 1.18207574932582"
summary(lm.HPQ)
##
## Call:
## lm(formula = HPQ ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.095799 0.001180 0.007123 0.016245 0.041044
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.009851 0.007289 -1.352 0.1902
## SP500 1.182076 0.497311 2.377 0.0266 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.03571 on 22 degrees of freedom
## Multiple R-squared: 0.2043, Adjusted R-squared: 0.1682
## F-statistic: 5.65 on 1 and 22 DF, p-value: 0.02658
#13
BetaDowJ <- summary(lm.IBM)$coefficient[2,1]
paste("Beta of IBM:" , BetaDowJ)
## [1] "Beta of IBM: 0.791459024197683"
## [1] "Beta of IBM: 0.791459024197683"
summary(lm.IBM)
##
## Call:
## lm(formula = IBM ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.029779 -0.006595 -0.001004 0.003090 0.037991
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.004729 0.002846 1.661 0.110849
## SP500 0.791459 0.194222 4.075 0.000502 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01394 on 22 degrees of freedom
## Multiple R-squared: 0.4301, Adjusted R-squared: 0.4042
## F-statistic: 16.61 on 1 and 22 DF, p-value: 0.0005023
#14
BetaDowJ <- summary(lm.INTC)$coefficient[2,1]
paste("Beta of INTC:" , BetaDowJ)
## [1] "Beta of INTC: 1.16831599899469"
## [1] "Beta of INTC: 1.16831599899469"
summary(lm.INTC)
##
## Call:
## lm(formula = INTC ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.050009 -0.014714 -0.003073 0.007728 0.069362
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.001550 0.005622 0.276 0.78530
## SP500 1.168316 0.383586 3.046 0.00593 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02754 on 22 degrees of freedom
## Multiple R-squared: 0.2966, Adjusted R-squared: 0.2646
## F-statistic: 9.277 on 1 and 22 DF, p-value: 0.00593
#15
BetaDowJ <- summary(lm.JNJ)$coefficient[2,1]
paste("Beta of JNJ:" , BetaDowJ)
## [1] "Beta of JNJ: 0.690732207496706"
## [1] "Beta of JNJ: 0.690732207496706"
summary(lm.JNJ)
##
## Call:
## lm(formula = JNJ ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.040325 -0.013548 -0.001183 0.011224 0.046889
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.001806 0.003739 0.483 0.6339
## SP500 0.690732 0.255146 2.707 0.0129 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01832 on 22 degrees of freedom
## Multiple R-squared: 0.2499, Adjusted R-squared: 0.2158
## F-statistic: 7.329 on 1 and 22 DF, p-value: 0.01287
#16
BetaDowJ <- summary(lm.JPM)$coefficient[2,1]
paste("Beta of JPM:" , BetaDowJ)
## [1] "Beta of JPM: 0.78005638075441"
## [1] "Beta of JPM: 0.78005638075441"
summary(lm.JPM)
##
## Call:
## lm(formula = JPM ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.036630 -0.012054 0.000531 0.017315 0.037445
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.003918 0.004005 -0.978 0.33855
## SP500 0.780056 0.273271 2.855 0.00922 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01962 on 22 degrees of freedom
## Multiple R-squared: 0.2703, Adjusted R-squared: 0.2371
## F-statistic: 8.148 on 1 and 22 DF, p-value: 0.009217
#17
BetaDowJ <- summary(lm.KO)$coefficient[2,1]
paste("Beta of KO:" , BetaDowJ)
## [1] "Beta of KO: 0.646355311225748"
## [1] "Beta of KO: 0.646355311225748"
summary(lm.KO)
##
## Call:
## lm(formula = KO ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.026589 -0.009459 0.001365 0.008167 0.021281
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.001433 0.002734 0.524 0.6054
## SP500 0.646355 0.186529 3.465 0.0022 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01339 on 22 degrees of freedom
## Multiple R-squared: 0.3531, Adjusted R-squared: 0.3237
## F-statistic: 12.01 on 1 and 22 DF, p-value: 0.0022
#18
BetaDowJ <- summary(lm.KRFT)$coefficient[2,1]
paste("Beta of KRFT:" , BetaDowJ)
## [1] "Beta of KRFT: 0.213432329668554"
## [1] "Beta of KRFT: 0.213432329668554"
summary(lm.KRFT)
##
## Call:
## lm(formula = KRFT ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.029471 -0.008783 -0.001722 0.007327 0.050246
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.004481 0.003648 1.228 0.232
## SP500 0.213432 0.248935 0.857 0.400
##
## Residual standard error: 0.01787 on 22 degrees of freedom
## Multiple R-squared: 0.03233, Adjusted R-squared: -0.01165
## F-statistic: 0.7351 on 1 and 22 DF, p-value: 0.4005
#19
BetaDowJ <- summary(lm.MCD)$coefficient[2,1]
paste("Beta of MCD:" , BetaDowJ)
## [1] "Beta of MCD: 0.619919412874853"
## [1] "Beta of MCD: 0.619919412874853"
summary(lm.MCD)
##
## Call:
## lm(formula = MCD ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.040996 -0.011138 0.000168 0.013902 0.022876
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.004169 0.003507 1.189 0.2472
## SP500 0.619919 0.239315 2.590 0.0167 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01718 on 22 degrees of freedom
## Multiple R-squared: 0.2337, Adjusted R-squared: 0.1989
## F-statistic: 6.71 on 1 and 22 DF, p-value: 0.0167
#20
BetaDowJ <- summary(lm.MMM)$coefficient[2,1]
paste("Beta of MMM:" , BetaDowJ)
## [1] "Beta of MMM: 1.07851814959725"
## [1] "Beta of MMM: 1.07851814959725"
summary(lm.MMM)
##
## Call:
## lm(formula = MMM ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.0242826 -0.0086374 -0.0001139 0.0062490 0.0223232
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.002392 0.002700 0.886 0.385
## SP500 1.078518 0.184241 5.854 6.86e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01323 on 22 degrees of freedom
## Multiple R-squared: 0.609, Adjusted R-squared: 0.5912
## F-statistic: 34.27 on 1 and 22 DF, p-value: 6.86e-06
#21
BetaDowJ <- summary(lm.MRK)$coefficient[2,1]
paste("Beta of MRK:" , BetaDowJ)
## [1] "Beta of MRK: 0.277562973613413"
## [1] "Beta of MRK: 0.277562973613413"
summary(lm.MRK)
##
## Call:
## lm(formula = MRK ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.085379 -0.012918 -0.001309 0.017035 0.053567
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.002901 0.005472 -0.530 0.601
## SP500 0.277563 0.373372 0.743 0.465
##
## Residual standard error: 0.02681 on 22 degrees of freedom
## Multiple R-squared: 0.0245, Adjusted R-squared: -0.01984
## F-statistic: 0.5526 on 1 and 22 DF, p-value: 0.4651
#22
BetaDowJ <- summary(lm.MSFT)$coefficient[2,1]
paste("Beta of MSFT:" , BetaDowJ)
## [1] "Beta of MSFT: 0.616661446843324"
## [1] "Beta of MSFT: 0.616661446843324"
summary(lm.MSFT)
##
## Call:
## lm(formula = MSFT ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.024748 -0.013954 -0.000643 0.010657 0.031722
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.006604 0.003367 -1.961 0.0626 .
## SP500 0.616661 0.229754 2.684 0.0136 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.0165 on 22 degrees of freedom
## Multiple R-squared: 0.2467, Adjusted R-squared: 0.2124
## F-statistic: 7.204 on 1 and 22 DF, p-value: 0.01356
#23
BetaDowJ <- summary(lm.PFE)$coefficient[2,1]
paste("Beta of PFE:" , BetaDowJ)
## [1] "Beta of PFE: 0.684162973742174"
## [1] "Beta of PFE: 0.684162973742174"
summary(lm.PFE)
##
## Call:
## lm(formula = PFE ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.049319 -0.012483 -0.001510 0.008069 0.045519
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.004097 0.004985 0.822 0.4199
## SP500 0.684163 0.340151 2.011 0.0567 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02442 on 22 degrees of freedom
## Multiple R-squared: 0.1553, Adjusted R-squared: 0.1169
## F-statistic: 4.046 on 1 and 22 DF, p-value: 0.0567
#24
BetaDowJ <- summary(lm.PG)$coefficient[2,1]
paste("Beta of PG:" , BetaDowJ)
## [1] "Beta of PG: 0.391590332490925"
## [1] "Beta of PG: 0.391590332490925"
summary(lm.PG)
##
## Call:
## lm(formula = PG ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.030420 -0.012837 -0.001345 0.011095 0.040440
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.001103 0.003503 -0.315 0.756
## SP500 0.391590 0.239025 1.638 0.116
##
## Residual standard error: 0.01716 on 22 degrees of freedom
## Multiple R-squared: 0.1087, Adjusted R-squared: 0.06822
## F-statistic: 2.684 on 1 and 22 DF, p-value: 0.1156
#25
BetaDowJ <- summary(lm.T)$coefficient[2,1]
paste("Beta of T:" , BetaDowJ)
## [1] "Beta of T: 0.730661575201244"
## [1] "Beta of T: 0.730661575201244"
summary(lm.T)
##
## Call:
## lm(formula = T ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.029459 -0.006544 -0.002286 0.004227 0.048594
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.002408 0.003309 0.728 0.4746
## SP500 0.730662 0.225794 3.236 0.0038 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01621 on 22 degrees of freedom
## Multiple R-squared: 0.3225, Adjusted R-squared: 0.2917
## F-statistic: 10.47 on 1 and 22 DF, p-value: 0.003796
#26
BetaDowJ <- summary(lm.TRV)$coefficient[2,1]
paste("Beta of TRV:" , BetaDowJ)
## [1] "Beta of TRV: 0.959463703842149"
## [1] "Beta of TRV: 0.959463703842149"
summary(lm.TRV)
##
## Call:
## lm(formula = TRV ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.02489 -0.01122 0.00090 0.01067 0.02000
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.002714 0.002703 1.004 0.326
## SP500 0.959464 0.184454 5.202 3.24e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01324 on 22 degrees of freedom
## Multiple R-squared: 0.5515, Adjusted R-squared: 0.5312
## F-statistic: 27.06 on 1 and 22 DF, p-value: 3.237e-05
#27
BetaDowJ <- summary(lm.UTX)$coefficient[2,1]
paste("Beta of UTX:" , BetaDowJ)
## [1] "Beta of UTX: 1.02542284538263"
## [1] "Beta of UTX: 1.02542284538263"
summary(lm.UTX)
##
## Call:
## lm(formula = UTX ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.02041 -0.01292 -0.00343 0.01189 0.02710
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.002881 0.002944 0.979 0.338
## SP500 1.025423 0.200888 5.104 4.09e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01442 on 22 degrees of freedom
## Multiple R-squared: 0.5422, Adjusted R-squared: 0.5214
## F-statistic: 26.06 on 1 and 22 DF, p-value: 4.093e-05
#28
BetaDowJ <- summary(lm.WMT)$coefficient[2,1]
paste("Beta of WMT:" , BetaDowJ)
## [1] "Beta of WMT: 0.495437774372672"
## [1] "Beta of WMT: 0.495437774372672"
summary(lm.WMT)
##
## Call:
## lm(formula = WMT ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.055880 -0.008948 -0.001044 0.011620 0.023524
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.001134 0.003638 -0.312 0.7581
## SP500 0.495438 0.248197 1.996 0.0584 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01782 on 22 degrees of freedom
## Multiple R-squared: 0.1533, Adjusted R-squared: 0.1149
## F-statistic: 3.985 on 1 and 22 DF, p-value: 0.05844
#29
BetaDowJ <- summary(lm.VZ)$coefficient[2,1]
paste("Beta of VZ:" , BetaDowJ)
## [1] "Beta of VZ: 0.711131233223788"
## [1] "Beta of VZ: 0.711131233223788"
summary(lm.VZ)
##
## Call:
## lm(formula = VZ ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.034600 -0.008249 0.000072 0.008780 0.023113
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.0002276 0.0029854 0.076 0.93993
## SP500 0.7111312 0.2037014 3.491 0.00207 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01463 on 22 degrees of freedom
## Multiple R-squared: 0.3565, Adjusted R-squared: 0.3272
## F-statistic: 12.19 on 1 and 22 DF, p-value: 0.002068
#30
BetaDowJ <- summary(lm.XOM)$coefficient[2,1]
paste("Beta of XOM:" , BetaDowJ)
## [1] "Beta of XOM: 1.22737255293153"
## [1] "Beta of XOM: 1.22737255293153"
summary(lm.XOM)
##
## Call:
## lm(formula = XOM ~ SP500, data = as.data.frame(MyData))
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.040007 -0.011339 0.006208 0.010481 0.030128
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.000951 0.003639 0.261 0.796
## SP500 1.227373 0.248306 4.943 6.05e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01783 on 22 degrees of freedom
## Multiple R-squared: 0.5262, Adjusted R-squared: 0.5047
## F-statistic: 24.43 on 1 and 22 DF, p-value: 6.049e-05
| STOCK | LINEAR REGRESSION | DECISION TREE | SVM (RADIAL) | ALPHA | BETA | Expected Return Market | Expected return |
|---|---|---|---|---|---|---|---|
| AA | 0.46153846 | 0.5 | 0.4166667 | -0.002565 | 1.283348113 | 0.101 | 0.127053159 |
| AXP | 0.6153846 | 0.5833333 | 0.4166667 | 0.003972 | 1.006353004 | 0.101 | 0.105613653 |
| BA | 0.30769231 | 0.5833333 | 0.4166667 | 0.001461 | 1.415435372 | 0.101 | 0.144419973 |
| BAC | 0.53846154 | 0.5833333 | 0.5 | -0.012038 | 0.955091856 | 0.101 | 0.084426277 |
| CAT | 0.46153846 | 0.6666667 | 0.5833333 | 0.003227 | 1.470456653 | 0.101 | 0.151743122 |
| CSCP | 0.4615385 | 0.5 | 0.5833333 | -0.013278 | 0.740944863 | 0.101 | 0.061557431 |
| CVX | 0.53846154 | 0.5833333 | 0.5833333 | 0.003246 | 0.884911936 | 0.101 | 0.092622106 |
| DD | 0.6153846 | 0.6666667 | 0.5833333 | 0.002135 | 1.185601793 | 0.101 | 0.121880781 |
| DIS | 0.6923077 | 0.6666667 | 0.5833333 | -0.001673 | 1.371724132 | 0.101 | 0.136871137 |
| GE | 0.46153846 | 0.5833333 | 0.5 | -0.0007463 | 1.14991259 | 0.101 | 0.115394872 |
| HD | 0.7692308 | 0.6666667 | 0.75 | 0.001095 | 0.914377519 | 0.101 | 0.093447129 |
| HPQ | 0.7692308 | 0.5 | 0.4166667 | -0.009851 | 1.182075749 | 0.101 | 0.109538651 |
| IBM | 0.3846154 | 0.5833333 | 0.8333333 | 0.004729 | 0.791459024 | 0.101 | 0.084666361 |
| INTC | 0.6153846 | 0.8333333 | 0.6666667 | 0.00155 | 1.168315999 | 0.101 | 0.119549916 |
| JNJ | 0.6923077 | 0.5833333 | 0.6666667 | 0.001806 | 0.690732207 | 0.101 | 0.071569953 |
| JPM | 0.53846154 | 0.5 | 0.5833333 | -0.003918 | 0.780056381 | 0.101 | 0.074867694 |
| KO | 0.7692308 | 0.5833333 | 0.6666667 | 0.001433 | 0.646355311 | 0.101 | 0.066714886 |
| KRFT | 0.23076923 | 0.5 | 0.5 | 0.004481 | 0.21343233 | 0.101 | 0.026037665 |
| MDC | 0.3846154 | 0.5833333 | 0.5 | 0.004169 | 0.619919413 | 0.101 | 0.066780861 |
| MMM | 0.46153846 | 0.5 | 0.6666667 | 0.002392 | 1.07851815 | 0.101 | 0.111322333 |
| MRK | 0.46153846 | 0.5833333 | 0.75 | -0.002901 | 0.277562974 | 0.101 | 0.02513286 |
| MSFT | 0.6153846 | 0.5 | 0.5 | -0.006604 | 0.616661447 | 0.101 | 0.055678806 |
| PFE | 0.92307692 | 0.6666667 | 0.6666667 | 0.004097 | 0.684162974 | 0.101 | 0.07319746 |
| PG | 0.84615385 | 0.6666667 | 0.5 | -0.001103 | 0.391590332 | 0.101 | 0.038447624 |
| T | 0.53846154 | 0.5833333 | 0.5 | 0.002408 | 0.730661575 | 0.101 | 0.076204819 |
| TRV | 0.46153846 | 0.8333333 | 0.8333333 | 0.002714 | 0.959463704 | 0.101 | 0.099619834 |
| UTX | 0.6153846 | 0.75 | 0.8333333 | 0.002881 | 1.025422845 | 0.101 | 0.106448707 |
| VZ | 0.6153846 | 0.5833333 | 0.9166667 | -0.001134 | 0.495437774 | 0.101 | 0.048905215 |
| WMT | 0.46153846 | 0.5833333 | 0.75 | 0.0002276 | 0.711131233 | 0.101 | 0.072051855 |
| XOM | 0.6153846 | 0.5833333 | 0.4166667 | 0.000951 | 1.227372553 | 0.101 | 0.124915628 |
Note: Expected Return Market value of 10.1% is taken from the annualized historical total returns (1970-2020) as described in Perianan (2020). Expected Return is calculated using the formula: Expected Return = (Beta * Expected Return Market) + Alpha.