假设您正在使用R
并将数据存储在数据框中,M
.然后我就知道了
g <- glm(Y ~ ., data=M)
Run Code Online (Sandbox Code Playgroud)
将自动拟合模型,其中Y
是因变量,其他所有列M
都是预测变量.是否有一种类似的简单方法来额外包含每两种方式的交互?
在R包中spatstat
(我使用的是当前版本1.31-0
),有一个选项use.gam
.将此设置为true时,可以在线性预测器中包含平滑项,与使用R包时的方式相同mgcv
.例如,
g <- ppm(nztrees, ~1+s(x,y), use.gam=TRUE)
Run Code Online (Sandbox Code Playgroud)
现在,如果我想要一个置信的置信区间,你通常可以使用summary
或vcov
,当你不使用时工作gam
但是当你使用gam时失败
vcov(g)
Run Code Online (Sandbox Code Playgroud)
它给出了错误消息
Error in model.frame.default(formula = fmla, data =
list(.mpl.W = c(7.09716796875, :invalid type (list) for variable 's(x, y)'
Run Code Online (Sandbox Code Playgroud)
我知道这个标准误差近似在你使用时是不合理的gam
,但警告信息会捕获这个:
In addition: Warning message: model was fitted by gam();
asymptotic variance calculation ignores this
Run Code Online (Sandbox Code Playgroud)
我并不担心这一点 - 我准备证明使用这些标准错误的目的是为了我正在使用它们 - 我只是想要数字并且想避免"自己编写"这样做.
我上面得到的错误消息似乎并不依赖于我正在使用的数据集.我在nztrees
这里使用了这个例子,因为我知道它预先加载了spatstat
.它似乎在抱怨变量本身,但模型清楚地理解了语法,因为它适合模型(对于我自己的数据集,预测值看起来非常好,所以我知道它不仅仅是抽出垃圾).
有没有人对此有任何提示或见解?这是一个错误吗?令我惊讶的是,我一直无法在网上找到任何关于此的讨论.任何帮助或提示都表示赞赏.
编辑:虽然我已经在这里明确回答了我自己的问题,但我暂时不会接受我的回答.这样,如果有人有兴趣并且愿意为此找到"解决方法"而不等待下一版本spatstat
,我可以奖励他/她.否则,我会在赏金期结束时接受我自己的回答.