適切な相関構造を持つモデルにも自己相関残差パターンが残っていますか?また、最適なモデルを選択する方法はありますか?


17

環境

この質問ではRを使用していますが、一般的な統計の問題に関するものです。

私は、幼虫の個体数を年に1回、8年間にわたって12箇所からサンプリングした、ガの個体数の成長率に対する死亡率(病気と寄生による死亡率)の影響を分析しています。人口増加率データは、時間の経過とともに明確だが不規則な周期的傾向を示しています。

単純な一般化線形モデルからの残差(成長率〜%disease +%parasitism + year)は、同様に明確ではあるが不規則な周期的傾向を経時的に示しました。したがって、同じ形式の一般化最小二乗モデルも、複合対称性、自己回帰プロセス次数1、自己回帰移動平均相関構造などの時間的自己相関に対処するために、適切な相関構造でデータに適合しました。

モデルはすべて同じ固定効果を含み、AICを使用して比較され、REMLによって適合されました(AICによる異なる相関構造の比較を可能にするため)。Rパッケージnlmeとgls関数を使用しています。

質問1

GLSモデルの残差は、時間に対してプロットしたときに、ほぼ同じ周期的なパターンを表示します。自己相関構造を正確に説明するモデルであっても、そのようなパターンは常に残りますか?

2番目の質問の下で、Rのいくつかの単純化された類似のデータをシミュレートしました。これは、モデル残差の時間的に自己相関するパターンを評価するために必要なメソッドの現在の理解に基づいて問題示していますが、これは間違っていることがわかっています(回答を参照)。

質問2

考えられるすべての相関構造を持つGLSモデルをデータに適合させましたが、実際には相関構造のないGLMよりも実質的に良好な適合はありません:1つのGLSモデルだけがわずかに優れています(AICスコア= 1.8低い)より高いAIC値。ただし、これはすべてのモデルがGLSモデルが明らかにはるかに優れているMLではなくREMLによって適合されている場合にのみ当てはまりますが、統計書から、REMLを使用して異なる相関構造と同じ固定効果を持つモデルを比較する必要があることを理解していますここでは詳しく説明しません。

明らかに時間的に自己相関するデータの性質を考えると、単純なGLMよりも適度に優れたモデルがない場合、適切な方法を使用していると仮定して、推論に使用するモデルを決定する最も適切な方法は何ですか(最終的に使用したい異なる変数の組み合わせを比較するAIC)?

適切な相関構造を持つモデルと持たないモデルの残差パターンを調査するQ1「シミュレーション」

「時間」の周期的効果と「x」の正の線形効果を持つシミュレートされた応答変数を生成します。

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は、ランダムな変動を伴う「時間」にわたって周期的な傾向を表示する必要があります。

plot(time,y)

そして、ランダムな変動を伴う「x」との正の線形関係:

plot(x,y)

「y〜時間+ x」の単純な線形加法モデルを作成します。

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

モデルは、予想されるように、「時間」に対してプロットされると、残差に明確な周期的パターンを表示します。

plot(time, m1$residuals)

そして、「x」に対してプロットされた場合、残差のパターンまたは傾向の明確で明確な欠如は次のようになります。

plot(x, m1$residuals)

AICを使用して評価した場合、自己相関構造のため、次数1の自己回帰相関構造を含む「y〜時間+ x」の単純なモデルは、以前のモデルよりもはるかにデータに適合します。

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

ただし、モデルは、ほぼ同一の「時間的」自己相関残差を表示するはずです。

plot(time, m2$residuals)

アドバイスありがとうございます。


モデルは、サイクルによって引き起こされる時間依存性を適切にキャプチャしません(シミュレートされた場合でも)。したがって、「正確に説明する」の特性化は適切ではありません。残差にまだパターンがある理由は、おそらくそのためです。
グレン_b-モニカの復元2013

後方に持っていると思います。REMLではなく、完全な最尤法を使用して推定値を取得する必要があります。method = "ML"の選択は、尤度比検定を実行するために必要であり、AICを使用して異なる予測子とモデルを比較する場合に必要です。REMLは、MLよりも分散成分と標準誤差のより良い推定値を提供します。method = "ML"を使用して異なるモデルを比較した場合、method = "REML"を使用して最終モデルを再調整し、REML適合からの推定値と標準誤差を最終推論に使用することが推奨される場合があります。
森林生態学者

回答:


24

Q1

ここで2つのことを間違っています。最初は一般的に悪いことです。一般に、モデルオブジェクトを掘り下げてコンポーネントをリッピングしないください。この場合、抽出関数の使用方法を学習しますresid()。この場合、あなたは何か役に立つを得ているが、あなたがそのようなからGLMなどのモデルオブジェクトの異なるタイプを、持っていた場合glm()、その後、mod$residuals含まれています作業の最後のIRLSから反復を残差を、あなたは一般的に何かありませんしたいです!

あなたが間違っている2番目のことは、私もキャッチしたものです。抽出した残差(使用した場合も抽出したはずの残差resid())は、生の残差または応答残差です。本質的にこれは、固定効果項のみを考慮に入れた、応答の近似値と観測値の差です。これらの値にはm1、2つのモデル(~ time + x)で固定効果(または、必要に応じて線形予測子)が同じであるため、それと同じ残留自己相関が含まれます。

指定した相関項を含む残差を取得するには、正規化された残差が必要です。これらを取得するには:

resid(m1, type = "normalized")

これ(および利用可能な他の種類の残差)については、?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"’.

比較のために、生(応答)および正規化された残差のACFを以下に示します。

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

ここに画像の説明を入力してください

これが起こっている理由、および生の残差に相関項が含まれていない場所を確認するには、近似したモデルを検討します

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

どこ

εN(0,σ2Λ)

そしてパラメータでAR(1)によって定義された相関行列である行列の非対角要素が値で満たされている、ここで、正の整数であります残差のペアの時間単位での分離。Λρ^ρ|d|d

によって返されるデフォルトである生の残差resid(m2)は線形予測子部分のみからのものであるため、このビットから

β0+β1time+β2x

したがって、これらには含まれる相関項に関する情報は含まれていません。Λ

Q2

timeAR(1)(または他の構造)の「トレンド」への適合の欠如を説明する線形関数で非線形トレンドを適合させようとしているようです。もしあなたのデータがここで与えたサンプルデータのようなものなら、GAMを適合させて共変量の滑らかな関数を可能にします。このモデルは

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

そして、最初に (恒等行列なので独立残差)と仮定することを除いて、GLSと同じ分布を仮定します。このモデルは次を使用して適合できますΛ=I

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

ここでselect = TRUE、モデルがモデルからいずれかの項を削除できるようにするために、余分な収縮が適用されます。

このモデルは

> 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

次のような滑らかな用語があります。

ここに画像の説明を入力してください

このモデルの残差もより適切に動作します(生の残差)

acf(resid(m3))

ここに画像の説明を入力してください

今度は注意が必要です。時系列の平滑化には問題があります。関数がどの程度滑らかであるか、波打つかを決定する方法は、データが独立していると想定しているためです。これが実際に意味することは、時間の滑らかな関数(s(time))が、基になるトレンドだけでなく、実際にランダムな自己相関エラーである情報に適合する可能性があることです。したがって、スムーザーを時系列データに適合させるときは十分に注意する必要があります。

これにはいくつかの方法がありますが、1つの方法は、モデルのフィッティングに切り替えることです。これにより、内部gamm()で呼び出し、モデルlme()に使用したcorrelation引数を使用できるようになりますgls()。ここに例があります

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)これらのデータには識別可能性の問題があるため、自由度を修正する必要があることに注意してください。モデルは、波状s(time)でAR(1)なし()、または線形(1自由度)で強力なAR(1)()である可能性があります。したがって、基になるトレンドの複雑さについて、経験に基づいた推測を行います。(このダミーデータにはあまり時間をかけませんでしたが、データを見て、時間の変動性に関する既存の知識を使用して、スプラインの適切な自由度数を決定する必要があります。)ρ > > 0.5ρ=0s(time)ρ>>.5

AR(1)を使用したモデルは、AR(1)を使用しないモデルと比べて大幅な改善はありません。

> 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}}の推定値を見ると、

> intervals(mm2$lme)
....

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

どこPhi私はと呼ばれるものです。したがって、0は可能な値です。推定値はゼロよりわずかに大きいため、モデルの適合にほとんど影響を与えないため、残留自己相関を仮定する強い先験的な理由がある場合は、モデルに残しておくことができます。ρρρ


優れた、詳細な回答をありがとう、Gavinに感謝します。私のデータはGAMと定性的に同様の結果を生み出しているように見えます。GAMと標準相関構造を比較した場合と比較しなかった場合、適合度はほとんど改善または悪化しません(AIC / AICcで評価)。あなた/誰もが知っています:データ/残差に非常に明確な不規則な周期的傾向がある場合、モデルなしではなく最も適切な相関構造に固執することが最も適切でしょうか?再度、感謝します。
JupiterM104

1
非常に遅れて来ますが、この素晴らしい反応についてGavinに感謝したかったです。たくさん助けてくれました。
キリン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.