mgcv パッケージを使用して gam モデルを実行すると、理解できない奇妙なエラー メッセージが表示されました。
「model.frame.default(式 = 死 ~ pm10 + Lag(resid1, 1) + : 変数の長さが異なります (「Lag(resid1, 1)」で見つかりました) でエラーが発生しました)」.
model1 で使用されている観測値の数は、逸脱残差の長さとまったく同じであるため、このエラーはデータ サイズや長さの違いには関係ないと思います。
ウェブ上でかなり関連するエラー メッセージを見つけましたここ、しかしその投稿には適切な回答がなかったので、私の問題には役に立ちません.
再現可能な例とデータは次のとおりです。
library(quantmod)
library(mgcv)
require(dlnm)
df <- chicagoNMMAPS
df1 <- df[,c("date","dow","death","temp","pm10")]
df1$trend<-seq(dim(df1)[1]) ### Create a time trend
モデルを実行する
model1<-gam(death ~ pm10 + s(trend,k=14*7)+ s(temp,k=5),
data=df1, na.action=na.omit, family=poisson)
逸脱残差を取得する
resid1 <- residuals(model1,type="deviance")
モデル 1 に 1 日遅れの逸脱を追加する
model1_1 <- update(model1,.~.+ Lag(resid1,1), na.action=na.omit)
model1_2<-gam(death ~ pm10 + s(trend,k=14*7)+ s(temp,k=5) + Lag(resid1,1), data=df1,
na.action=na.omit, family=poisson)
これらのモデルはどちらも同じエラー メッセージを生成しました。