Import data

library(readxl)
data <- read_excel("C:/Users/ASUS/Downloads/insurance.xlsx", sheet = "ini")
data
str(data)
tibble [150 × 5] (S3: tbl_df/tbl/data.frame)
 $ Hours Studied                   : num [1:150] 7 4 8 5 7 3 7 8 5 4 ...
 $ Previous Scores                 : num [1:150] 99 82 51 52 75 78 73 45 77 89 ...
 $ Sleep Hours                     : num [1:150] 9 4 7 5 8 9 5 4 8 4 ...
 $ Sample Question Papers Practiced: num [1:150] 1 2 2 2 5 6 6 6 2 1 ...
 $ Index                           : num [1:150] 9.1 6.5 4.5 3.6 6.6 6.1 6.3 4.2 6.1 6.9 ...

Pemodelan Klasik

summary(model_lm)

Call:
lm(formula = data$Index ~ data$`Hours Studied` + data$`Previous Scores` + 
    data$`Sleep Hours` + data$`Sample Question Papers Practiced`, 
    data = data)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.48396 -0.12654  0.01592  0.14003  0.38801 

Coefficients:
                                          Estimate Std. Error t value Pr(>|t|)    
(Intercept)                             -3.4876985  0.0990613 -35.207  < 2e-16 ***
data$`Hours Studied`                     0.2942557  0.0059664  49.319  < 2e-16 ***
data$`Previous Scores`                   0.1019539  0.0009303 109.593  < 2e-16 ***
data$`Sleep Hours`                       0.0477104  0.0086621   5.508 1.61e-07 ***
data$`Sample Question Papers Practiced`  0.0278128  0.0058683   4.739 5.06e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.191 on 145 degrees of freedom
Multiple R-squared:  0.9907,    Adjusted R-squared:  0.9904 
F-statistic:  3858 on 4 and 145 DF,  p-value: < 2.2e-16

\[R^2 = 0.9907 \] \[ \hat{Y}= -3.4876985 + 0.2942557X_1 + 0.1019539X_2 + 0.0477104X_3 + 0.0278128X_4 \]

Pemodelan Ridge

library(glmnet)
x <- matrix(c(data$`Hours Studied`, data$`Previous Scores`, data$`Sleep Hours`, data$`Sample Question Papers Practiced`), ncol = 4)
y <- (data$Index)
cv.r<-cv.glmnet(x,y,alpha=0);plot(cv.r)

best.lr<-cv.r$lambda.min
bestridge<-glmnet(x,y,alpha=0,lambda=best.lr);coef(bestridge)
5 x 1 sparse Matrix of class "dgCMatrix"
                     s0
(Intercept) -2.71314293
V1           0.27337114
V2           0.09361693
V3           0.03812178
V4           0.02479587
# Fungsi R-Square
rsq<-function(bestmodel,bestlambda,x,y){
 #y duga
 y.duga <- predict(bestmodel, s = bestlambda, newx = x)

 #JKG dan JKT
 jkt <- sum((y - mean(y))^2)
 jkg <- sum((y.duga- y)^2)

#find R-Squared
rsq <- 1 - jkg/jkt
return(rsq) 
}
#R-Square Ridge
rsq(bestridge,best.lr,x,y)
[1] 0.9843622

\[ R^2 = 0.9844 \] \[ \hat{Y}= -2.71314293 + 0.27337114X_1 + 0.09361693X_2 + 0.03812178X_3 + 0.02479587X_4 \]

Pemodelan Lasso

cv.l<-cv.glmnet(x,y,alpha=1);plot(cv.l)

Best Model

best.ll<-cv.l$lambda.min
bestlasso<-glmnet(x,y,alpha=1,lambda=best.ll);coef(bestlasso)
5 x 1 sparse Matrix of class "dgCMatrix"
                    s0
(Intercept) -3.4132745
V1           0.2919490
V2           0.1015992
V3           0.0436682
V4           0.0252132
#R-Square Lasso
rsq(bestlasso,best.ll,x,y)
[1] 0.9906484

\[ R^2 = 0.9906 \]

\[ \hat{Y}= -3.4132745 + 0.2919490X_1 + 0.1015992X_2 + 0.0436682X_3 + 0.0252132X_4 \]

Perbandingan R Square

rsqklasik <- 0.9907
rsqridge <- rsq(bestridge,best.lr,x,y)
rsqlasso <- rsq(bestlasso,best.ll,x,y)
rsqgab <- data.frame(c(rsqklasik,rsqridge,rsqlasso))

Terlihat dari perbandingan diatas bahwa R square terbesar diperoleh pada model klasik. Maka model terbaiknya adalah \[ \hat{Y}= -3.4876985 + 0.2942557X_1 + 0.1019539X_2 + 0.0477104X_3 + 0.0278128X_4 \].

LS0tDQp0aXRsZTogIlR1Z2FzIE1hbmRpcmkgUFNEIg0KYXV0aG9yIDogIlByYXRhbWEgRmFqcmlhbGR5IC0gRzE0MDEyMTEwODEiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIyBJbXBvcnQgZGF0YQ0KYGBge3J9DQpsaWJyYXJ5KHJlYWR4bCkNCmRhdGEgPC0gcmVhZF9leGNlbCgiQzovVXNlcnMvQVNVUy9Eb3dubG9hZHMvaW5zdXJhbmNlLnhsc3giLCBzaGVldCA9ICJpbmkiKQ0KZGF0YQ0Kc3RyKGRhdGEpDQpgYGANCg0KIyMgUGVtb2RlbGFuIEtsYXNpaw0KYGBge3J9DQpsaWJyYXJ5KGxtdGVzdCkNCm1vZGVsX2xtIDwtIGxtKGRhdGEkSW5kZXggfiBkYXRhJGBIb3VycyBTdHVkaWVkYCArIGRhdGEkYFByZXZpb3VzIFNjb3Jlc2AgKyBkYXRhJGBTbGVlcCBIb3Vyc2AgKyBkYXRhJGBTYW1wbGUgUXVlc3Rpb24gUGFwZXJzIFByYWN0aWNlZGAsIGRhdGEgPWRhdGEpDQpzdW1tYXJ5KG1vZGVsX2xtKQ0KYGBgDQokJFJeMiA9IDAuOTkwNyAkJA0KJCQgXGhhdHtZfT0gLTMuNDg3Njk4NSArIDAuMjk0MjU1N1hfMSArIDAuMTAxOTUzOVhfMiArIDAuMDQ3NzEwNFhfMyArIDAuMDI3ODEyOFhfNCAkJA0KDQoNCiMjIFBlbW9kZWxhbiBSaWRnZQ0KYGBge3J9DQpsaWJyYXJ5KGdsbW5ldCkNCnggPC0gbWF0cml4KGMoZGF0YSRgSG91cnMgU3R1ZGllZGAsIGRhdGEkYFByZXZpb3VzIFNjb3Jlc2AsIGRhdGEkYFNsZWVwIEhvdXJzYCwgZGF0YSRgU2FtcGxlIFF1ZXN0aW9uIFBhcGVycyBQcmFjdGljZWRgKSwgbmNvbCA9IDQpDQp5IDwtIChkYXRhJEluZGV4KQ0KY3YucjwtY3YuZ2xtbmV0KHgseSxhbHBoYT0wKTtwbG90KGN2LnIpDQpgYGANCg0KYGBge3J9DQpiZXN0LmxyPC1jdi5yJGxhbWJkYS5taW4NCmJlc3RyaWRnZTwtZ2xtbmV0KHgseSxhbHBoYT0wLGxhbWJkYT1iZXN0LmxyKTtjb2VmKGJlc3RyaWRnZSkNCmBgYA0KDQpgYGB7cn0NCiMgRnVuZ3NpIFItU3F1YXJlDQpyc3E8LWZ1bmN0aW9uKGJlc3Rtb2RlbCxiZXN0bGFtYmRhLHgseSl7DQogI3kgZHVnYQ0KIHkuZHVnYSA8LSBwcmVkaWN0KGJlc3Rtb2RlbCwgcyA9IGJlc3RsYW1iZGEsIG5ld3ggPSB4KQ0KDQogI0pLRyBkYW4gSktUDQogamt0IDwtIHN1bSgoeSAtIG1lYW4oeSkpXjIpDQogamtnIDwtIHN1bSgoeS5kdWdhLSB5KV4yKQ0KDQojZmluZCBSLVNxdWFyZWQNCnJzcSA8LSAxIC0gamtnL2prdA0KcmV0dXJuKHJzcSkgDQp9DQojUi1TcXVhcmUgUmlkZ2UNCnJzcShiZXN0cmlkZ2UsYmVzdC5scix4LHkpDQpgYGANCiQkIFJeMiA9IDAuOTg0NCAkJA0KJCQgXGhhdHtZfT0gLTIuNzEzMTQyOTMgKyAwLjI3MzM3MTE0WF8xICsgMC4wOTM2MTY5M1hfMiArIDAuMDM4MTIxNzhYXzMgKyAwLjAyNDc5NTg3WF80ICQkDQoNCg0KIyMgUGVtb2RlbGFuIExhc3NvDQpgYGB7cn0NCmN2Lmw8LWN2LmdsbW5ldCh4LHksYWxwaGE9MSk7cGxvdChjdi5sKQ0KYGBgDQoNCiMjIyBCZXN0IE1vZGVsDQpgYGB7cn0NCmJlc3QubGw8LWN2LmwkbGFtYmRhLm1pbg0KYmVzdGxhc3NvPC1nbG1uZXQoeCx5LGFscGhhPTEsbGFtYmRhPWJlc3QubGwpO2NvZWYoYmVzdGxhc3NvKQ0KI1ItU3F1YXJlIExhc3NvDQpyc3EoYmVzdGxhc3NvLGJlc3QubGwseCx5KQ0KYGBgDQokJCBSXjIgPSAwLjk5MDYgJCQNCg0KJCQgXGhhdHtZfT0gLTMuNDEzMjc0NSArIDAuMjkxOTQ5MFhfMSArIDAuMTAxNTk5MlhfMiArIDAuMDQzNjY4MlhfMyArIDAuMDI1MjEzMlhfNCAkJA0KDQojIyBQZXJiYW5kaW5nYW4gUiBTcXVhcmUNCmBgYHtyfQ0KcnNxa2xhc2lrIDwtIDAuOTkwNw0KcnNxcmlkZ2UgPC0gcnNxKGJlc3RyaWRnZSxiZXN0LmxyLHgseSkNCnJzcWxhc3NvIDwtIHJzcShiZXN0bGFzc28sYmVzdC5sbCx4LHkpDQpyc3FnYWIgPC0gZGF0YS5mcmFtZShjKHJzcWtsYXNpayxyc3FyaWRnZSxyc3FsYXNzbykpDQpgYGANCg0KVGVybGloYXQgZGFyaSBwZXJiYW5kaW5nYW4gZGlhdGFzIGJhaHdhIFIgc3F1YXJlIHRlcmJlc2FyIGRpcGVyb2xlaCBwYWRhIG1vZGVsIGtsYXNpay4gTWFrYSBtb2RlbCB0ZXJiYWlrbnlhIGFkYWxhaCAkJCBcaGF0e1l9PSAtMy40ODc2OTg1ICsgMC4yOTQyNTU3WF8xICsgMC4xMDE5NTM5WF8yICsgMC4wNDc3MTA0WF8zICsgMC4wMjc4MTI4WF80ICQkLg==