0

我希望能够从 提供的类型的 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)

带有 GAM 的 ggeffects

接下来,我可以自己提取估计的边际均值,例如在一个年龄范围内:

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)......或者有人对上述任何一个有更好的建议吗?

4

0 回答 0