R의 polr 함수 (순서 로지스틱 회귀)의 출력을 이해하는 방법은 무엇입니까?


26

나는 R을 처음 사용하고 로지스틱 회귀를 주문했다 polr.

polr 에 대한 도움말 페이지 하단의 "예제"섹션 (로지스틱 또는 프로 빗 회귀 모델을 정렬 된 요인 반응에 적합)

options(contrasts = c("contr.treatment", "contr.poly"))
house.plr <- polr(Sat ~ Infl + Type + Cont, weights = Freq, data = housing)
pr <- profile(house.plr)
plot(pr)
pairs(pr)
  • 어떤 정보가 pr포함되어 있습니까? 프로파일 의 도움말 페이지 는 일반적이며 polr에 대한 지침을 제공하지 않습니다.

  • 무엇을 plot(pr)보여주고 있습니까? 6 개의 그래프가 보입니다. 레이블은 인디케이터 변수이지만 서수 값의 인디케이터 인 입력 변수처럼 보이지만 각각 X 축은 숫자입니다. 그런 다음 Y 축은 완전히 설명 할 수없는 "tau"입니다.

  • 무엇을 pairs(pr)보여주고 있습니까? 각 입력 변수 쌍에 대한 플롯처럼 보이지만 X 또는 Y 축에 대한 설명은 없습니다.

  • 모델이 잘 맞는지 어떻게 알 수 있습니까? summary(house.plr)잔류 편차 3479.149 및 3495.149의 AIC (Akaike Information Criterion?)를 보여줍니다. 그것은 좋습니까? 상대 측정법으로 만 유용한 경우 (예 : 다른 모형 적합과 비교) 좋은 절대 측정법은 무엇입니까? 잔차 이탈은 대략 카이 제곱 분포입니까? 원본 데이터 또는 일부 교차 검증에서 "정확하게 예측 된 %"를 사용할 수 있습니까? 가장 쉬운 방법은 무엇입니까?

  • anova이 모델에 어떻게 적용하고 해석 합니까? 문서에는 "예측, 요약, vcov, anova를 포함한 표준 모형 적합 함수에 대한 방법이 있습니다"라고 말합니다. 그러나 anova(house.plr)결과를 실행 하면anova is not implemented for a single "polr" object

  • 각 계수의 t 값을 어떻게 해석합니까? 일부 모형 적합과 달리 여기에는 P 값이 없습니다.

나는 이것이 많은 질문이라는 것을 알고 있지만, 7 가지 질문보다는 하나의 묶음 ( "어떻게 이것을 사용 하는가?")으로 물어 보는 것이 좋습니다. 모든 정보에 감사드립니다.


3
@dfrankow 첫 두 질문에 대해 다소 조잡하고 확실하게 부분적으로 도움이되지만 methods("profile")R profile객체 와 관련된 (이 경우 S3) 방법 을 제공하면 polr결과에 대한 전용 방법보다 더 많이 볼 수 있습니다. getAnywhere("profile.polr")R 프롬프트에서 입력하여 온라인 .
chl

1
감사! 소스 코드가 좋습니다. 설명이 더 나을 것입니다. :)
dfrankow

1
누군가가 Venables와 Ripley의 "S를 사용한 현대 응용 통계"라고 지적했습니다. 7.3 절에는이 주택 모델을 광범위하게 다루는 "4 방향 주파수 표 예"가 있습니다. Reading ..
dfrankow

실제로 섹션은 "비례 확률 모델"
dfrankow

답변:


17

순서화 된 로지스틱 회귀 분석에 대한보다 나은 설명과 이해를 위해 범주 형 데이터 분석 (Alan Agresti의 범주 형 데이터 분석, 2002 참조)에 관한 책을 참조하십시오 . 당신이 묻는 모든 질문은 기본적으로 그러한 책의 몇 장으로 대답됩니다. 당신은 단지에 관심이 있다면 R, 관련 예 R에서 선형 모델을 확장 하여 줄리안 원경 (CRC 출판사, 2008) 좋은 참조입니다.

