피어슨을 계산하는 방법


10

우도 비 (일명 편차) G2glm(..., family = binomial)R에서 로지스틱 회귀 모델 ( 함수를 사용하여 적합)을 얻기 위해 통계 및 적합 부족 (또는 적합도) 검정은 매우 간단합니다. 테스트가 신뢰할 수 없다는 것을 적합치 부족에 대한 우도 비 검정의 신뢰성을 검증하는 한 가지 방법은 검정 통계량과 P- 값을 Pearson 카이 제곱의 검정 통계량과 비교 하는 것입니다.χ2) 적합성 결여 테스트.

glm개체와 summary()방법 모두 피어슨의 카이 제곱 검정에 대한 검정 통계량이 적합 하지 않은 것으로 보고 하지 않습니다 . 내 검색에서 내가 찾은 유일한 chisq.test()기능은 ( stats패키지에있는) 함수입니다 . 문서에 " chisq.test카이 제곱 우연성 테이블 테스트 및 적합도 테스트를 수행합니다."라고 나와 있습니다. 그러나 이러한 테스트를 수행하는 방법에 대해서는 문서가 부족합니다.

경우 x하나의 행 또는 열을 갖는 매트릭스 인 경우, 또는 x벡터이며 y다음, 제공되지 적합도 (테스트가 수행되는 x일차원 비상 테이블로서 처리된다). 의 항목은 x음이 아닌 정수 여야합니다. 이 경우 검정 된 가설은 모집단 확률이의 확률과 같 p거나 p주어지지 않은 경우 모두 같다는 것 입니다.

의 인수로 객체 의 y구성 요소를 사용할 수 있다고 상상합니다 . 그러나 오류가 발생하기 때문에 의 인수에 객체 의 구성 요소를 사용할 수 없습니다 . " "glmxchisq.testfitted.valuesglmpchisq.testprobabilities must sum to 1.

내가 어떻게 피어슨을 계산할 수 있습니까? χ2 단계를 수동으로 실행하지 않고도 적합치에 대한 통계를 테스트 할 수 있습니까?

답변:


13

제곱 된 피어슨 잔차의 합은 피어슨과 정확히 같습니다 χ2적합치에 대한 검정 통계량. 따라서 적합 모델 (예 : glm객체)이 호출 logistic.fit되면 다음 코드는 검정 통계량을 반환합니다.

sum(residuals(logistic.fit, type = "pearson")^2)

residuals.glm사용 가능한 다른 잔차를 포함하여 자세한 내용은 설명서를 참조하십시오 . 예를 들어, 코드

sum(residuals(logistic.fit, type = "deviance")^2)

당신을 얻을 것입니다 G2deviance(logistic.fit)제공 하는 것과 동일한 통계량을 검정 합니다.


매크로에 동의합니다. 당신이 그룹에 대한 답변을 원한다면 당신은 다른 사람들이 먼저해야 할 말을 듣기를 기다려야합니다. 당신이 지금 얻을 수있는 것은 당신의 대답을보고 편견입니다. 또한 답을 알고 있다면 이것을 수행하여 무엇을 증명하려고합니까?
Michael R. Chernick 2016 년

@Macro-Firefeather는이 사이트 (이 중 하나 포함)에 네 가지 질문을 게시했으며이 중 세 가지 (이 중 하나 포함)에 대한 답변을 한 번 수락했습니다. 이 같은 몇 가지 더와 나는 패턴을 볼 수 있습니다!
jbowman 2016 년

@ jbowman, 다른 사람이 답변을 게시하기 전에 스스로 알아 냈지만 firefeather는 질문을 게시 한 후 5 분 이내에 답변을 게시했다면 도움이 필요하지 않은 것 같습니다. , 그것이 내가 왜 그런지 물어 보게 한 이유는 ... 동기를 실제로 이해하지 못한다 ...
Macro

3
: @Macro이 공식 링크를 참조하시기 바랍니다 blog.stackoverflow.com/2011/07/...을 공유 지식, Q & A - 스타일 - "자신의 질문에 대답 : (가 하단에있는 체크 박스 라벨에 질문 페이지 질문에 링크 된 것 "). 숙제를하는 동안 (Minitab이 수업에서 시연되었지만 Minitab 대신 R을 사용하도록 선택한 경우)이 질문이 있었지만 질문을 입력하고 응답을 기다릴 시간이 충분하지 않았습니다. 이 해결 방법을 찾아서 커뮤니티와 공유하기로 결정했습니다.
Firefeather

2
@ 매크로, 당신은 매우 환영합니다! 답변을 제공하지 않는 곳에서 더 많은 질문을하고, 내가 묻지 않은 더 많은 질문에 대답 할 수 있기를 바랍니다. 그러나 jbowman 은 패턴에 대해 습니다. 커뮤니티에 대한 나의 기여 나 자신과 대화하는 경향이 있습니다. :) (적어도 나는 어떻게 든 지역 사회에 기여하고 있습니까?)
Firefeather

