2012-04-04 10 views
2

私は8つの予測子を持つ混合lmerモデルの例を持っています。共変量の名前、係数、標準誤差、およびそれらのp値を抽出して行列に配置したいので、それらを.csvに書き出すことができます。R:lmer()モデルの回帰結果から共変量のp値のリストを抽出する方法は?

最初の3つをカラムに細かく抽出しましたが、p値を抽出する方法がわかりません。これどうやってやるの?それはvcovやgetME()のバリエーションですか?ここで

は次のようにモデルや要約が見えるものです:私はここで先に行ってとp値の列のためのスペースを残し、そのためのCOLNAMEを入力した

mod <- lmer(outcome ~ predictor1 + etc... 
summary(mod) 

Generalized linear mixed model fit by the Laplace approximation 
Formula: Freq ~ pm.lag0 + pm.lag1 + pm.lag2 + pm.lag3 + pm.lag4 + pm.lag5 
+ temp13 + temp013 + rh13 + rh013 + (1 | county) 
    Data: dt 
    AIC BIC logLik deviance 
3574 3636 -1775  3550 
Random effects: 
Groups Name  Variance Std.Dev. 
county (Intercept) 1.6131 1.2701 
Number of obs: 1260, groups: county, 28 

Fixed effects: 
       Estimate Std. Error z value Pr(>|z|)  
(Intercept) 2.9356504 0.2614892 11.227 < 2e-16 *** 
pm.lag0  0.0012996 0.0005469 2.376 0.017494 * 
pm.lag1  0.0005021 0.0005631 0.892 0.372568  
pm.lag2  0.0009126 0.0005596 1.631 0.102893  
pm.lag3  -0.0007073 0.0005678 -1.246 0.212896  
pm.lag4  0.0031566 0.0005316 5.939 2.88e-09 *** 
pm.lag5  0.0019598 0.0005359 3.657 0.000255 *** 
temp13  -0.0028040 0.0007315 -3.833 0.000126 *** 
temp013  -0.0023532 0.0009683 -2.430 0.015087 * 
rh13   0.0058769 0.0009909 5.931 3.01e-09 *** 
rh013  -0.0028568 0.0006070 -4.706 2.52e-06 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Correlation of Fixed Effects: 
     (Intr) pm.lg0 pm.lg1 pm.lg2 pm.lg3 pm.lg4 pm.lg5 temp13 tmp013 rh13 
pm.lag0 -0.025                
pm.lag1 -0.032 -0.154               
pm.lag2 -0.021 0.044 -0.179             
pm.lag3 0.002 0.003 0.033 -0.176           
pm.lag4 0.016 0.102 -0.016 0.041 -0.176         
pm.lag5 0.008 0.027 0.090 -0.002 0.040 -0.186        
temp13 -0.316 0.026 0.027 0.004 -0.019 -0.055 -0.035      
temp013 0.030 -0.015 0.051 0.015 -0.015 0.002 -0.069 -0.205    
rh13 -0.350 0.043 0.078 0.056 -0.012 -0.042 -0.030 0.430 0.055  
rh013 0.193 -0.008 -0.021 0.011 0.030 0.101 -0.028 -0.278 0.025 -0.524 

、そのコードのISNのこのサンプル操作:

mixed.results <- mod 
cbind(names(fixef(mod)),as.numeric(fixef(mod)),sqrt(diag(vcov(mod))), ???? ) 
mixed.results 
colnames(mixed.results) <- c("Pred", "Coef", "St. Error", "Pr(>|z|)") 
mixed.results 
write.csv(mixed.results, file="mixedmod1.csv") 

ありがとう!

+0

まず、サマリー機能のソースコードを見てみましょう。サマリーの一部として計算されることはまともなチャンスです。ここに、私が想像する 'lm()'モデルの関連する答えがあります:http://stackoverflow.com/questions/5587676/pull-out-p-values-and-r-squared-from-a-線形回帰/ 5587781#5587781 – Chase

+0

こんにちはチェース、うん、私はそのポストを見たが、コマンドはlmer()に転送されていないようです。 p値がすでにサマリーで計算されていることは間違いありません.4番目の列です。要約[4]のようなことをする方法はありますか? – mEvans

答えて

4

これは単なるcoef(summary(model))ですが、私は信じている:

gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd), 
        data = cbpp, family = binomial) 
cc <- coef(summary(gm1)) 
str(cc) 
# num [1:4, 1:4] -1.376 -1.058 -1.196 -1.638 0.205 ... 
# - attr(*, "dimnames")=List of 2 
# ..$ : chr [1:4] "(Intercept)" "period2" "period3" "period4" 
# ..$ : chr [1:4] "Estimate" "Std. Error" "z value" "Pr(>|z|)" 
cc[,4] ## or cc[,"Pr(>|z)"] to be more explicit 
# (Intercept)  period2  period3  period4 
#1.907080e-11 1.996120e-41 4.634385e-43 4.657952e-47 

私はlme4の開発版を使用しますが、私は、これはしばらくのために働いていると思います。

+0

さようなら!だから、その後、私はas.data.frame(cc)を使用して、必要な特定の列を呼び出すことができました!または... ccをそのまま使用してください。ありがとうございました! – mEvans

関連する問題