我有一个看起来像这样的回归模型:
...或用R表示法: y ~ x1 + x2 + x3 + x1:x2 + x1:x3 + x1:x2:x3
假设和是分类变量,而是数字。复杂之处在于具有三个级别并且我需要测试以下内容而不是标准对比:
- 级的截距是否与和级的平均截距明显不同。
- 的响应在级与和级的平均值之间是否显着不同。
- 的斜率在级别与级别和的平均值之间是否显着不同。
根据这篇文章,看来我想要的矩阵是...
2
-1
-1
我也是contrasts(mydata$x1)<-t(ginv(cbind(2,-1,-1)))
。的估计更改,其他的更改。我可以重现的新的估计通过减去的预测值和组装置(当和处于其基准电平)从值的两倍在这些级别。但是我不能相信自己正确地指定了对比度矩阵,除非我也可以类似地得出其他系数。
有人对如何将我的头脑包扎在单元均值和对比度之间的关系上有任何建议吗?谢谢。这种对比有标准名称吗?
啊哈!根据Glen_b答案中发布的链接,最重要的是,您可以将想要的组的任何比较转换为R样式的对比度属性,如下所示:
- 制作一个方矩阵。行代表因子水平,列代表对比。除了第一个,它告诉模型截距应该代表什么。
- 如果您想让截距成为平均值,请在第一列中填写所有相同的非零值,无论如何。如果要让截距成为水平均值之一,则在该行中放置一个数字,并用零填充其余部分。如果您希望截距是多个级别的平均值,则在这些行中输入数字,在其余行中输入零。如果希望它是加权平均值,请使用不同的数字,否则请使用相同的数字。您甚至可以在intercept列中输入负值,这也可能意味着某些事情,但是它完全改变了其他对比度,所以我不知道那是什么意思
- 在正数和负数中填充其余的列,以指示您要与其他水平进行比较的水平。我忘记了为什么总和为零很重要,但是要调整值以使列的总和为零。
- 使用
t()
函数转置矩阵。 ginv()
从MASS
包装中使用或solve()
以获得转置矩阵的逆。- 删除第一列,例如
mycontrast<-mycontrast[,-1]
。现在您有了apx p-1矩阵,但是在第5步中,您为截取输入的信息被整体编码为矩阵。 - 如果您希望摘要输出中的标签比其他
lm()
人的默认输出更易于阅读,请相应地为矩阵的列命名。截距将始终自动被命名(Intercept)
。 - 使矩阵成为相关因素的新对比,例如
contrasts(mydata$myfactor)<-mymatrix
- 运行
lm()
(和使用公式可能很多其他功能)为在标准的R正常,而无需负载glht
,doBy
或contrasts
。
Glen_b,谢谢,也感谢您加州大学洛杉矶分校统计咨询小组。我的应用统计专家花了几天时间研究这个话题,但我仍然不知道如何实际编写自己的对比度矩阵。而现在,一个小时的阅读和使用R的乐趣,我终于觉得我明白了。猜猜我应该改为申请UCLA。或大学StackExchange。
contra.helmert
?