2014-11-23 90 views
1

我很难理解R因子anova的总结。 我不明白为什么我只有第一个变量才能得到2的Df。 A,B,C和D都有3个等级,所以在我的理解中,我应该得到2个Df和那些相互作用。 请帮我修复代码或了解结果。R因子Anova

P.S.我在哪里可以找到summary()的选项列表?我看到一个示例删除了sig level后的*,我想查看我拥有的选项。

预先感谢您

这里是数据我有

完整的数据集我有

Runs I A B C D AB E AD BC F G H J K B1 B2  y 
1  1 1 -1 -1 -1 -1 1 1 1 1 1 1 -1 -1 -1 -1 1 190.9 
2  2 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 -1 -1 436.2 
3  3 1 -1 1 -1 -1 -1 1 1 -1 -1 1 1 1 -1 1 -1 480.3 
4  4 1 1 1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 1 1 1 406.3 
5  5 1 -1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 1 -1 212.9 
6  6 1 1 -1 1 -1 -1 1 -1 -1 1 -1 -1 1 -1 1 1 478.7 
7  7 1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 1 396.5 
8  8 1 1 1 1 -1 1 1 -1 1 -1 -1 1 -1 -1 -1 -1 349.7 
9  9 1 -1 -1 -1 1 1 1 -1 1 -1 -1 -1 1 1 1 -1 119.7 
10 10 1 1 -1 -1 1 -1 -1 1 1 -1 -1 1 -1 -1 1 1 372.2 
11 11 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 411.6 
12 12 1 1 1 -1 1 1 -1 1 -1 1 -1 -1 1 -1 -1 -1 382.8 
13 13 1 -1 -1 1 1 1 -1 -1 -1 -1 1 1 1 -1 -1 1 161.2 
14 14 1 1 -1 1 1 -1 1 1 -1 -1 1 -1 -1 1 -1 -1 424.3 
15 15 1 -1 1 1 1 -1 -1 -1 1 1 1 -1 -1 -1 1 -1 322.8 
16 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 302.1 
17 17 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 0 0 302.4 
18 18 1 0 0 0 0 0 0 0 0 0 0 0 1 -1 0 0 318.2 
19 19 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 0 0 332.8 

> data 
###Factors 
> A 
[1] -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 0 0 0 
Levels: -1 0 1 
> B 
[1] -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 0 0 0 
Levels: -1 0 1 
> C 
[1] -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 0 0 0 
Levels: -1 0 1 
> D 
[1] -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 0 0 0 
Levels: -1 0 1 

####Response variable 
> data$y 
[1] 190.9 436.2 480.3 406.3 212.9 478.7 396.5 349.7 119.7 372.2 411.6 382.8 161.2 424.3 322.8 302.1 302.4 318.2 
[19] 332.8 

A=as.factor(data$A) 
B=as.factor(data$B) 
C=as.factor(data$C) 
D=as.factor(data$D) 



out3=lm(data$y~C+B+A+D) 
fit1=aov(out3) 
summary(fit1) 

> summary(fit1) 
      Df Sum Sq Mean Sq F value Pr(>F) 
C   2 2743 1372 0.170 0.8456 
B   1 26896 26896 3.332 0.0910 . 
A   1 45839 45839 5.679 0.0331 * 
D   1 12928 12928 1.602 0.2279 
Residuals 13 104934 8072 

同ANOVA,利用不同的顺序可变

摘要(FIT1)的 Df的总平均平方F值Pr(> F)
B 2 28199 14100 1.747 0.2129
A 1 45839 45839 5.679 0.0331 * d 1 12928 12928 1.602 0.2279
的C 1 1440 1440 0.178 0.6796
残差13 104934 8072

如果我只用2级(进行ANOVA对所有变量排除0 ,并且仅在最后3个数据基于“0”级别时才使用[1:16]数据),那么它就会很好。对于所有变种但残差我得到1的Df。

+0

我认为这必须与结果模型矩阵不是满秩的事实有关,这意味着4个因子的虚拟变量之间存在线性相关性。你能提供一些关于阶乘设计的更多细节吗? – johansteen 2014-11-23 20:34:03

+0

我添加了完整的数据集和另一个变量顺序不同的anova。我尝试了很多东西,但是我只保留第一个变量的Df值为2。 – Kane 2014-11-23 20:46:10

+0

请提供一些关于您的因子设计的详细信息(例如完整或部分因子,因子数量,每个因子的等级数量......)!不知何故,在我看来,好像你可能将原始因素与他们的虚拟变量混合在一起,但我只能确切地知道是否可以获得有关因子设计的更多细节。 – johansteen 2014-11-23 21:32:29

回答

0

我在试图思考和思考并说出自由度如何计算不正确?但有时我们只会考虑复杂的事情,忘记简单的事情。我发现问题是什么:

