set.seed(1092024)
Caregivers <- read.csv("C:/Users/casey/Downloads/Caregivers.csv")
train = Caregivers %>% dplyr::sample_frac(0.70)
test = dplyr::anti_join(Caregivers, train)
## Joining with `by = join_by(CGAGE, CGINCOME, CGDUR, ADL, MEM, COG, SOCIALSU,
## BURDEN)`
my.x = train[,1:7]
my.y = train$BURDEN
model1 = leaps(x= my.x, y = my.y, nbest = 3)
model1.r2 = leaps(x= my.x, y = my.y, nbest = 3, method = "r2")
model1.adj2 = leaps(x= my.x, y = my.y, nbest = 3, method = "adjr2")
model1
## $which
## 1 2 3 4 5 6 7
## 1 FALSE FALSE FALSE FALSE TRUE FALSE FALSE
## 1 FALSE FALSE FALSE FALSE FALSE FALSE TRUE
## 1 FALSE FALSE FALSE TRUE FALSE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE TRUE FALSE TRUE
## 2 FALSE FALSE FALSE TRUE FALSE FALSE TRUE
## 2 FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## 3 TRUE FALSE FALSE FALSE TRUE FALSE TRUE
## 3 FALSE FALSE FALSE TRUE TRUE FALSE TRUE
## 3 FALSE FALSE TRUE FALSE TRUE FALSE TRUE
## 4 TRUE FALSE FALSE TRUE TRUE FALSE TRUE
## 4 FALSE FALSE TRUE TRUE TRUE FALSE TRUE
## 4 TRUE FALSE TRUE FALSE TRUE FALSE TRUE
## 5 TRUE FALSE TRUE TRUE TRUE FALSE TRUE
## 5 TRUE TRUE FALSE TRUE TRUE FALSE TRUE
## 5 TRUE FALSE FALSE TRUE TRUE TRUE TRUE
## 6 TRUE TRUE TRUE TRUE TRUE FALSE TRUE
## 6 TRUE FALSE TRUE TRUE TRUE TRUE TRUE
## 6 TRUE TRUE FALSE TRUE TRUE TRUE TRUE
## 7 TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##
## $label
## [1] "(Intercept)" "1" "2" "3" "4"
## [6] "5" "6" "7"
##
## $size
## [1] 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8
##
## $Cp
## [1] 21.210836 23.212989 28.372540 3.619600 13.575792 18.468613 3.515622
## [8] 3.765534 4.631528 3.195153 4.797823 4.812578 4.540811 4.696635
## [15] 5.193270 6.003077 6.522241 6.695260 8.000000
model1.r2
## $which
## 1 2 3 4 5 6 7
## 1 FALSE FALSE FALSE FALSE TRUE FALSE FALSE
## 1 FALSE FALSE FALSE FALSE FALSE FALSE TRUE
## 1 FALSE FALSE FALSE TRUE FALSE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE TRUE FALSE TRUE
## 2 FALSE FALSE FALSE TRUE FALSE FALSE TRUE
## 2 FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## 3 TRUE FALSE FALSE FALSE TRUE FALSE TRUE
## 3 FALSE FALSE FALSE TRUE TRUE FALSE TRUE
## 3 FALSE FALSE TRUE FALSE TRUE FALSE TRUE
## 4 TRUE FALSE FALSE TRUE TRUE FALSE TRUE
## 4 FALSE FALSE TRUE TRUE TRUE FALSE TRUE
## 4 TRUE FALSE TRUE FALSE TRUE FALSE TRUE
## 5 TRUE FALSE TRUE TRUE TRUE FALSE TRUE
## 5 TRUE TRUE FALSE TRUE TRUE FALSE TRUE
## 5 TRUE FALSE FALSE TRUE TRUE TRUE TRUE
## 6 TRUE TRUE TRUE TRUE TRUE FALSE TRUE
## 6 TRUE FALSE TRUE TRUE TRUE TRUE TRUE
## 6 TRUE TRUE FALSE TRUE TRUE TRUE TRUE
## 7 TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##
## $label
## [1] "(Intercept)" "1" "2" "3" "4"
## [6] "5" "6" "7"
##
## $size
## [1] 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8
##
## $r2
## [1] 0.2144407 0.1964061 0.1499310 0.3909105 0.3012292 0.2571567 0.4098622
## [8] 0.4076111 0.3998106 0.4307641 0.4163279 0.4161950 0.4366581 0.4352545
## [15] 0.4307810 0.4415018 0.4368254 0.4352669 0.4415295
model1.adj2
## $which
## 1 2 3 4 5 6 7
## 1 FALSE FALSE FALSE FALSE TRUE FALSE FALSE
## 1 FALSE FALSE FALSE FALSE FALSE FALSE TRUE
## 1 FALSE FALSE FALSE TRUE FALSE FALSE FALSE
## 2 FALSE FALSE FALSE FALSE TRUE FALSE TRUE
## 2 FALSE FALSE FALSE TRUE FALSE FALSE TRUE
## 2 FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## 3 TRUE FALSE FALSE FALSE TRUE FALSE TRUE
## 3 FALSE FALSE FALSE TRUE TRUE FALSE TRUE
## 3 FALSE FALSE TRUE FALSE TRUE FALSE TRUE
## 4 TRUE FALSE FALSE TRUE TRUE FALSE TRUE
## 4 FALSE FALSE TRUE TRUE TRUE FALSE TRUE
## 4 TRUE FALSE TRUE FALSE TRUE FALSE TRUE
## 5 TRUE FALSE TRUE TRUE TRUE FALSE TRUE
## 5 TRUE TRUE FALSE TRUE TRUE FALSE TRUE
## 5 TRUE FALSE FALSE TRUE TRUE TRUE TRUE
## 6 TRUE TRUE TRUE TRUE TRUE FALSE TRUE
## 6 TRUE FALSE TRUE TRUE TRUE TRUE TRUE
## 6 TRUE TRUE FALSE TRUE TRUE TRUE TRUE
## 7 TRUE TRUE TRUE TRUE TRUE TRUE TRUE
##
## $label
## [1] "(Intercept)" "1" "2" "3" "4"
## [6] "5" "6" "7"
##
## $size
## [1] 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8
##
## $adjr2
## [1] 0.2028883 0.1845886 0.1374300 0.3727287 0.2803704 0.2349823 0.3830378
## [8] 0.3806844 0.3725293 0.3957342 0.3804096 0.3802685 0.3926470 0.3911338
## [15] 0.3863108 0.3883115 0.3831897 0.3814828 0.3784764
my.best = data.frame(cbind(model1$which, model1$Cp, model1.r2$r2, model1.adj2$adjr2))
colnames(my.best)[8:10] = c("Cp", "R2", "R2Adj")
my.best
## X1 X2 X3 X4 X5 X6 X7 Cp R2 R2Adj
## X1 0 0 0 0 1 0 0 21.210836 0.2144407 0.2028883
## X1.1 0 0 0 0 0 0 1 23.212989 0.1964061 0.1845886
## X1.2 0 0 0 1 0 0 0 28.372540 0.1499310 0.1374300
## X2 0 0 0 0 1 0 1 3.619600 0.3909105 0.3727287
## X2.1 0 0 0 1 0 0 1 13.575792 0.3012292 0.2803704
## X2.2 0 0 0 0 0 1 1 18.468613 0.2571567 0.2349823
## X3 1 0 0 0 1 0 1 3.515622 0.4098622 0.3830378
## X3.1 0 0 0 1 1 0 1 3.765534 0.4076111 0.3806844
## X3.2 0 0 1 0 1 0 1 4.631528 0.3998106 0.3725293
## X4 1 0 0 1 1 0 1 3.195153 0.4307641 0.3957342
## X4.1 0 0 1 1 1 0 1 4.797823 0.4163279 0.3804096
## X4.2 1 0 1 0 1 0 1 4.812578 0.4161950 0.3802685
## X5 1 0 1 1 1 0 1 4.540811 0.4366581 0.3926470
## X5.1 1 1 0 1 1 0 1 4.696635 0.4352545 0.3911338
## X5.2 1 0 0 1 1 1 1 5.193270 0.4307810 0.3863108
## X6 1 1 1 1 1 0 1 6.003077 0.4415018 0.3883115
## X6.1 1 0 1 1 1 1 1 6.522241 0.4368254 0.3831897
## X6.2 1 1 0 1 1 1 1 6.695260 0.4352669 0.3814828
## X7 1 1 1 1 1 1 1 8.000000 0.4415295 0.3784764
model.caregivers1 <- lm(BURDEN ~ MEM + SOCIALSU, data = train)
summary(model.caregivers1)
##
## Call:
## lm(formula = BURDEN ~ MEM + SOCIALSU, data = train)
##
## Residuals:
## Min 1Q Median 3Q Max
## -34.45 -11.63 0.41 12.39 34.81
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 117.3212 14.9191 7.864 4.24e-11 ***
## MEM 0.5852 0.1265 4.626 1.76e-05 ***
## SOCIALSU -0.4807 0.1091 -4.406 3.89e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 16.66 on 67 degrees of freedom
## Multiple R-squared: 0.3909, Adjusted R-squared: 0.3727
## F-statistic: 21.5 on 2 and 67 DF, p-value: 6.121e-08
plot(model.caregivers1, 1:2)


vif(model.caregivers1)
## MEM SOCIALSU
## 1.002613 1.002613
test_new = dplyr::select(test, MEM, SOCIALSU)
my.yhat = predict(model.caregivers1, newdata = test_new, type = "response")
cor(my.yhat, test$BURDEN)^2
## [1] 0.5084713
0.4373-0.3683508
## [1] 0.0689492