10

Pearson 통계량은 분포가 변하므로 일반적으로 로지스틱 모형 적합도에 권장되지 않습니다. 나는 구조화 된 테스트 (선형성, 가산 성)를 선호합니다. 옴니버스 테스트를 원하면 R rms패키지 residuals.lrm기능 에서 구현 된 단일 자유도 le Cessie-van Houwelingen-Copas-Hosmer 비가 중 제곱합 테스트를 참조하십시오 .


2
-1 : 통찰력에 감사드립니다! 그러나 이것은 내 질문에 대답하지 않습니다. 내 질문의 배경에서 작성한 진술에 대한 관련 주석 / 토론이기 때문에 귀하의 답변은 답변이 아닌 의견에 속할 수 있습니다.
Firefeather

2
내 답변에 투표 한 네 사람이 당신의 의견에 동의하지 않는 것 같습니다. 그리고 당신은 퇴보 분포를 다루지 않았습니다.
Frank Harrell

@ FrankHarrell :이 GOF 측정 값이 Hosmer-Lemeshow (HL) GOF 테스트와 다른가요? 이름 때문에 그렇게 가정하고 ResourceSelection패키지 에서 찾은대로 HL GOF 테스트를 수행 했으며 그 결과는 resid(lrm_object, 'gof')로지스틱 회귀 모델을로 피팅 한 후 실행 결과와 다릅니다 lrm_object <- lrm(...). 그것들이 실제로 다르다면, HL 테스트가 여기서 언급 한 것과 비교하여 어떻게 쌓여 있는지에 대해 언급 할 수 있습니까? 감사합니다!
Meg

1
둘은 크게 다릅니다. HL 통계 (현재는 사용되지 않음)는 고정 된 df를 가지고 있으며 일반적으로 위험의 십분 위를 기반으로합니다. HLχ2 따라서 통계량은 N. 반면에, 조심하십시오χ2 df가 계속 확장되는 통계 N.
Frank Harrell

이 퇴보를 보여주는 시뮬레이션을보고 싶습니다.
wdkrnls

0

고마워, 나는 그것이 간단하다는 것을 몰랐다 : sum (residuals (f1, type = "pearson") ^ 2) 그러나 피어슨 잔차는 공변량 그룹 또는 개인에 의해 계산되는지 여부에 따라 다릅니다. 간단한 예 :

m1은 행렬입니다 (이것은 더 큰 행렬의 머리입니다).

m1 [1 : 4,1 : 8]

    x1 x2 x3 obs    pi   lev  yhat y
obs  1  1 44   5 0.359 0.131 1.795 2
obs  0  1 43  27 0.176 0.053 4.752 4
obs  0  1 53  15 0.219 0.062 3.285 1
obs  0  1 33  22 0.140 0.069 3.080 3

x1-3이 예측 변수 인 경우 obs는 no입니다. 각 그룹의 관측치, pi는 그룹 구성원의 확률 (회귀 방정식으로 예측 됨), lev는 레버리지, 모자 매트릭스의 대각선, 예측 된 아니오입니다. 그룹에서 (의 y = 1) 및 y의 실제 번호.

이것은 피어슨을 그룹별로 제공합니다. y == 0 인 경우 어떻게 다른지 참고하십시오. ' 'fun1 <- function(j){        if (m1[j,"y"] ==0){ # y=0 for this covariate pattern     Pr1 <- sqrt( m1[i,"pi"] / (1-m1[i,"pi"]))     Pr2 <- -sqrt (m1[i,"obs"]) res <- round( Pr1 * Pr2, 3) return(res) } else {  Pr1 <- m1[j,"y"] - m1[j,"yhat"] Pr2 <- sqrt(   m1[j,"yhat"] * ( 1-(m1[j,"pi"]) )   ) res <- round( Pr1/Pr2, 3) return(res) }    }

그러므로

nr <-nrow(m1)
nr1 <- seq(1,nr)
Pr <- sapply(1:nrow[m1], FUN=fun1)
PrSj <- sum(Pr^2)

y = 0 공변량 패턴을 갖는 다수의 대상체가 존재하는 경우, "개별적"방법보다는 "그룹 별"을 사용하여 계산할 때 피어 톤 잔차가 훨씬 더 클 것이다.

예를 들어 Hosmer & Lemeshow "Applied Logistic Regression", Wiley, 200을 참조하십시오.


0

를 사용 c_hat(mod)하여와 동일한 출력을 제공 할 수도 있습니다 sum(residuals(mod, type = "pearson")^2).


1
어떤 패키지가 c_hat있습니까?
Firefeather
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.