我希望能够从 提供的类型的 GAM 中获取总体估计emmeans
,以便绘制这些拟合值及其置信区间,然后进行一些后续分析。
我正在研究与此处描述的数据集类似的数据集:https ://rpubs.com/bbolker/ratgrowthcurves 。我在文档的末尾看到作者指出,如何最好地从模型中得出总体估计尚未解决,但一种选择可能是emmeans
. 所以在这里我发布一个例子,看看人们是否认为这种方法是正确的,或者他们是否可以提出更好的包和方法。
我将使用“橙色”数据集作为示例,但为了使其适合我的问题,让我们首先添加一个“品种”因素:
data(Orange)
temp<-as.vector(1:31)
temp[c(8:14,22:28)]<-"Tall"
temp[c(1:7,15:21,29:35)]<-"Short"
Orange$variety<-as.factor(temp)
head(Orange)
# Tree age circumference variety
#1 1 118 30 Short
#2 1 484 58 Short
#3 1 664 87 Short
#4 1 1004 115 Short
#5 1 1231 120 Short
#6 1 1372 142 Short
创建一个以“variety”为因子和“tree”为随机效应的 GAM:
library(mgcv)
ex.mod<-gam(circumference~s(age,k=7,by=variety)+s(Tree,bs="re")+variety,method="REML",data=Orange)
ggeffects 包似乎通过 emmeans 为绘图提供了很好的功能:
library(ggeffects)
library(emmeans)
plotme<-ggemmeans(ex.mod,terms=c("age","variety"))
plot(plotme)
接下来,我可以自己提取估计的边际均值,例如在一个年龄范围内:
emmeans(ex.mod,specs=c("age","variety"),at=list(age=seq(from=300,to=1500,by=500)))
# age variety emmean SE df lower.CL upper.CL
# 300 Short 44.8 4.37 27.1 35.9 53.8
# 800 Short 90.4 3.27 27.1 83.7 97.1
# 1300 Short 136.0 3.68 27.1 128.5 143.6
# 300 Tall 51.5 6.24 27.1 38.7 64.3
# 800 Tall 127.3 6.09 27.1 114.8 139.8
# 1300 Tall 189.8 5.56 27.1 178.4 201.2
#Results are averaged over the levels of: Tree
#Confidence level used: 0.95
我的问题是:
1)如果我有兴趣使用这个 GAM 模型来比较“高”品种和“短”品种在 800 天龄时的估计平均差异,是否适合将这种成对比较基于 emmeans?
2)如果对不同地方的橙树生长进行了几项研究,并且我对元分析“高”和“短”品种树在某些年龄的周长平均差异感兴趣,使用平均差异是否合适Meta 分析的 emmeans 和方差?(emmeans 提供 SE,我认为这需要转换为标准偏差......)
3)......或者有人对上述任何一个有更好的建议吗?