Skip to content
Snippets Groups Projects
Commit a519d569 authored by Elias Ervelä's avatar Elias Ervelä
Browse files

Upload New File

parent 41e7a2c2
No related branches found
No related tags found
No related merge requests found
library(class)
#Exercise 3
credit=read.csv("credit.csv")
attach(credit)
#Make test and training samples
train=duration%%2==0
test=!train
credit.train=credit[train,]
credit.test=credit[test,]
Default.train=credit.train$Default
Default.test=credit.test$Default
#b)
train.X=cbind(duration,amount,installment,age,history,purpose,foreign,rent)[train,]
test.X=cbind(duration,amount,installment,age,history,purpose,foreign,rent)[!train,]
set.seed(1)
knn.pred=knn(train.X,test.X,Default.train,k=1)
table(knn.pred,Default.test)
mean(knn.pred!=Default.test)
#MSE 33.33%
knn.pred=knn(train.X,test.X,Default.train,k=3)
table(knn.pred,Default.test)
mean(knn.pred!=Default.test)
#MSE 28.6%
knn.pred=knn(train.X,test.X,Default.train,k=5)
table(knn.pred,Default.test)
mean(knn.pred!=Default.test)
#MSE 29%
knn.pred=knn(train.X,test.X,Default.train,k=10)
table(knn.pred,Default.test)
mean(knn.pred!=Default.test)
#MSE 26.5%
knn.pred=knn(train.X,test.X,Default.train,k=25)
table(knn.pred,Default.test)
mean(knn.pred!=Default.test)
#MSE 24.3%
#All methods perform worse than LDA QDA and Logit
#c)
#(i)
library(leaps)
library(ISLR)
College=ISLR::College
attach(College)
regfit.full = regsubsets(Outstate~.,data=College,nvmax=1)
summary(regfit.full)
#We choose Expend
#(ii) Smoothing spline
#Picking the degree of smoothing by cross-validation
par(mfrow=c(1,1))
fit=smooth.spline(Expend,Outstate,cv=TRUE)
fit
fit2=smooth.spline(Expend,Outstate,df=2)
plot(Expend,Outstate,cex=.5)
lines(fit,col="red",lwd=2)
lines(fit2,col="blue",lwd=2)
legend(35000,10000,legend=c("df=5","df=2"),col=c("red","purple"),lty=1)
#(iii) Local regression
fit=loess(Outstate~Expend,span=0.1,data=College)
fit
fit2=loess(Outstate~Expend,span=0.5,data=College)
fit2
expendlims=range(Expend)
expend.grid=seq(from=expendlims[1],to=expendlims[2])
plot(Expend,Outstate,cex=.5)
lines(expend.grid,predict(fit,data.frame(Expend=expend.grid)),col="red",lwd=2)
lines(expend.grid,predict(fit2,data.frame(Expend=expend.grid)),col="blue",lwd=2)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment