R 和编码不';t似乎不起作用:截距是';参考';水平而不是所有水平的总平均值
我目前正在使用R中的R 和编码不';t似乎不起作用:截距是';参考';水平而不是所有水平的总平均值,r,regression,refactoring,R,Regression,Refactoring,我目前正在使用R中的robu()函数运行一个应用稳健方差估计的元回归。这似乎工作正常。然而,我对使用总和而不是治疗编码感兴趣,这样我就可以将因子的每个水平与总平均值进行比较(dataset=Data\u meta\u REG,factor=memtype,levels=other,偶发性和有效性)。此方法已在现有论文中使用 我是R的新手,到目前为止,通过搜索各种论坛,我已经成功地从R文档中拼凑出了一些东西。不幸的是,当我运行分析时,截距似乎不是总平均值,而是分配为参考的级别的平均值(例如,如果我
robu()
函数运行一个应用稳健方差估计的元回归。这似乎工作正常。然而,我对使用总和而不是治疗编码感兴趣,这样我就可以将因子的每个水平与总平均值进行比较(dataset=Data\u meta\u REG,factor=memtype,levels=other
,偶发性和有效性)。此方法已在现有论文中使用
我是R的新手,到目前为止,通过搜索各种论坛,我已经成功地从R文档中拼凑出了一些东西。不幸的是,当我运行分析时,截距似乎不是总平均值,而是分配为参考的级别的平均值(例如,如果我交换级别的顺序,则返回截距的不同值,而如果是总平均值,则应相同)
所以我遇到了一点麻烦,想知道是否有人可以强调我的错误?我希望这是件简单的事,我错了!尽管如此,这还是让我很沮丧,因为它阻碍了我继续工作,所以任何帮助都将不胜感激
这就是我迄今为止所尝试的:
library("metafor")
library("dplyr")
library("robumeta")
# Setting memtype as factor
Data_meta_REG_contrasts = Data_meta_REG %>% mutate(memtype = as.factor(memtype))
# Setting contrast using function contr.sum
contrasts(Data_meta_REG_contrasts$memtype) = contr.sum(3)
# Regression model using robu() function
res_memtype <- robu(effect.size ~ factor(memtype), data = Data_meta_REG_contrasts,
studynum = study, var.eff.size = var.eff.size,
modelweights = "CORR", small = TRUE)
print(res_memtype)
# Output with ‘another’ as missing variable/’reference’/’intercept’
Estimate StdErr t-value dfs P(|t|>) 95% CI.L 95% CI.U
1 X.Intercept. 0.5274 0.671 0.786 2.21 0.507 -2.11 3.16
2 factor.memtype.episodic -0.0852 0.680 -0.125 3.51 0.907 -2.08 1.91
3 factor.memtype.working -0.2076 0.702 -0.296 3.85 0.783 -2.19 1.77
# Output with ‘working’ as missing variable/’reference’/’intercept’
Estimate StdErr t-value dfs P(|t|>) 95% CI.L 95% CI.U Sig
1 X.Intercept. 0.320 0.208 1.539 8.52 0.160 -0.154 0.794
2 factor.memtype.episodic 0.122 0.238 0.515 15.62 0.614 -0.382 0.627
3 factor.memtype.other 0.208 0.702 0.296 3.85 0.783 -1.771 2.186
如果需要进一步澄清我的问题,请告诉我
非常感谢
Lucy我不明白为什么您不能使用其中一个示例数据集来说明这个问题。我们可以看到您一直使用的编码策略。目前无法进行任何调试。好的,谢谢你的提醒。我将看一看这些,并尝试重现这个问题。我拼凑了一个例子,我确实得到了不同的估计,当截距项在模型中,但当公式的
-1
形式被使用时,与治疗对比模型相比,具有总和对比属性的因子。我想知道问题是否出在标签上,但数学机器在工作。?我认为未来的方法是用代码构造一个示例,您将知道正确的答案,然后在该数据中运行模型。@IRTFM非常感谢您花时间来测试这一点。根据您的建议,我还只是在一个简单的数据集上运行了代码,发现sum和treatment对比都能按预期工作。然而,这只是基本线性回归模型(lm)的情况。robu()模型似乎忽略了集合对比度,因此我一定有错误的代码将总和编码与稳健方差估计结合起来。感谢您帮助我确定问题所在@它已经成功了!!我对robu()标签进行了一次尝试,结果是,我使用effect.size~factor(memtype),删除单词“factor”将返回正确的和编码输出(即截取为格兰德平均值)。我不再在输出表行中获得单独的标签(例如,memtype1而不是episodic),但是数字起作用了,所以我很高兴!再次感谢-非常感谢:)
Estimate StdErr t-value dfs P(|t|>) 95% CI.L 95% CI.U Sig
1 factor.memtype.another 0.527 0.671 0.786 2.21 0.50716 -2.110 3.164
2 factor.memtype.episodic 0.442 0.116 3.823 10.22 0.00323 0.185 0.699 ***
3 factor.memtype.working 0.320 0.208 1.539 8.52 0.16011 -0.154 0.794