2016-09-15 2 views
0

표준 오류 값이 수동으로 R의 로지스틱 회귀에서 어떻게 계산되는지 알고 싶습니다. R 로지스틱 회귀 표준 오류 값을 수동으로 계산하는 방법은 무엇입니까?

나는 샘플 데이터를 가져다가 내가 그것을 이항 로지스틱 회귀 분석을 적용

data = data.frame(x = c(1,2,3,4,5,6,7,8,9,10),y = c(0,0,0,1,1,1,0,1,1,1)) 
model = glm(y ~ x, data = data, family = binomial(link = "logit")) 

그리고 다음과 내가 표준 오류가 계산 된 방법을 모르고을 가지고 없기 때문에 모델의 내 요약 한 것입니다

> summary(model) 

Call: 
glm(formula = y ~ x, family = binomial(link = "logit"), data = data) 

Deviance Residuals: 
    Min  1Q Median  3Q  Max 
-1.9367 -0.5656 0.2641 0.6875 1.2974 

Coefficients: 
      Estimate Std. Error z value Pr(>|z|) 
(Intercept) -2.9265  2.0601 -1.421 0.1554 
x    0.6622  0.4001 1.655 0.0979 . 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for binomial family taken to be 1) 

    Null deviance: 13.4602 on 9 degrees of freedom 
Residual deviance: 8.6202 on 8 degrees of freedom 
AIC: 12.62 

Number of Fisher Scoring iterations: 5 

만약 누군가가 이것에 대답한다면 ... 대단히 감사 할 것입니다. 미리 감사드립니다.

+0

확실하지 않습니다이 스케일 없음의 공분산 행렬을 얻으려면 @ JAV의 (R는 표준 오차를 계산하기 위해 GLM 솔루션에서 요소를 추출하는 방법을 알려줍니다) 또는 제 1 원리 해법/공식. 후자의 경우 불행히도 읽을 거리가 많습니다. GLM 교과서 (예 : Dobson과 Barnett 또는 Faraway의 책)로 앉아서 답을 얻을 때까지 작업해야합니다. 또한, 후자의 경우,이 질문은 아마도 http://stats.stackexchange.com에 속해 있습니다 ... –

답변

1

대각선 요소의 제곱근으로 이것을 계산할 수 있습니다. 당신이 원하는 경우 모델에 대한 summary(model)

sqrt(diag(summary(model)$cov.unscaled)*summary(model)$dispersion) 
# (Intercept)   x 
# 2.0600893 0.4000937 

에 의해 스케일 없음의 공분산 행렬 출력, 분산 매개 변수는 그래서 마지막 항 (summary(model)$dispersion)이 무시 될 수있는 일이다. 당신은 같은 대답을 찾고 여부

, 당신은

fittedVals = model$fitted.values 
W = diag(fittedVals*(1 - fittedVals)) 
solve(t(X)%*%W%*%X) 
#    (Intercept)   x 
# (Intercept) 4.2439753 -0.7506158 
# x   -0.7506158 0.1600754