Karışık efekt modellerinde tahmin: rastgele efektlerle ne yapmalı?


13

Bu varsayımsal veri kümesini ele alalım:

set.seed(12345)

num.subjects <- 10

dose <- rep(c(1,10,50,100), num.subjects)
subject <- rep(1:num.subjects, each=4)
group <- rep(1:2, each=num.subjects/2*4)

response <- dose*dose/10 * group + rnorm(length(dose), 50, 30)

df <- data.frame(dose=dose, response=response, 
                 subject=subject, group=group)

Kullanabileceğimiz lmerastgele bir etki modeli ile tepkisini modellemek için:

require(nlme)
model <- lme(response ~ dose + group + dose*group, 
             random = ~1|subject, df)

predictÖrneğin, grup 1 genel bir öznenin 10 dozuna yanıtını almak için bu modelin sonucunu kullanmak istiyorum :

pred <- predict(model, newdata=list(dose=10, group=1))

Ancak, bu kod ile aşağıdaki hatayı alıyorum:

Error in predict.lme(model, newdata = list(dose = 10, group = 1)) : 
cannot evaluate groups for desired levels on 'newdata'

Ondan kurtulmak için yapmam gerek, örneğin

pred <- predict(model, newdata=list(dose=10, group=1, subject=5))

Bununla birlikte, bu benim için gerçekten bir anlam ifade etmiyor ... konu modelimde bir sıkıntı faktörü, bu yüzden onu dahil etmek için ne anlamı var predict? Veri kümesinde bulunmayan bir konu numarası koyarsam, predictdöner NA.

Bu durumda istenen davranış predictbu mu? Gerçekten bariz bir şeyi mi kaçırıyorum?


modelXβ+ZγyN(Xβ+Zγ,σ2I)Z
usεr11852

@ user11852: sadece açıklığa kavuşturmak için, örneğin aynı konu için tekrarlanan önlemler durumunda kullanılacak bir model olarak düşünüyorum.
nico

Aynı konuyla ilgili tahminler aradığınız göz önüne alındığında, neden o zaman hariç tutmalısınız? Nüfus düzeyi tahminleri istiyorsanız (hayırZ

2
@ user11852: Aynı konuda tahmin aramıyorum. Nüfus tahminlerini almak için çeşitli konularda tekrarlanan önlemler alıyorum. Deneysel cevabım olduğu için zaten test ettiğim konuları umursamıyorum ... Belirli bir grubun yeni bir konusunun uyarıcıya nasıl tepki vereceğini tahmin etmek istiyorum. Greg cevap gerçekten problemi çözüyor.
nico

Yanıtlar:


17

Yardıma bakarsanız , tahminlerin hangi seviyede yapılacağını belirleyen predict.lmebir levelargümana sahip olduğunu göreceksiniz . Varsayılan, en yüksek veya en içteki değerdir; bu, düzeyi belirtmezseniz, konu düzeyinde tahmin etmeye çalıştığı anlamına gelir. level=0İlk predictaramanızın bir parçası olarak (olmadan subject) belirtirseniz , nüfus düzeyinde tahmin verir ve bir konu numarasına ihtiyaç duymaz.

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.