gam 関数を使用して、mgcv パッケージで階層型 GAM を実行したいと考えています。brms で同じ形式のモデルを問題なく使用しました。最終的に brms で同じモデルを再実行しますが、日曜日にアブストラクトの提出期限があるため、mgcv でモデルを試してより迅速な結果を得たいと考えています。
私の式:
f = MDS1 ~ 1 + exposed + s(YEAR,bs = "tp")+ s(LEVEL, bs = "tp") +
t2(YEAR, SITE, bs = c("tp","re")) + s(INTERTIDAL_TRANSECT, bs = "re",
m = 1)
私のデータ:
Classes ‘data.table’ and 'data.frame': 3992 obs. of 9 variables:
$ unique_id : chr "Babb's Cove-1-0-1988" "Babb's Cove-1-0-1989" "Babb's Cove-1-0-1990" "Babb's Cove-1-0-1992" ...
$ MDS1 : num -0.607 -0.607 -0.607 -0.607 -0.607 ...
$ MDS2 : num 0.19 0.19 0.19 0.19 0.19 ...
$ MDS3 : num 0.36 0.36 0.36 0.36 0.36 ...
$ SITE : chr "Babb's Cove" "Babb's Cove" "Babb's Cove" "Babb's Cove" ...
$ INTERTIDAL_TRANSECT: Factor w/ 21 levels "1","2","5","7",..: 1 1 1 1 1 1 1 1 1 1 ...
$ LEVEL : num 0 0 0 0 0 0 0 1 1 1 ...
$ YEAR : num 1988 1989 1990 1992 1994 ...
$ exposed : Factor w/ 2 levels "1","2": 2 2 2 2 2 2 2 2 2 2 ...
- attr(*, ".internal.selfref")=<externalptr>
- attr(*, "sorted")= chr "unique_id"
2 つの質問があります。
モデルを適合させようとすると、次のようfit_count <- gam(f, data = count_merge, method = "REML", family = gaussian())
になります。
Error in names(dat) <- object$term :
attribut 'names' [2] doit être de même longueur que le vecteur [1]
式の t2() 引数に何かがあると思います。
b) 通常、GAM を brms で実行します。そのモデルの式は次のとおりです。
MDS1 ~ 1 + exposed + s(YEAR,bs = "tp")+ s(LEVEL, bs = "tp") + t2(YEAR, SITE, bs = c("tp","re"), full = T) +(1|r|INTERTIDAL_TRANSECT),
family = gaussian()
数式を mgcv::gam に適合させる方法は大丈夫ですか?