R中的阶乘方差分析

凯恩

我在理解R中阶乘方差分析的摘要时遇到了麻烦。我不明白为什么仅对第一个变量获得Df为2。A,B,C和D都有3个等级,所以据我所知,我应该得到2 Df以及它们之间的相互作用。请帮助我修复代码或了解结果。

PS在哪里可以找到summary()的选项列表?我看到了一个示例,该示例删除了信号级别后的*,我想看看我有哪些选项。

先感谢您

这是我的数据

我拥有的完整数据集

 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

具有不同阶数变量的相同方差分析

摘要(fit1)Df总和Sq平均Sq 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
残差13104934 8072

如果我仅使用2个级别进行方差分析(所有变量均排除0,并且仅使用[1:16]数据,因为后3个数据均基于“ 0”级别),那么结果就很好。对于所有var残差,我得到的Df为1。

LyzandeR

我一直在尝试,思考和思考,并说这怎么可能导致自由度计算不正确?但是有时我们只考虑复杂的事情而忽略了简单的事情。我发现了问题所在:

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。

谜团已揭开!!!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R中的阶乘方差分析

来自分类Dev

R中的边际方差分析

来自分类Dev

从R中的方差分析(glm)中提取残留偏差

来自分类Dev

在R中循环许多单侧方差分析

来自分类Dev

R中韦尔奇校正的单向方差分析的事后测试

来自分类Dev

嵌套在R中的3种方差分析

来自分类Dev

在R中循环许多单侧方差分析

来自分类Dev

在R中自动执行多个主题内方差分析

来自分类Dev

如何解释R中双向方差分析的结果?

来自分类Dev

高方差分析的方差分析

来自分类Dev

如何从R中的重复测量方差分析模型中获得残差

来自分类Dev

双向方差分析-在r中重复测量,缺少理想效果

来自分类Dev

如何为R中的重复测量方差分析建模

来自分类Dev

如何用R中的条件p值和置信区间绘制方差分析?

来自分类Dev

R中2x2x2方差分析的结构数据

来自分类Dev

R:如何使用 cld 函数从单向方差分析中获取结果

来自分类Dev

如何解释 R 中的双向方差分析表 (lmer) 输出?

来自分类Dev

与方差分析一起替代r

来自分类Dev

尝试创建大小不等R的方差分析表

来自分类Dev

如何估算R的变化来源?(用于双向方差分析)

来自分类Dev

Posthoc测试在R中使用Multcomp嵌套方差分析

来自分类Dev

尝试创建大小不等R的方差分析表

来自分类Dev

对 R 中方差分析的两个因素

来自分类Dev

R - 混合设计方差分析事后检验

来自分类Dev

方差分析闪亮应用

来自分类Dev

完全嵌套方差分析

来自分类Dev

PCA 解释方差分析

来自分类Dev

两个列表中对象之间的方差分析

来自分类Dev

进行方差分析测试。列中的p值。