2017-11-03 6 views
0

は、私はこのような多重線形回帰モデルを含むリストを持っている:リストに保存された複数のモデルに対してANOVA関数を使用する方法は?

> list 
[[1]] 

Call: 
lm(formula = formula, data = data) 

Coefficients: 
(Intercept)   V1 
    512.91937  -0.04731 


[[2]] 

Call: 
lm(formula = formula, data = data) 

Coefficients: 
(Intercept)   V2 
    499.34648  -0.01863 


[[3]] 

Call: 
lm(formula = formula, data = data) 

Coefficients: 
(Intercept)   V3 
    504.0089  -0.0271 

機能ANOVAは主に最適なモデルを選択するために使用されているので、それはnモデルがそれを比較することができます。つまり:

anova(model1,model2,model3,...,modeln) 

私がしたいことは、何か似ています。 3つのモデルがあるときは問題はありませんが、私は100モデルのリストを持っています。だから私は手動でこのステップを保存する必要があります。

anova(list[[1]],list[[2]],...,list[[n]]) 

applyファミリーの便利な機能ですが、わかりません。

答えて

1

あなたは何が無ネストされたモデルではないように思えるとのことdo.call

> l <- replicate(10, lm(rnorm(10) ~ 1), simplify = FALSE) 
> do.call(anova, l) 
Analysis of Variance Table 

Model 1: rnorm(10) ~ 1 
Model 2: rnorm(10) ~ 1 
Model 3: rnorm(10) ~ 1 
Model 4: rnorm(10) ~ 1 
Model 5: rnorm(10) ~ 1 
Model 6: rnorm(10) ~ 1 
Model 7: rnorm(10) ~ 1 
Model 8: rnorm(10) ~ 1 
Model 9: rnorm(10) ~ 1 
Model 10: rnorm(10) ~ 1 
    Res.Df  RSS Df Sum of Sq F Pr(>F) 
1  9 12.8275      
2  9 5.6966 0 7.1309   
3  9 11.3766 0 -5.6801   
4  9 12.2143 0 -0.8376   
5  9 6.1445 0 6.0697   
6  9 14.0516 0 -7.9071   
7  9 6.5769 0 7.4748   
8  9 8.5335 0 -1.9566   
9  9 4.4292 0 4.1042   
10  9 9.0037 0 -4.5745  

けれどもで、あなたがやりたいことを確認していることを行うことができますか?さらに、のような関数baseと一致するオブジェクトを定義しないでください。

+0

'do.call'関数で十分でした、ありがとうございます。 –

関連する問題