data <- read.table(header=T,text='Runs I A B C D AB E AD BC F G H J K B1 B2  y 
1  1 1 -1 -1 -1 -1 1 1 1 1 1 1 -1 -1 -1 -1 1 190.9 
2  2 1 1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 -1 -1 436.2 
3  3 1 -1 1 -1 -1 -1 1 1 -1 -1 1 1 1 -1 1 -1 480.3 
4  4 1 1 1 -1 -1 1 -1 -1 -1 -1 1 -1 -1 1 1 1 406.3 
5  5 1 -1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 1 -1 212.9 
6  6 1 1 -1 1 -1 -1 1 -1 -1 1 -1 -1 1 -1 1 1 478.7 
7  7 1 -1 1 1 -1 -1 -1 1 1 -1 -1 -1 1 1 -1 1 396.5 
8  8 1 1 1 1 -1 1 1 -1 1 -1 -1 1 -1 -1 -1 -1 349.7 
9  9 1 -1 -1 -1 1 1 1 -1 1 -1 -1 -1 1 1 1 -1 119.7 
10 10 1 1 -1 -1 1 -1 -1 1 1 -1 -1 1 -1 -1 1 1 372.2 
11 11 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 411.6 
12 12 1 1 1 -1 1 1 -1 1 -1 1 -1 -1 1 -1 -1 -1 382.8 
13 13 1 -1 -1 1 1 1 -1 -1 -1 -1 1 1 1 -1 -1 1 161.2 
14 14 1 1 -1 1 1 -1 1 1 -1 -1 1 -1 -1 1 -1 -1 424.3 
15 15 1 -1 1 1 1 -1 -1 -1 1 1 1 -1 -1 -1 1 -1 322.8 
16 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 302.1 
17 17 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 0 0 302.4 
18 18 1 0 0 0 0 0 0 0 0 0 0 0 1 -1 0 0 318.2 
19 19 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 0 0 332.8') 

a.dummies <- model.matrix(~A) 
b.dummies <- model.matrix(~B) 
c.dummies <- model.matrix(~C) 
d.dummies <- model.matrix(~D) 


a<-cbind(a.dummies[,-1],b.dummies[,-1]) 
b<-cbind(c.dummies[,-1],d.dummies[,-1]) 
all<-cbind(a,b) 

我冒昧地创建了自己的傻瓜,一个接一个地检查它们。问题就暴露出来了。 简单相关表:

COR(全部)

  A0   A1   B0   B1   C0   C1   D0   D1 
A0 1.0000000 -0.3692745 1.0000000 -0.3692745 1.0000000 -0.3692745 1.0000000 -0.3692745 
A1 -0.3692745 1.0000000 -0.3692745 0.1363636 -0.3692745 0.1363636 -0.3692745 0.1363636 
B0 1.0000000 -0.3692745 1.0000000 -0.3692745 1.0000000 -0.3692745 1.0000000 -0.3692745 
B1 -0.3692745 0.1363636 -0.3692745 1.0000000 -0.3692745 0.1363636 -0.3692745 0.1363636 
C0 1.0000000 -0.3692745 1.0000000 -0.3692745 1.0000000 -0.3692745 1.0000000 -0.3692745 
C1 -0.3692745 0.1363636 -0.3692745 0.1363636 -0.3692745 1.0000000 -0.3692745 0.1363636 
D0 1.0000000 -0.3692745 1.0000000 -0.3692745 1.0000000 -0.3692745 1.0000000 -0.3692745 
D1 -0.3692745 0.1363636 -0.3692745 0.1363636 -0.3692745 0.1363636 -0.3692745 1.0000000 

的LM功能的工作方式(以及更多型号的功能)是消除有确切相关性两个变量之一1即删除重复的列。在你的情况下,C0与A0,B0和D0的相关系数为1,所以这3个被从模型中移除,有效地将你的因子水平的数量减少到A,B和D的2。因此,自由度现在是1对于A,B和D.

神秘解决!

+0

只是因为您对网站不熟悉,所以我想说如果一个答案解决了您的问题(并且只有这样),请将其标记为已接受(通过单击答案旁边的勾号),以便其他拥有未来同样的问题可能会得到帮助。接受答案会让你和那个回答他的人声望。获得声望将允许您通过解锁权限更好地使用该网站。我总是这样对新用户说:)。欢迎来到SO!附: (接受答案不是强制性的) – LyzandeR 2014-11-24 09:11:01

+0

非常感谢!但我认为我仍然有问题...我要用3次重复完成所有19个数据点的anova。我现在认为我可能不会比使用R正确理解统计数据。下面是我应该回答的确切问题:使用方差分析来估计没有不活动因素的模型。包括此步骤的中心点运行。从这个模型中,使用ANOVA F检验来确定重要的影响。您应该生成残差的诊断图,包括正常概率图。 – Kane 2014-11-24 13:09:45

+0

这是完全不同的问题。您可以将其作为SO的单独问题或仅在统计数据上进行交叉验证。如果上面的答案回答了你最初的问题,关于自由度可以随意接受,以帮助有同样问题的未来人士。否则,请解释你为什么不喜欢答案。 – LyzandeR 2014-11-24 14:17:02