8

glmオブジェクトからベクトルとして Z - 統計の値を取得するにはどうすればよいですか? たとえば、私は

fit <- glm(y ~ 0 + x,binomial)

Pr(>|z|)で係数の推定値を取得するのと同じ方法で列にアクセスするにはどうすればよいfit$coefですか?

4

3 に答える 3

11

私は信じている

coef(summary(fit))[,"Pr(>|z|)"]

あなたが望むものを手に入れます。(は、係数テーブルを返すメソッドをsummary.glm()持つオブジェクトをcoef()返します。) (ちなみに、アクセサ メソッドが存在する場合は、近似モデルのコンポーネントに直接アクセスするよりも、それらを使用する方が適切です。たとえば、 のcoef(fit)方が優れていfit$coefます。)

p値を引き出し、線形回帰からr二乗すると同様の答えが得られます。

利用可能なアクセサーメソッドを見つけることをお勧めmethods(class="summary.glm")しますが、実際にはそれよりも少しトリッキーです。これは、デフォルトのメソッド (この場合coef.default()は ) も関連している可能性があるためです ...

PS Z値がcoef(summary(fit))[,"z value"]必要な場合は、それを行う必要があります(質問は少しあいまいです。通常、人々が「Z統計」と言うとき、p値ではなく検定統計の値が必要であることを意味します)

于 2012-09-09T17:41:04.157 に答える
1

することで、必要な情報にアクセスできます

utils::data(anorexia, package="MASS") # Some data

anorex.1 <- glm(Postwt ~ Prewt + Treat + offset(Prewt),
                family = gaussian, data = anorexia)  # a glm model 
summary(anorex.1)

summary(anorex.1)$coefficients[,3] # vector of t-values
(Intercept)       Prewt   TreatCont     TreatFT 
   3.716770   -3.508689   -2.163761    2.138933 

summary(anorex.1)$coefficients[,4] # vector of p-values
 (Intercept)        Prewt    TreatCont      TreatFT 
0.0004101067 0.0008034250 0.0339993147 0.0360350847 

summary(anorex.1)$coefficients[,3:4] # matrix 
              t value     Pr(>|t|)
(Intercept)  3.716770 0.0004101067
Prewt       -3.508689 0.0008034250
TreatCont   -2.163761 0.0339993147
TreatFT      2.138933 0.0360350847

str関数は、オブジェクト内の各要素がどこにあるかを示し、[[アクセサー ( $@DWin と @Ben Bolker によって指摘されているように、より良い) が情報を抽出します。str(summary(anorex.1))この関数が何をするか見てみてください。

于 2012-09-09T17:45:11.577 に答える
0

私は、summary(my_model)[[1]][[2]] のような要約構文を使用します。"[[]]" でさまざまな数字の組み合わせを使用して、必要なデータを抽出することができます。もちろん、私があなたの質問を正しく理解していれば:)

于 2012-09-10T05:46:53.990 に答える