首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中进行单因素方差分析?

如何在R中进行单因素方差分析?
EN

Stack Overflow用户
提问于 2013-01-07 23:53:50
回答 1查看 18.2K关注 0票数 8

我有一个数据集,其中样本是按列分组的。以下示例数据集类似于我的数据的格式:

代码语言:javascript
复制
a = c(1,3,4,6,8)
b = c(3,6,8,3,6)
c = c(2,1,4,3,6)
d = c(2,2,3,3,4)

mydata = data.frame(cbind(a,b,c,d))

当我使用上面的数据集在Excel中执行单因素方差分析时,我得到以下结果:

我知道一个典型的R格式如下:

代码语言:javascript
复制
group  measurement
a      1
a      3
a      4
.      .
.      .
.      .
d      4

在R中执行方差分析的命令是使用aov(group~measurement, data = mydata)如何使用按列而不是按行组织的样本在R中进行单因素方差分析?,换句话说,如何使用R复制excel结果?非常感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-07 23:59:33

您可以用长格式堆叠它们:

代码语言:javascript
复制
mdat <- stack(mydata)
mdat
   values ind
1       1   a
2       3   a
3       4   a
4       6   a
5       8   a
6       3   b
7       6   b
snipped output

> aov( values ~ ind, mdat)
Call:
   aov(formula = values ~ ind, data = mdat)

Terms:
                 ind Residuals
Sum of Squares  18.2      65.6
Deg. of Freedom    3        16

Residual standard error: 2.024846 
Estimated effects may be unbalanced

考虑到这一警告,使用lm可能更安全

代码语言:javascript
复制
> anova(lm(values ~ ind, mdat))
Analysis of Variance Table

Response: values
          Df Sum Sq Mean Sq F value Pr(>F)
ind        3   18.2  6.0667  1.4797 0.2578
Residuals 16   65.6  4.1000               
> summary(lm(values~ind, mdat))

Call:
lm(formula = values ~ ind, data = mdat)

Residuals:
   Min     1Q Median     3Q    Max 
 -3.40  -1.25   0.00   0.90   3.60 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   4.4000     0.9055   4.859 0.000174 ***
indb          0.8000     1.2806   0.625 0.540978    
indc         -1.2000     1.2806  -0.937 0.362666    
indd         -1.6000     1.2806  -1.249 0.229491    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 2.025 on 16 degrees of freedom
Multiple R-squared: 0.2172, Adjusted R-squared: 0.07041 
F-statistic:  1.48 on 3 and 16 DF,  p-value: 0.2578 

请不要问我为什么Excel给出了不同的答案。Excel通常被证明在统计方面非常不可靠。Excel有责任解释为什么它没有给出与R.

根据注释进行编辑:过程会创建一个输出,但该过程不使用Excel函数,因此,当您更改其派生的数据单元格中的数据,然后按F9或等效的菜单重新计算命令时,输出部分将不会发生更改。用户和数字问题的这一来源和其他来源在大卫·海泽( David )用统计计算评估Excel问题的各个页面中都有记载:http://www.daheiser.info/excel/frontpage.html Heiser最初的努力至少已经持续了10年,预期微软将对这些错误负责,但他们一直忽视了他和其他人在识别错误和提出更好的程序方面的努力。在由BD McCullough编辑的2008年6月号“计算统计与数据分析”中也有6节特别报告,涵盖了各种与Excel有关的统计问题。

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

https://stackoverflow.com/questions/14206154

复制
相关文章

相似问题

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