2014-11-23 116 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