귀하의 질문에 대답하기 전에 순서 로지스틱 회귀 분석 은 범주가 정렬 된 다항 로짓 모형 입니다. 우리가 가정 카테고리 정렬 개별 동안 그 I 서수 응답, Y I , P I J = P를 ( Y = J가 ) 에 대한 J = 1 , . . . , J . 정렬 식 응답을 사용하면 누적 확률을 사용하는 것이 더 쉽습니다. γ i j = PJiYipij=P(Yi=j)j=1,...,J . 누적 확률은 증가하고 인접 범주를 결합하는 데 변하지 않습니다. 또한 γ i J = 1 이므로 모형확률만 필요합니다.γij=P(Yij)γiJ=1J1

이제 를 공변량 에 연결하려고합니다 . 귀하의 경우, 3 개 주문 수준이 있습니다 , , . 순서가 아닌 순서대로 처리하는 것이 더 합리적입니다. 나머지 변수는 공변량입니다. 고려중인 특정 모델은 비례 승산 모델 이며 수학적으로 다음과 같습니다. xγijxSatlowmediumhigh

여기서  γ j ( x i ) = P ( Y ij | x i )

logit γj(xi)=θjβTxi,j=1J1
where γj(xi)=P(Yij|xi)

과 비교 하는 대한 상대 확률 은 다음 과 같습니다.x 1 x 2Yjx1x2

(γj(x1)1γj(x1))/(γj(x2)1γj(x2))=exp(βT(x1x2))

위의 표현은 의존하지 않습니다 . 물론, 주어진 데이터 집합에 대해 비례 배당률의 가정을 확인해야합니다.j

이제 몇 가지 (1, 2, 4) 질문에 대답하겠습니다.

모델이 잘 맞는지 어떻게 알 수 있습니까? summary (house.plr)는 잔류 편차 3479.149와 AIC (Akaike Information Criterion?)가 3495.149임을 보여줍니다. 그것은 좋습니까? 상대 측정법으로 만 유용한 경우 (예 : 다른 모형 적합과 비교) 좋은 절대 측정법은 무엇입니까? 잔차 이탈은 대략 카이 제곱 분포입니까? 원본 데이터 또는 일부 교차 검증에서 "정확하게 예측 된 %"를 사용할 수 있습니까? 가장 쉬운 방법은 무엇입니까?

적합 모델 polr은 특별 glm하므로 glm여기 에서 전통적으로 적용 되는 모든 가정이 적용됩니다. 모수를 올바르게 관리하면 분포를 알아낼 수 있습니다. 특히, 모델이 좋은지 아닌지 를 테스트하기 위해 다음과 같은 null을 테스트하는 fit of goodness fit 을 수행 할 수 있습니다 (이것은 미묘한 점입니다. 잘 맞으려면 거부하십시오.) :

Ho: current model is good enough 

이를 위해 카이-제곱 테스트 를 사용합니다. p- 값은 다음과 같이 얻습니다.

1-pchisq(deviance(house.plr),df.residual(house.plr))

대부분의 경우 모델이 적합하다는 결론을 내기 위해 null을 거부하지 않도록 0.05보다 큰 p- 값을 얻으려고합니다 (철도 적 정확성은 무시 됨).

많은 수의 매개 변수를 원하지 않는 동시에 AIC가 잘 맞아야합니다. stepAIC이것을 확인하는 좋은 방법입니다.

예, 교차 검증을 사용하여 예측이 유지되는지 확인할 수 있습니다. 참조 predict기능 (옵션 : type = "probs")에 ?polr. 주의해야 할 것은 공변량입니다.

홍보에는 어떤 정보가 포함되어 있습니까? 프로파일의 도움말 페이지는 일반적이며 polr에 대한 지침을 제공하지 않습니다.

@chl 및 기타에서 지적한 바와 같이 prCI를 얻는 데 필요한 모든 정보 및의 가능성 관련 정보가 포함되어 polr fit있습니다. 모든 glm로그는 로그 우도에 대해 반복 가중 최소 제곱 추정 방법을 사용하여 적합합니다. 이 최적화에서는 분산 공분산 행렬, CI, t- 값 등을 계산하는 데 필요한 많은 정보 (참조를 참조하십시오)를 얻습니다. 여기에는 모든 정보가 포함됩니다.

각 계수의 t 값을 어떻게 해석합니까? 일부 모형 적합과 달리 여기에는 P 값이 없습니다.

일반 선형 모형 (special glm) 과는 달리 glm, 회귀 계수에 대한 다른 t 분포는 좋지 않습니다. 따라서 최대 우도 이론을 사용하여 모수 추정값과 점근 적 분산 공분산 행렬 만 얻을 수 있습니다. 따라서:

Variance(β^)=(XTWX)1ϕ^

추정치를 표준 오류로 나눈 것은 BDR과 WV가 t- 값을 부르는 것입니다 ( MASS여기서는 규칙을 가정 합니다). 정규 선형 회귀 분석의 t- 값과 동일하지만 t- 분포를 따르지 않습니다. CLT를 사용하면 무 정규 정규 분포입니다. 그러나 그들은이 근사치를 사용하지 않기를 원하므로 p- 값은 없습니다. (내가 틀리지 않았 으면 좋겠다. 만약 내가 BDR이이 포럼에 있지 않기를 바란다. 내가 틀렸다면 누군가 나를 교정 할 것이다.)


더 추가하겠습니다.
suncoolsu

1
고마워 나는 그것을 여러 번 읽었다. 많은 질문이 남아 있습니다. 1. R에서 기능적으로 비례 배당 가정을 어떻게 테스트합니까? 2. 카이 제곱 테스트가 올바른지 확인 하시겠습니까? 이 예에서는 0을 반환합니다. .. crappy fit? 그러나 일부 t 값은 상당히 높습니다 (InflHigh 10.1, InflMedium 5.4, ContHigh 3.7). 3. 줄거리 나 짝이 무엇입니까?
dfrankow

당신의 광범위한 답변 suncoolsu에 감사드립니다. 나는 비슷한 상황에 처해 있으며 몇 가지 질문이 있습니다. 1. 또한 카이-제곱 검정 방정식을 사용하여 모든 모델에 대해 0을 얻습니다. 2. AIC의 Wikipedia 페이지에 "선호하는 모델은 최소 AIC 값을 가진 모델입니다."라고 말하지만 "AIC가 적합해야합니다." 이 계정을 조정하려고합니다.
Sam Swift

@dfrankow와 @Sam Swift. 죄송합니다. 몇 가지 서류를 작성하는 데 조금 바빴습니다. Ok-p- 값 = 0을 얻는 경우 적합도 검정이 실패하여 모형이 적합하지 않음을 의미합니다. AIC의 문제와 관련하여 wikipedia와 저는 다른 규칙을 사용하고 있습니다. BDR 및 WV에서 사용되는 것을 사용하고 있습니다. (참조, Dr. Julian Faraway의 R에서 선형 모델 확장)
suncoolsu


3

나는 여기서 대화를 크게 즐겼지만 대답이 당신이 제기 한 질문에 대한 (매우 좋은) 모든 구성 요소를 올바르게 다루지 못했다고 생각합니다. 예제 페이지의 후반부 polr는 모두 프로파일 링에 관한 것입니다. 프로파일 링과 그 기능에 대해 이야기하는 Venerables와 Ripley가 좋은 기술 참조 자료입니다. 이는 완전 우도 (정규 GLM)를 사용하여 지수 패밀리 모델을 피팅하는 안락 영역을 넘어 설 때 중요한 기술입니다.

k1klmernls, polrglm.nb.

객체는 본질적으로 GLM (범주 임계 값)이므로 도움말 페이지를 ?profile.glm사용해야합니다 polr. 마지막으로 실제로 사용하는 경우을 사용하여 소스 코드에서 피크를 얻을 수 있습니다 getS3method('profile', 'polr'). getS3methodR은 많은 메소드를 숨겨야한다고 주장하지만 코드를 검토하여 구현 및 메소드에 대해 놀랍게도 많이 배울 수 있기 때문에이 함수를 많이 사용 합니다.

• 홍보에는 어떤 정보가 포함되어 있습니까? 프로파일의 도움말 페이지는 일반적이며 polr에 대한 지침을 제공하지 않습니다.

prA는 profile.polr, profile객체 (상속 클래스 profile). 각 공변량에 대한 항목이 있습니다. 프로파일 러는 각 공변량을 반복하고 약간 다른 양으로 고정 된 공변량으로 최적 모형 적합을 다시 계산합니다. 결과는 추정값과 다른 공변량의 결과 고정 효과와의 스케일 된 "z- 점수"차이로 측정 된 공변량의 고정 값을 보여줍니다. 예를 들어을 보면 pr$InflMedium"z"가 0 일 때 다른 고정 효과는 원래 맞춤에서 찾은 것과 동일합니다.

• plot (pr)은 무엇을 보여줍니까? 6 개의 그래프가 보입니다. 레이블은 인디케이터 변수이지만 서수 값의 인디케이터 인 입력 변수처럼 보이지만 각각 X 축은 숫자입니다. 그런 다음 Y 축은 완전히 설명 할 수없는 "tau"입니다.

다시 ?plot.profile설명을 제공합니다. 이 플롯은 회귀 계수가 어떻게 covary되는지 대략적으로 보여줍니다. tau는 스케일링 된 차이이며, z 점수는 이전의 점수이므로 0 값은 눈금에 표시된 최적의 적합 계수를 제공합니다. 이 적합이 잘 동작한다고 말하지는 않지만 그 "선"은 실제로 스플라인입니다. 최적의 적합도에서 가능성이 매우 불규칙적으로 작동하면 그림에서 이상하고 예측할 수없는 동작이 관찰됩니다. 보다 강력한 오류 추정 (부트 스트랩 / 잭나이프)을 사용하여 출력을 추정하거나을 사용하여 CI를 계산 method='profile'하거나 변수를 코딩하거나 다른 진단을 수행해야합니다.

• 페어 (pr)는 무엇입니까? 각 입력 변수 쌍에 대한 플롯처럼 보이지만 X 또는 Y 축에 대한 설명은 없습니다.

도움말 파일은 다음과 같이 말합니다. "pairs 방법은 매개 변수 x와 y의 각 쌍에 대해 최대 우도 추정치에서 교차하는 두 개의 곡선을 보여줍니다. 정확하게 이변 량 정규 프로파일 가능성의 경우,이 두 곡선은 y | x와 x ​​| y의 조건 적 수단을 제공하는 직선 일 것이고, 윤곽은 정확히 타원형 일 것입니다. " 기본적으로 신뢰 타원을 시각화하는 데 도움이됩니다. 직각이 아닌 축은 직관적으로 매우 관련이있는 InfMedium 및 InfHigh와 같이 고도로 공 변동 가능한 측정 값을 나타냅니다. 다시 말하지만, 불규칙한 가능성은 여기에서 상당히 당황스러운 이미지로 이어질 것입니다.

• 모델이 잘 맞는지 어떻게 알 수 있습니까? summary (house.plr)는 잔류 편차 3479.149와 AIC (Akaike Information Criterion?)가 3495.149임을 보여줍니다. 그것은 좋습니까? 상대 측정법으로 만 유용한 경우 (예 : 다른 모형 적합과 비교) 좋은 절대 측정법은 무엇입니까? 잔차 이탈은 대략 카이 제곱 분포입니까? 원본 데이터 또는 일부 교차 검증에서 "정확하게 예측 된 %"를 사용할 수 있습니까? 가장 쉬운 방법은 무엇입니까?

평가하기에 좋은 가정은 비례 배당 가정입니다. 이것은 전역 테스트 (포화 로그 선형 모델에 대한 polr 평가)에 다소 반영됩니다. 여기에서 한계는 큰 데이터를 사용하면 전역 테스트가 항상 실패한다는 것입니다. 결과적으로, 로그 선형 모델과 polr fit에 그래픽을 사용하고 추정치 (베타)와 정밀도 (SE)를 검사하는 것이 좋습니다. 그들이 크게 동의하지 않는다면 뭔가 잘못되었을 수 있습니다.

