Kesalahan dalam lm.fit(x,y,offset = offset, singular.ok,) 0 kasus non-NA dengan rumus boxcox

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

Tapi saya terus mendapatkan kesalahan ini:

Kesalahan dalam lm.fit(x,y,offset = offset, singular.ok = singular.ok, ...) : 0 (non-NA) case Panggilan: ... eval -> eval -> boxcar -> boxcar. rumus -> lm -> lm.fit Eksekusi dihentikan

Terima kasih sebelumnya!


person Vickie Ip    schedule 28.04.2017    source sumber
comment
Apakah Anda yakin tentang baris ke-2? Jika ada nilai yang hilang dalam kode Anda, ganti data Anda dengan nilai yang salah. Bolehkah saya menyarankan Anda untuk mengonversi kode Anda di dunia tidyverse, dan khususnya dplyr?   -  person YCR    schedule 28.04.2017


Jawaban (2)


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 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 menyarankan untuk menguji (tepat sebelum perintah lm Anda) apakah salah satu variabel Anda memiliki semua NA yang menggunakan:

all(is.na(x))
all(is.na(y))
all(is.na(y^trans))

Dalam contoh saya:

all(is.na(y))
[1] TRUE
person Marco Sandri    schedule 28.04.2017
comment
Saya mendapatkan kesalahan ini setelah menghapus semua kolom yang sepenuhnya NA. Mungkinkah ada alasan tambahan untuk mendapatkan kesalahan ini? - person Tom; 04.09.2018
comment
@TomKisters Tolong Tom, bisakah Anda berbagi informasi lebih lanjut tentang masalah Anda? - person Marco Sandri; 09.09.2018

Kesalahan ini dapat dipicu oleh NA 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=. Menyetelnya ke na.exclude akan memungkinkan fungsi lm mengabaikan NA di data Anda. Pilihan lainnya adalah na.omit yang bertindak dengan cara yang sedikit berbeda.

Masalah lainnya mungkin adalah transformasi data Anda yang buruk - periksa kembali ketentuan interaksi dan manipulasi Anda.

person ToastyDre    schedule 26.10.2018