R'de çoklu bağımlı değişkenlere sahip genelleştirilmiş doğrusal bir model nasıl yapılır?


17

Altı bağımlı değişken (veri saymak) ve birkaç bağımsız değişken var, bir MMR komut dosyası şöyle gider görüyorum:

my.model <- lm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn)

Ancak, verilerim sayıldığından, genelleştirilmiş doğrusal bir model kullanmak istiyorum ve bunu denedim:

my.model <- glm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn, family="poisson")

Ve şu hata mesajı görünüyor:

Error in glm.fit(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,  : 
  (subscript) logical subscript too long`

Birisi bana bu hata mesajını veya sorunumu çözmenin bir yolunu açıklayabilir mi?


@Giorgio Spedicato'nun cevabını takip etmek: lmbir matris verirken olduğu gibi her bağımlı değişkeni ayrı ayrı ele alan bir dizi model istediğinizi varsayalım mı?
konjugateprior

Analizin ikinci bölümünü özlüyorum. : Sonra MMR (değişkenli çoklu regresyon) olarak lm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn) sana mecbur
Juan

Ben belki sadece bu soruyu cevaplamak için benim cevap değişiklik yaptık. Ayrıca, yorumlarda iade basmamayı unutmayın :-)
conjugateprior

Analizin ikinci bölümünü özlüyorum. Bir lm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn) MMR'de (Çok Değişkenli Çoklu Regresyon) sonra: manova () komutunu şu şekilde kullanmalıyım: summary(manova(my.model)) çok değişkenli bir varyans analizi yapmak ve her bağımsız değişkenin önemini görmek için. Bu nihai hedef.
Juan

Ne manova ne de anova bu tür veriler için tanımlanmamıştır, dolayısıyla sunulmamaktadır. Ancak her IV'ün etkisini görmek istiyorsanız, sağlanan regresyon tablosu summaryher DV için size verecektir.
konjugateprior

Yanıtlar:


11

Kısa cevap, bu şekilde glmçalışmaz. lmYaratacak mlmkolayca genelleme olamazdı zaten bunu bir matris verirseniz nesneleri, ancak bu yaygın jenerik desteklenmez ve glmkullanıcılar lojistik regresyon modelleri için çift sütun bağımlı değişkenleri belirtmek gerekiyor çünkü.

Çözüm, modelleri ayrı ayrı takmaktır. IV'lerinizin ve DV'lerinizin adı verilen ddve sorunuzun sorulduğu şekilde etiketlendiği bir data.frame içinde yaşadığını varsayın . Aşağıdaki kod, kullandıkları bağımlı değişkenin adıyla dizine eklenen takılı modellerin bir listesini yapar:

models <- list()
dvnames <- paste("DV", 1:6, sep='')
ivnames <- paste("IV", 1:n, sep='') ## for some value of n

for (y in dvnames){
  form <- formula(paste(y, "~", ivnames))
  models[[y]] <- glm(form, data=dd, family='poisson') 
}

Sonuçları incelemek için, normal işlevlerinizi aşağıdaki gibi a lapply:

lapply(models, summary) ## summarize each model

Şüphesiz, bunu R'de yapmanın daha zarif yolları yoktur, ancak bu işe yaramalıdır.


6

Sorununuzu ele alan Çok Değişkenli Genelleştirilmiş Doğrusal (Karışık) Modeller olduğu söylendi. Ben bu konuda uzman değilim, ama SABER belgelerine ve çok değişkenli GLM'ler hakkındaki bu kitaba bir göz atacağım. Belki yardım ederler ...


2
İlginç bir nokta getiriyorsunuz (+1). Çok değişkenli GLM'ler kesinlikle mevcuttur. Öte yandan, veren lmbir bağımlı değişken için bir matris muhtemelen çok değişkenli modelin ifadesi olarak değil, daha sözdizimsel şeker olarak görülmelidir: o eğer vardı o olurdu çok değişkenli (normal) modeli hatalarıdır biri ' küresel ', yani bağımlı değişkenin her elemanı üzerinde ayrı regresyonlar uygulayabileceğiniz ve aynı cevabı alabileceğiniz bir tane.
konjugateprior
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.