Saya mencoba menjalankan transformasi boxcox dengan kode berikut:
urban1 <- subset(ski,urban <= 4,na.rm=TRUE)
ski$gender <- as.numeric((as.character(ski$gender)),na.rm=TRUE)
urban1 <- as.numeric((as.character(urban1)))
x <- (ski$gender*urban1)
y <- ski$EPSI.
bc <- boxcox(y ~ x)
(trans <- bc$x[which.max(bc$y)])
model3 <- lm(y ~ x)
model3new <- lm(y^trans ~ x)
ski$EPSI. <- ski$EPSI. + 1
Tetapi saya terus mendapatkan kesalahan ini:
Error in lm.fit(x,y,offset = offset, singular.ok = singular.ok, ...) : 0 (non-NA) cases Calls:
Terima kasih sebelumnya!
Pesan kesalahan
lm.fit(x,y,offset = offset, singular.ok = singular.ok, ...) : 0 (non-NA) kasus
dihasilkan oleh perintah lm(y ~ x)
ketika variabel x
atau y
(atau keduanya) hanya memiliki NA.
Berikut ini adalah contohnya:
n <- 10
x <- rnorm(n,1)
y <- rep(NA,n)
lm(y ~ x)
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
0 (non-NA) cases
Dalam kode Anda, saya sarankan untuk menguji (tepat sebelum perintah lm
Anda) jika salah satu variabel Anda memiliki semua NA menggunakan:
all(is.na(x))
all(is.na(y))
all(is.na(y^trans))
Dalam contoh saya:
all(is.na(y))
[1] TRUE
Kesalahan dapat dipicu oleh NA's dalam data Anda atau transformasi yang buruk
#From the mtcars dataset
mpg.reg3 <- lm(mpg ~ cylinders + displacement + horsepower + weight + acceleration + year + origin, data=Auto, na.action=na.exclude)
Perhatikan argumen na.action=
. Mengatur ini ke na.exclude
akan memungkinkan fungsi lm
untuk mengabaikan NA's dalam data Anda. Pilihan lain adalah na.omit
yang bertindak dengan cara yang sedikit berbeda.
Masalah lainnya mungkin transformasi data Anda yang buruk - periksa kembali istilah interaksi dan manipulasi Anda.