정렬 된 결과에서는 백분율 동의를 정의하기가 어렵습니다. 모델을 기준으로 분류기를 어떻게 선택하고 어떻게하면 분류기의 성능이 저하 될 수 있습니다. mode나쁜 선택입니다. 내가 10 개의 범주 로짓을 가지고 있고 나의 예측이 항상 하나의 범주에서 벗어나면, 그것은 나쁜 것이 아닙니다. 또한 내 모델은 0 응답의 40 % 확률뿐만 아니라 8, 9, 10의 20 % 확률을 정확하게 예측할 수 있습니다. 따라서 9가 좋은지 나쁜지 관찰하십시오. 계약을 측정해야하는 경우 가중 kappa 또는 MSE를 사용하십시오. 로그 선형 모형은 항상 최상의 일치를 생성합니다. 그것은 POLR이하는 일이 아닙니다.

•이 모델에서 anova를 어떻게 적용하고 해석합니까? 문서에는 "예측, 요약, vcov, anova를 포함한 표준 모형 적합 함수에 대한 방법이 있습니다"라고 말합니다. 그러나 anova (house.plr) 결과를 실행하면 단일 "polr"개체에 대해 anova가 구현되지 않습니다.

당신은 중첩 된 모델을 테스트 할 수 있습니다 waldtestlrtest에서 lmtestR.이있는 패키지는 ANOVA에 해당합니다. 해석은 GLM과 정확히 동일합니다.

• 각 계수의 t 값을 어떻게 해석합니까? 일부 모형 적합과 달리 여기에는 P 값이 없습니다.

다시 선형 모델과 달리 POLR 모델은 불규칙 가능성에 문제가있을 수 있으므로 Hessian 기반 추론이 매우 불안정 할 수 있습니다. 혼합 모델 confint.merMod에 적합합니다. 예를 들어 lme4 패키지 의 helpfile을 참조하십시오 . 여기서 프로파일 링으로 수행 한 평가는 공분산이 잘 동작 함을 보여줍니다. 프로파일 링은 계산 상 매우 집중적 일 수 있다는 점을 제외하고 프로그래머는 기본적으로이 작업을 수행했을 것입니다. Wald 기반 추론이 표시되어야하는 경우 패키지 coeftest(house.plr)에서 사용 하십시오 lrtest.


2

R의 비례 배당 가정을 '테스트'(즉, 평가)하기 위해 Frank Harrell Jr.의 설계 패키지에 잔류 물 .lrm ()을 사용할 수 있습니다. ? residuals.lrm을 입력하면 Frank Harrell이 비례 배당률 가정을 평가하는 방법 (즉, 누름 버튼 테스트보다는 시각적으로)을 간단하게 복제 할 수 있습니다. 설계는 lrm ()을 사용하여 정렬 된 로지스틱 회귀를 추정하며, MASS의 polr ()을 대신 할 수 있습니다.

R에서 비례 배당 가정을 시각적으로 테스트하는 방법에 대한보다 공식적인 예는 논문 : 생태학 자의 순서 반응 회귀 모델 : Antoine Guisan 및 Frank E. Harrell 출처 : Journal of Vegetation Science, Vol. 11, No. 5 (2000 년 10 월), 617-626 페이지


3
귀하의 답변에 진심으로 감사드립니다. 그러나 StackExchange의 목적은 참조가 아닌 답변을 제공하는 것입니다. 통계학자는 특히이 참조 문제에 취약한 것으로 보입니다. residues.lrm 사용 방법에 대해 추가 할 수있는 세부 정보가 있습니까? 예를 들어, 명령 예제와 house.plr 예제에 대한 그래프를 해석하는 예제는 무엇입니까?
dfrankow

1
저자의 웹 사이트에서 업데이트 : "디자인 패키지는 이제 폐기되었습니다. R 사용자는 대신 rms 패키지를 사용해야합니다". 마크, 당신의 응답은 저에게 매우 도움이되었습니다.
탈 Galili
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.