2013-01-07 31 views
6

Tôi có tập dữ liệu trong đó các mẫu được nhóm theo cột. Bộ dữ liệu mẫu sau cũng tương tự như định dạng dữ liệu của tôi:Làm thế nào để thực hiện một yếu tố ANOVA trong R với các mẫu được sắp xếp theo cột?

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)) 

Khi tôi thực hiện một yếu tố duy nhất ANOVA trong Excel bằng cách sử dụng dữ liệu trên, tôi nhận được kết quả như sau:

enter image description here

Tôi biết một định dạng điển hình trong R như sau:

group measurement 
a  1 
a  3 
a  4 
.  . 
.  . 
.  . 
d  4 

Và lệnh để thực hiện ANOVA trong R sẽ sử dụng aov(group~measurement, data = mydata). Làm cách nào để thực hiện một hệ số ANOVA trong R với các mẫu được sắp xếp theo cột chứ không phải theo hàng? Nói cách khác, làm cách nào để sao chép kết quả excel bằng R? Cảm ơn rất nhiều vì sự giúp đỡ.

+1

định hình lại dữ liệu! – mnel

+2

Bạn đã có lệnh anova sai ... 'aov (đo ~ nhóm ...' – John

Trả lời

11

Bạn ngăn xếp chúng theo dạng dài:

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 

Với cảnh báo nó có thể là an toàn hơn để sử dụng lm:

> 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 

Và xin đừng hỏi tôi tại sao Excel đưa ra một câu trả lời khác . Excel nói chung đã được chứng minh là không đáng tin cậy khi nói đến thống kê. Onus là trên Excel để giải thích lý do tại sao nó không đưa ra câu trả lời so sánh với R.

Chỉnh sửa phản hồi: Gói phân tích dữ liệu Excel Thủ tục ANOVA tạo đầu ra nhưng không sử dụng hàm Excel cho quá trình đó, vì vậy khi bạn thay đổi dữ liệu trong các ô dữ liệu mà từ đó nó được bắt nguồn, và sau đó nhấn F9, hoặc lệnh tính toán lại trình đơn tương đương, sẽ không có thay đổi trong phần đầu ra. Điều này và các nguồn khác của người dùng và các vấn đề số được ghi lại trong các trang khác nhau của những nỗ lực của David Heiser trong việc đánh giá các vấn đề của Excel với các tính toán thống kê: http://www.daheiser.info/excel/frontpage.html Heiser bắt đầu những nỗ lực của mình mà bây giờ ít nhất là một thập kỷ, với kỳ vọng rằng Microsoft sẽ chịu trách nhiệm cho những lỗi này, nhưng họ đã luôn phớt lờ những nỗ lực của mình và những người khác trong việc xác định sai sót và gợi ý các thủ tục tốt hơn. Ngoài ra còn có một Báo cáo đặc biệt 6 phần trong số June 2008 issue of "Computational Statistics & Data Analysis" do BD McCullough biên tập bao gồm các mối quan tâm thống kê khác nhau với Excel.

+0

thường khi bạn phần mềm badmouth cho những sai lầm lớn như vậy, đó là lỗi của bạn :-) Kết quả khác nhau vì bạn sử dụng điều trị mặc định ngu ngốc tương phản. Tắt chúng bằng 'tóm tắt (lm (giá trị ~ 0 + ind, mdat))' – TMS

+0

Tôi đang đề cập đến số liệu thống kê F. Đúng là các ước tính có thể khác nhau với các sự tương phản khác nhau. VÀ khi tôi thay đổi công thức như bạn đề nghị tôi vẫn nhận được một câu trả lời khác với câu trả lời cho Excel như có thể đã được dự đoán bằng cách tính toán phương tiện trong đầu 4.4 + .8 không bằng với ước tính Excel cho mức trung bình của 'nhóm b '. –

+1

Điều này chỉ vì anh ta có thể mắc lỗi đánh máy, nếu bạn thay đổi nó thành 'b = c (3,6,8,3,8)' và nó cho 5,6 là trung bình và 6,3 là phương sai, và thống kê F và p- giá trị sẽ đột nhiên phù hợp quá. – TMS

Các vấn đề liên quan