簡體   English   中英

如何修復mgcv中gam()中的錯誤'terms.formula(公式,數據=數據)中的錯誤:ExtractVars中的無效model公式'

[英]How to fix error in gam() in mgcv 'Error in terms.formula(formula, data = data) : invalid model formula in ExtractVars'

在 mgcv package 中安裝 gam() 時,我無法解決這個看似簡單的錯誤消息。 非常感謝任何幫助。

'terms.formula(公式,數據 = 數據)中的錯誤:ExtractVars 中的 model 公式無效'

我已經閱讀了可以在 stackoverflow 上找到的所有類似帖子,但仍然無法解決這個問題。 其他一些帖子似乎表明,如果變量名包含空格,則可能會發生這種情況,但我的錯誤並非如此。

加載 package

library(mgcv)

讀入數據

join <- read.csv("join.csv", header = TRUE)

定義因素

join$site <- factor(join$site)
join$season <- factor(join$season)
join$RHDV_transmis_cat <- factor(join$RHDV_transmis_cat)
join$RHDV2_arrive_cat <- factor(join$RHDV2_arrive_cat)

運行 model

gam_1 <- gam(RHDV_transmis_cat ~  s(age) + s(weight) + s(site) + s(RCV) + s(season, bs = "cc") + s(preceeding_mth_temp) + s(preceeding_mth_rain) + s(RHDV2_arrive_cat) + s(abun_adjust_dist) + te(abun_adjust_dist, RHDV2_arrive_cat, by ="fs") + s(RHDV2_arrive_cat, season, bs = "re"), data = join, family = binomial, method = "REML", select = TRUE)

數據可在此處獲得

我認為你有一個誤解和一個錯字。 請注意,在te()平滑中,你有by = "fs"我認為你打算使用bs = "fs"

其次,如果你想要一個”fs”平滑,你不使用te() ,你使用s()來設置它。 你在哪里

te(abun_adjust_dist, RHDV2_arrive_cat, by = "fs")

你要

s(abun_adjust_dist, RHDV2_arrive_cat, bs = "fs")

假設您想要abun_adjust_dist級別的RHDV2_arrive_cat隨機平滑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM