Lanjut ke konten

[R: function] Leave-one-out cross-validation r-squared (q-squared)

November 26, 2013

Contoh untuk data dalam bentuk tabel (misal bernama “data”) dengan variabel tergantung di kolom pertama dan dua variabel bebas di kolom kedua dan ketiga. Untuk kasus berbeda jumlah variabel bebas silakan diadaptasi.

Script:

qsquared.lm <- function(dataframe){

ori.y=dataframe[,1]
ori.x1=dataframe[,2]
ori.x2=dataframe[,3]
reg=lm(ori.y~ori.x1+ori.x2)
sum.reg=summary(reg)
print(sum.reg$r.squared)

new.y=NULL

for (i in 1:length(ori.y)){
y=dataframe[-i,1]
x1=dataframe[-i,2]
x2=dataframe[-i,3]
reg=lm(y~x1+x2)
ybaru=(coef(reg)[1])+(coef(reg)[2]*data[i,2])+(coef(reg)[3]*data[i,3])
z=data.frame(ybaru)[1,1]
new.y=c(new.y,z)
}
new.y=data.frame(new.y)
print(new.y)
sum.regbaru=summary(lm(ori.y~new.y$new.y))
print(“q.squared=”)
print(sum.regbaru$r.squared)
}

Cara penggunaan:

qsquared.lm(data)

From → Script

Tinggalkan sebuah Komentar

Tinggalkan komentar