我一直在研究gamlss软件包来拟合半参数模型,并在ga()函数中发现了一些奇怪的东西。即使模型被指定为具有伽马分布,并使用REML拟合,模型的输出也是高斯的,用GCV拟合。
例子:
library(mgcv)
library(gamlss)
library(gamlss.add)
data(rent)
ga3 <- gam(R~s(Fl)+s(A), method="REML", data=rent, family=Gamma(log))
gn3 <- gamlss(R~ga(~s(Fl)+s(A), method="REML"), data=rent, family=GA)政府间环境管理示范摘要:
summary(ga3)族:伽马链函数: log公式:r~ s(Fl) + s(A)参数系数:估计Std。误差t值Pr(>\x)(截距) 6.667996 0.008646 771.2 <2e-16 *代码:0‘*’0.001‘**’0.01‘*’0.05‘.’0.1‘’1‘Ref.df F_p-值s(F1) 1.263 1.482 442.53 <2e-16 ** s(A) 4.051 4.814 36.34 <2e-16 *代码:0‘*’0.001‘**’0.01‘*’0.05‘.’0.1‘’1R-平方.(Adj)= 0.302 Deviance Deviance= 28.8% -REML = 13979 est.= 0.1472 n=1969年
GAMLSS的示范摘要:
summary(getSmo(gn3))族:高斯链接函数:恒等式: Y.var ~s(F1)+ s(A)参数系数:估计Std。误差t值Pr(>x)(截距) 6.306e-13 8.646e-03 0 1光滑项的近似意义: edf Ref.df F值s(F1) 1.269 1.492 440.14 <2e-16 * s(A) 3.747 4.469 38.83 <2e-16 *-符号。代码:0‘*’0.001‘**’0.01‘*’0.05‘.’0.1‘’1R-平方.(Adj)= 0.294 Deviance explained = 29.6% GCV = 0.97441 sq.= 0.97144 n=1969年
问题:
为什么模型输出给出了不正确的分布和拟合方法?这里有我遗漏的东西吗这是正确的吗?
发布于 2022-07-22 11:08:25
在使用ga()-function时,gamlss在后台调用mgcv中的gam()-function,而不指定家庭。因此,样条拟合假定为正态分布。因此,当你看到合适的平滑人家族:高斯和链接函数:身份。还请注意,在使用ga()时返回的尺度估计与正态分布有关。
发布于 2022-07-25 15:40:20
是的,在使用ga()-function时,每个gamlss迭代都在后台调用mgcv中的gam()-function。在每次迭代时,它使用正确的局部工作变量和局部权重来表示伽马分布。
https://stackoverflow.com/questions/71863713
复制相似问题