首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在进行方差分析时“对比只适用于因素”误差

在进行方差分析时“对比只适用于因素”误差
EN

Stack Overflow用户
提问于 2018-12-17 19:38:13
回答 1查看 1.1K关注 0票数 0

我有一个数据框架,如下所示:

代码语言:javascript
复制
goal  behavior  dv1  dv2  dv3
1     1         4    2    6
1     5         3    5    1
1     7         2    4    2
5     1         5    2    7
5     5         2    1    3
5     7         2    1    2
7     1         4    5    7
7     5         2    1    4
7     7         3    2    5

正如您所看到的,有9个条件(目标x3为行为的可能性)。在实际数据集中,9个条件中的每一个条件都有大约25-30个参与者。在这个示例中,我试图对因变量(dv1dv2dv3)运行双向的goal,以查看goalbehavior之间是否存在交互。

我已经尝试运行以下代码。dv是一个只包含dv1dv2dv3列的矩阵。df是上面的整个数据框架。

代码语言:javascript
复制
output <- lm(as.matrix(dv) ~ goal * behavior, data = df,
         contrasts = list(goal = contr.sum, behavior = contr.sum))
summary(aov(output))

当我尝试创建对象output时,我会得到以下错误:

contrasts<-中的错误(*tmp*,value = contrasts.arg[nn]): 对比只适用于因素

我看过这个问题,但仍然无法解决我的问题。当我运行下面的代码时,我被告知我的变量中没有一个被认为是因素。我不知道为什么这是当“目标”和“行为”都有三个层次的变化。

代码语言:javascript
复制
factor <- sapply((df), function(x) is.factor(x))

我在这里看到的其他问题都是针对

对比只适用于两个或两个以上水平的因素。

这与我收到的错误消息不同。我该怎么做才能让它正常运行?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-17 22:52:07

“因子”在R中有一个特定的含义(例如,参见这一页来自加州大学伯克利分校);它们不仅是任何变化的变量,而且是编码的变量,以便R知道它应该把它们作为绝对预测器来处理。

在你的情况下

代码语言:javascript
复制
df <- transform(df, goal=factor(goal), behavior=factor(behavior))

如果工作正常(factor()as.factor()大致相同,请使用任何您喜欢的)。注释(df <- df %>% transmute_all(as.factor))的建议稍微紧凑一些,但(1)取决于包的"tidyverse“套件(您可能不喜欢),(2)将数据帧中的所有变量更改为因式(同上)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53821946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档