全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
5956 3
2016-12-30
R语言实战一书中,多元方差分析并没有把shelf转换为factor类型,自由度为1,而转换为factor类型之后自由度为2,请问这两种方式有什么不同?哪种正确?

我是看到它上面说可以使用TukeyHSD来判断每种因变量与哪种货架与其它货架是不同的,而我在使用TukeyHSD的时候,发现它需要把shelf转换为因子才可以使用,于是反过来产生了上面的疑问。

附程序结果(我把R语言实战中的例子改了一下,给出对比):

> library(MASS)
> attach(UScereal)
> y1<-as.data.frame(cbind(calories,fat,sugars,shelf))
> str(y1)
'data.frame':   65 obs. of  4 variables:
$ calories: num  212 212 100 147 110 ...
$ fat     : num  3.03 3.03 0 2.67 0 ...
$ sugars  : num  18.2 15.2 0 13.3 14 ...
$ shelf   : num  3 3 3 1 2 3 1 3 2 1 ...
> y2<-as.data.frame(cbind(calories,fat,sugars,shelf))
> y2$shelf<-as.factor(y2$shelf)
> str(y2)
'data.frame':   65 obs. of  4 variables:
$ calories: num  212 212 100 147 110 ...
$ fat     : num  3.03 3.03 0 2.67 0 ...
$ sugars  : num  18.2 15.2 0 13.3 14 ...
$ shelf   : Factor w/ 3 levels "1","2","3": 3 3 3 1 2 3 1 3 2 1 ...
> fit1<-manova(cbind(calories,fat,sugars)~shelf,data=y1)
> fit2<-manova(cbind(calories,fat,sugars)~shelf,data=y2)
> summary(fit1)
          Df  Pillai approx F num Df den Df  Pr(>F)   
shelf      1 0.19594    4.955      3     61 0.00383 **
Residuals 63                                          
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> summary(fit2)
          Df Pillai approx F num Df den Df    Pr(>F)   
shelf      2 0.4021   5.1167      6    122 0.0001015 ***
Residuals 62                                            
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> summary.aov(fit1)
Response calories :
            Df Sum Sq Mean Sq F value    Pr(>F)   
shelf        1  45313   45313  13.995 0.0003983 ***
Residuals   63 203982    3238                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Response fat :
            Df  Sum Sq Mean Sq F value   Pr(>F)   
shelf        1  18.421 18.4214   7.476 0.008108 **
Residuals   63 155.236  2.4641                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Response sugars :
            Df  Sum Sq Mean Sq F value  Pr(>F)  
shelf        1  183.34  183.34   5.787 0.01909 *
Residuals   63 1995.87   31.68                  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

> summary.aov(fit2)
Response calories :
            Df Sum Sq Mean Sq F value    Pr(>F)   
shelf        2  50435 25217.6  7.8623 0.0009054 ***
Residuals   62 198860  3207.4                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Response fat :
            Df Sum Sq Mean Sq F value  Pr(>F)  
shelf        2  18.44  9.2199  3.6828 0.03081 *
Residuals   62 155.22  2.5035                  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Response sugars :
            Df  Sum Sq Mean Sq F value   Pr(>F)   
shelf        2  381.33 190.667  6.5752 0.002572 **
Residuals   62 1797.87  28.998                    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-12-30 15:36:37
顶!楼主扎实学习!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-12-30 23:01:38
这个叫做组间自由度,没变成分类变量前,是一组连续的数值,只有一个水平,所以自由度是1;变为分类变量后,分成了1、2、3三个水平,组间自由度为2
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-12-31 16:10:45
楼主厉害,请问多元方差分析的结果怎么用多重比较呀?我的出不来,提示我 > TukeyHSD(OnewayMulti)
Error in model.tables.aov(x, "means") : 'model.tables'没有为多响应实现
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群