2017-04-08 51 views
0

代碼:方差R中,以獲取顯著碼

pred_model = anova(m1, m2, test="Chisq") 
pred_model 

結果:

Analysis of Variance Table 

Model 1: male_birth ~ male_death + female_birth + female_death 
Model 2: male_birth ~ male_death + female_birth 
Res.Df RSS Df Sum of Sq Pr(>Chi) 
1  48 3.4883      
2  49 3.4951 -1 -0.0068189 0.7594 

我是新來的R,任何人都可以建議如何獲取顯著代碼模型

+1

你是什麼意思名爲列中的第二個值要獲取 – user20650

+0

怎麼辦? @ user20650'##簽字代碼:0'***'0.001'**'0.01'*'0.05'。' 0.1''''p值 –

+1

如果你看看'str(pred_model)',你可以看到可以從'pred_mode'中提取的東西的名字,所以對於pvalue你可以使用''pred_model $'Pr(> Chi)''。星星不會被重新調整,而是被打印出來,你可以捕獲這個星球的輸出,或者用產生這些星球的打印方法來解決問題,編寫你自己的函數來將p值轉換爲星號,或者最好的是省略星星 – user20650

回答

2

summary函數通常會返回一列有p值的矩陣。然而,在這種情況下,anova的結果作爲一個數據框被返回,該數據框已被進一步「class() - ed」作爲「anova」對象(以便它可以有其自己的print-方法)。在?lm運行第一個例子,然後:

> lm.D9 <- lm(weight ~ group) 
> lm.0 <- lm(weight ~ 1) 

> anova(lm.D9,lm.0) 
Analysis of Variance Table 

Model 1: weight ~ group 
Model 2: weight ~ 1 
    Res.Df RSS Df Sum of Sq  F Pr(>F) 
1  18 8.7292       
2  19 9.4175 -1 -0.68821 1.4191 0.249 

> str(anova(lm.D9,lm.0)) 
Classes ‘anova’ and 'data.frame': 2 obs. of 6 variables: 
$ Res.Df : num 18 19 
$ RSS  : num 8.73 9.42 
$ Df  : num NA -1 
$ Sum of Sq: num NA -0.688 
$ F  : num NA 1.42 
$ Pr(>F) : num NA 0.249 
- attr(*, "heading")= chr "Analysis of Variance Table\n" "Model 1: weight ~ group\nModel 2: weight ~ 1" 

所以,你要被命名爲」 'Pr(>F)'

anova(lm.D9,lm.0)$'Pr(>F)'[2] 
[1] 0.2490232