Skip to content

[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)

Iklan

From → Script

Tinggalkan sebuah Komentar

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: