Otokorelasyonlu artık paternler, uygun korelasyon yapılarına sahip modellerde bile ve en iyi modellerin nasıl seçileceği?


17

bağlam

Bu soru R kullanır, ancak genel istatistiksel konularla ilgilidir.

Ölüm faktörlerinin (hastalık ve parazitliğe bağlı ölüm yüzdesi) zaman içinde güve popülasyonu büyüme hızı üzerindeki etkilerini analiz ediyorum, burada larva popülasyonları 8 yıl boyunca yılda bir kez 12 bölgeden örneklendi. Nüfus artış hızı verileri zaman içinde net fakat düzensiz döngüsel bir eğilim gösterir.

Basit bir genelleştirilmiş doğrusal modelden (büyüme oranı ~% hastalık +% parazitizm + yıl) kalıntılar, zaman içinde benzer şekilde açık ama düzensiz döngüsel bir eğilim göstermiştir. Bu nedenle, aynı formdaki genelleştirilmiş en küçük kareler modelleri, zamansal otokorelasyon, örneğin bileşik simetrisi, otoregresif işlem sırası 1 ve otoregresif hareketli ortalama korelasyon yapıları ile başa çıkmak için uygun korelasyon yapılarına sahip verilere de bağlanmıştır.

Modellerin tümü aynı sabit etkileri içerir, AIC kullanılarak karşılaştırılır ve REML tarafından takılır (farklı korelasyon yapılarının AIC ile karşılaştırılmasına izin vermek için). R paket nlme ve gls işlevini kullanıyorum.

Soru 1

GLS modellerinin kalıntıları, zamana karşı çizildiğinde hala neredeyse aynı çevrimsel kalıplar sergilemektedir. Otokorelasyon yapısını doğru bir şekilde açıklayan modellerde bile bu tür kalıplar her zaman kalacak mı?

İkinci sorumun altındaki R'de bazı basitleştirilmiş ama benzer veriler simüle ettim, bu da, şimdi yanlış olduğunu bildiğim model artıklarında geçici olarak otokorelasyonlu modelleri değerlendirmek için gerekli yöntemleri anladığım gerçeğe dayanan sorunu gösteriyor (cevaba bakınız).

soru 2

Verilerime olası tüm olası korelasyon yapıları ile GLS modelleri taktım, ancak hiçbiri herhangi bir korelasyon yapısı olmadan GLM'den daha iyi uymuyor: sadece bir GLS modeli marjinal olarak daha iyi (AIC puanı = 1.8 daha düşük), daha yüksek AIC değerleri. Bununla birlikte, bu sadece tüm modellerin GLS modellerinin açıkça daha iyi olduğu ML değil REML tarafından takıldığı durumdur, ancak istatistik kitaplarından, REML'yi sadece farklı korelasyon yapılarına ve aynı sabit etkilere sahip modelleri nedenlerle karşılaştırmak için kullanmanız gerektiğini anlıyorum. Burada detay vermeyeceğim.

Verilerin açıkça geçici olarak otokorelasyonlu doğası göz önüne alındığında, hiçbir model basit GLM'den orta derecede daha iyi değilse, uygun bir yöntem kullandığımı varsayarak, hangi modelin çıkarım için kullanılacağına karar vermenin en uygun yolu nedir (sonunda kullanmak istiyorum) Farklı değişken kombinasyonlarını karşılaştırmak için AIC)?

Uygun korelasyon yapıları olan ve olmayan modellerde kalan kalıpları araştıran Q1 'simülasyonu'

'Zaman'ın döngüsel etkisi ve' x'in pozitif doğrusal etkisi ile simüle edilmiş yanıt değişkeni oluşturun:

time <- 1:50
x <- sample(rep(1:25,each=2),50)
y <- rnorm(50,5,5) + (5 + 15*sin(2*pi*time/25)) + (x/1)

y, 'zaman' üzerinde rasgele değişikliklerle döngüsel bir eğilim göstermelidir:

plot(time,y)

Ve rastgele varyasyon ile 'x' ile pozitif doğrusal bir ilişki:

plot(x,y)

"Y ~ time + x" için basit bir doğrusal katkı modeli oluşturun:

require(nlme)
m1 <- gls(y ~ time + x, method="REML")

Model, 'zamana' karşı çizildiğinde, beklendiği gibi, artıklarda net döngüsel desenler gösterir:

plot(time, m1$residuals)

Ve 'x' ile işaretlendiğinde artıklarda herhangi bir model veya eğilimin güzel, net olmaması ne olmalıdır:

plot(x, m1$residuals)

AIC kullanılarak değerlendirildiğinde, 1. siparişin otoregresif korelasyon yapısını içeren basit bir "y ~ time + x" modeli, otokorelasyon yapısı nedeniyle verilere önceki modele göre çok daha iyi uymalıdır:

m2 <- gls(y ~ time + x, correlation = corAR1(form=~time), method="REML")
AIC(m1,m2)

Bununla birlikte, model yine de hemen hemen aynı 'geçici olarak' otokorelasyonlu kalıntıları göstermelidir:

plot(time, m2$residuals)

Herhangi bir tavsiye için çok teşekkür ederim.


Modeliniz, döngülerin neden olduğu zaman bağımlılığını (benzetilmiş durumunuz için bile) düzgün bir şekilde yakalamaz, bu nedenle ' doğru hesap ' karakterizasyonu uygun değildir. Kalıntılarınızda hala desen olmasının nedeni muhtemelen bundan kaynaklanıyor.
Glen_b

Bence geriye doğru sahipsin. Tahminler, REML yerine tam maksimum olabilirlik kullanılarak elde edilmelidir. Olasılık oranı testlerini yapmak için yöntem = "ML" seçilmesi gerekir ve farklı tahmin edicilere sahip modelleri karşılaştırmak için AIC'yi kullanmak istiyorsanız gereklidir. REML, varyans bileşenleri ve standart hatalar için ML'ye göre daha iyi tahminler sağlar. Farklı modelleri karşılaştırmak için method = "ML" kullanıldığında, bazen son modelin method = "REML" kullanılarak yeniden takılması ve REML uyumundan tahminlerin ve standart hataların son çıkarım için kullanılması önerilir.
theforestecologist

Yanıtlar:


24

Q1

Burada yanlış iki şey yapıyorsunuz. Birincisi genellikle kötü bir şeydir; yok modeli nesneleri içine genel defterleri ve bileşenleri söker. Bu durumda ekstraktör fonksiyonlarını kullanmayı öğrenin resid(). Bu durumda yararlı bir şeyler alıyorsanız ancak böyle bir GLM olarak modeli nesnenin farklı türde bir olsaydı glm(), o zaman mod$residualsiçerecektir çalışan son IRLS gelen iterasyon artığı ve genellikle bir şey vardır yok istiyorum!

Yanlış yaptığınız ikinci şey de beni yakalayan bir şey. Çıkardığınız kalıntılar (ve eğer kullansaydınız da çıkarmış olacaksınız resid()) ham veya tepki kalıntılarıdır. Esasen, sadece sabit etkiler terimlerini dikkate alarak , takılan değerler ile yanıtın gözlemlenen değerleri arasındaki farktır . Bu değerler m1, sabit etkiler (veya tercih ederseniz, doğrusal öngörücü) iki modelde ( ~ time + x) aynı olduğu için aynı kalıntı otokorelasyonu içerecektir .

Belirttiğiniz korelasyon terimini içeren kalıntılar elde etmek için normalleştirilmiş kalıntılara ihtiyacınız vardır . Bunları yaparak şunları elde edersiniz:

resid(m1, type = "normalized")

Bu (ve mevcut diğer kalıntı türleri) ?residuals.gls:

type: an optional character string specifying the type of residuals
      to be used. If ‘"response"’, the "raw" residuals (observed -
      fitted) are used; else, if ‘"pearson"’, the standardized
      residuals (raw residuals divided by the corresponding
      standard errors) are used; else, if ‘"normalized"’, the
      normalized residuals (standardized residuals pre-multiplied
      by the inverse square-root factor of the estimated error
      correlation matrix) are used. Partial matching of arguments
      is used, so only the first character needs to be provided.
      Defaults to ‘"response"’.

Karşılaştırma yoluyla, işte ham (yanıt) ve normalize edilmiş artıkların ACF'leri

layout(matrix(1:2))
acf(resid(m2))
acf(resid(m2, type = "normalized"))
layout(1)

resim açıklamasını buraya girin

Bunun neden olduğunu ve ham artıkların korelasyon terimini içermediği yerleri görmek için taktığınız modeli düşünün

y=β0+β1tbenme+β2x+ε

nerede

ε~N-(0,σ2Λ)

Λρ^ρ|d|d

Varsayılan değer olarak döndürülen ham artıklar resid(m2)yalnızca doğrusal tahmin parçasından, dolayısıyla bu bitten

β0+β1tbenme+β2x

Λ

Q2

Görünüşe göre doğrusal olmayan bir eğilimi doğrusal bir işleve uydurmaya çalışıyorsunuz timeve bir AR (1) (veya diğer yapılarla) "trend" e uyum eksikliğini açıklıyoruz. Verileriniz burada verdiğiniz örnek veriler gibi bir şeyse, ortak değişkenlerin düzgün bir işlevine izin vermek için bir GAM takarım. Bu model

y=β0+f1(tbenme)+f2(x)+ε

Λ=ben

library("mgcv")
m3 <- gam(y ~ s(time) + s(x), select = TRUE, method = "REML")

burada select = TRUE, modelin terimlerin herhangi birini modelden kaldırmasına izin vermek için biraz daralma uygulanır.

Bu model verir

> summary(m3)

Family: gaussian 
Link function: identity 

Formula:
y ~ s(time) + s(x)

Parametric coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  23.1532     0.7104   32.59   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
          edf Ref.df      F  p-value    
s(time) 8.041      9 26.364  < 2e-16 ***
s(x)    1.922      9  9.749 1.09e-14 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

ve şöyle görünen yumuşak terimlere sahiptir:

resim açıklamasını buraya girin

Bu modelin kalıntıları da daha iyi davranır (ham kalıntılar)

acf(resid(m3))

resim açıklamasını buraya girin

Şimdi bir uyarı sözü; fonksiyonların ne kadar düzgün veya kıvrımlı olduğuna karar veren yöntemlerin verilerin bağımsız olduğunu varsayması nedeniyle zaman serilerinin düzeltilmesiyle ilgili bir sorun vardır. Bunun pratik terimlerle ifade ettiği şey, zamanın ( s(time)) düzgün işlevinin, sadece temel eğilim değil, gerçekten rasgele otokorelasyonlu hata olan bilgilere sığabilmesidir. Bu nedenle zaman serileri verilerine düzleştirici takarken çok dikkatli olmalısınız.

Orada bu yuvarlak birçok yolu vardır, ancak tek yönlü yoluyla modelin yerleştirilmesi için anahtara olduğu gamm()çağıran lme()içten ve kullanmak olanak sağlayan correlationsizin için kullanılan argüman gls()modeli. İşte bir örnek

mm1 <- gamm(y ~ s(time, k = 6, fx = TRUE) + s(x), select = TRUE,
            method = "REML")
mm2 <- gamm(y ~ s(time, k = 6, fx = TRUE) + s(x), select = TRUE,
            method = "REML", correlation = corAR1(form = ~ time))

s(time)Bu verilerle bir tanımlanabilirlik sorunu olduğu için özgürlük derecelerini düzeltmem gerektiğini unutmayın . Model kıpır kıpır olabilir s(time)ve AR (1) (ρ=0s(time)ρ>>.5

AR (1) olan model, AR (1) olmadan model üzerinde önemli bir gelişme göstermez:

> anova(mm1$lme, mm2$lme)
        Model df      AIC      BIC    logLik   Test   L.Ratio p-value
mm1$lme     1  9 301.5986 317.4494 -141.7993                         
mm2$lme     2 10 303.4168 321.0288 -141.7084 1 vs 2 0.1817652  0.6699

$ \ Hat {\ rho}} için tahmine bakarsak,

> intervals(mm2$lme)
....

 Correlation structure:
         lower      est.     upper
Phi -0.2696671 0.0756494 0.4037265
attr(,"label")
[1] "Correlation structure:"

Phi dediğim şey neredeρρ


Gavin'e bu mükemmel, derinlemesine ayrıntılı cevap için çok teşekkür ederim. Verilerim GAM'lerle niteliksel olarak benzer bir sonuç üretiyor gibi görünüyor, çünkü bir GAM'ı standart korelasyon yapıları ile ve olmadan karşılaştırırken çok az iyileşme veya uyumun kötüleşmesi (AIC / AICc ile değerlendirilir). Siz / herkes biliyor musunuz: verilerde / artıklarda çok açık, düzensiz, döngüsel eğilimler varsa, o zaman hiçbiri olmayan bir model yerine en uygun korelasyon yapısına bağlı kalmak en uygun olur mu? Tekrar teşekkürler.
JupiterM104

1
Süper geç geliyor, ama Gavin bu harika yanıt için teşekkür etmek istedim. Bana bir ton yardım etti.
giraffehere
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.