여러 예측 변수가있는 로짓 모형에 대한 확률 곡선 그래프


12

다음과 같은 확률 함수가 있습니다.

Prob=11+ez

어디

z=B0+B1X1++BnXn.

내 모델은 다음과 같습니다

Pr(Y=1)=11+exp([3.92+0.014×(bid)])

이것은 아래와 같은 확률 곡선을 통해 시각화됩니다.

여기에 이미지 설명을 입력하십시오

원래 회귀 방정식에 몇 가지 변수를 추가하는 것을 고려하고 있습니다. 모델에 성별 (범주 : F 및 M)과 연령 (범주 : <25 및> 26)을 추가한다고 가정 해 보겠습니다.

Pr(Y=1)=11+exp([3.92+0.014×(bid)+0.25×(gender)+0.15×(age)])

RI에서는 세 가지 예측 변수를 모두 고려할 때 Y = 1의 확률을 알려주는 유사한 확률 곡선을 생성 할 수 있습니다. 내가 잃어버린 곳에서 이러한 변형의 모든 가능한 순열에 대한 확률을 찾고 싶습니다.

입찰가 = 1, 성별 = M, 연령이> 26 인 경우 Y = 1 일 확률은 얼마입니까? 마찬가지로 입찰 = 2, 성별 = F, 연령이> = 26 인 경우 Y = 1 일 확률은 얼마입니까?

이것을 시각화 할 수있는 확률 곡선을 생성하고 싶습니다.

누구든지 도울 수 있습니까? 로짓 모델에서 어떤 종류의 정보를 얻을 수 있는지 완전히 오해 할 수도 있지만 이론을 오해하고 있는지 알려주십시오.


코드가 R 에서이 작업을 수행하거나 개념적으로 문제를 이해하기를 원하십니까?
gung-Monica Monica 복원

선택해야한다면, 개념적으로 문제를 말할 것입니다. 나는 스스로 알아낼 수있는 R 코드를 생각합니다.
ATMathew

2
평범한 (최소 제곱) 회귀로 동일한 문제를 해결하는 것이 편한 경우 응답을 로그 확률 ( )로 표현하고 알고있는 기술을 사용하는 것이 어떻습니까? B0+B1X1++BnXn
whuber

1
물론 @FrankHarrell rms 패키지를 살펴보십시오 ( RMS 웹 사이트 에서 광범위한 문서를 찾을 수 있음 ). Predict()and plot.Predict()함수로 시작하여 수행 가능한 작업의 느낌을 얻습니다 (여기에는 를 의 함수로 플로팅하는 것이 포함 되며 는 기본값으로 설정되어 있음) 또는 선택한 고정 값). Pr(Y=1|x2,,xp)x1x2,,xp
chl

답변:


24

다행스럽게도 연속 공변량이 하나 뿐입니다 . 따라서, 각각 BID와 의 관계에 따라 4 개의 (즉, 2 SEX x 2 AGE) 플롯을 만들 수 있습니다 . 또는 네 개의 다른 선이있는 하나의 플롯을 만들 수 있습니다 (다른 선 스타일, 가중치 또는 색상을 사용하여 구분할 수 있음). BID 값 범위에 대해 네 가지 조합 각각에서 회귀 방정식을 풀면 이러한 예측 된 선을 얻을 수 있습니다. p(Y=1)

더 복잡한 상황은 둘 이상의 연속 공변량이있는 경우입니다. 이와 같은 경우에는 종종 어떤 의미에서 '1 차'인 특정 공변량이 있습니다. 이 공변량은 X 축에 사용할 수 있습니다. 그런 다음 다른 공변량의 사전 지정된 여러 값 (일반적으로 평균 및 +/- 1SD)을 해결합니다. 다른 옵션으로는 다양한 유형의 3D 플롯, 코 플롯 또는 대화식 플롯이 있습니다.

다른 질문에 대한 내 대답은 여기에 2 개 이상의 차원에서 데이터를 탐험 플롯의 범위에 대한 정보를 제공합니다. 원시 값이 아닌 모델의 예측 값을 제시하는 데 관심이 있다는 점을 제외하고는 귀하의 경우는 본질적으로 유사합니다.

최신 정보:

이 그림을 만들기 위해 간단한 예제 코드를 R로 작성했습니다. 몇 가지 주목할 점은 '조치'가 조기에 이루어지기 때문에 700을 통해 BID를 실행 한 것입니다 (그러나 2000으로 확장 할 수 있음). 이 예제에서는 사용자가 지정하는 함수를 사용하고 첫 번째 카테고리 (예 : 여성 및 청소년)를 참조 카테고리 (R의 기본값)로 사용합니다. @whuber가 자신의 의견에 메모 한대로, LR 모형은 로그 확률이 ​​선형이므로 원하는 경우 OLS 회귀 분석에서와 같이 예측값의 첫 번째 블록을 사용하고 플롯 할 수 있습니다. 로 짓은 모형을 확률에 연결할 수있는 연결 함수입니다. 두 번째 블록은 로짓 함수의 역함수를 통해, 즉 지수를 기수로 바꾸고 확률을 1+ 홀수로 나눔으로써 로그 확률을 확률로 변환합니다. (I 링크 기능의 성격과 모델의 유형을 논의 여기에 당신이 더 많은 정보를 원하는 경우.)

BID = seq(from=0, to=700, by=10)

logOdds.F.young = -3.92 + .014*BID
logOdds.M.young = -3.92 + .014*BID + .25*1
logOdds.F.old   = -3.92 + .014*BID         + .15*1
logOdds.M.old   = -3.92 + .014*BID + .25*1 + .15*1

pY.F.young = exp(logOdds.F.young)/(1+ exp(logOdds.F.young))
pY.M.young = exp(logOdds.M.young)/(1+ exp(logOdds.M.young))
pY.F.old   = exp(logOdds.F.old)  /(1+ exp(logOdds.F.old))
pY.M.old   = exp(logOdds.M.old)  /(1+ exp(logOdds.M.old))

windows()
  par(mfrow=c(2,2))
  plot(x=BID, y=pY.F.young, type="l", col="blue", lwd=2, 
       ylab="Pr(Y=1)", main="predicted probabilities for young women")
  plot(x=BID, y=pY.M.young, type="l", col="blue", lwd=2, 
       ylab="Pr(Y=1)", main="predicted probabilities for young men")
  plot(x=BID, y=pY.F.old, type="l", col="blue", lwd=2, 
       ylab="Pr(Y=1)", main="predicted probabilities for old women")
  plot(x=BID, y=pY.M.old, type="l", col="blue", lwd=2, 
       ylab="Pr(Y=1)", main="predicted probabilities for old men")

다음 플롯을 생성합니다.
여기에 이미지 설명을 입력하십시오
이 함수는 처음에 설명한 4 개의 병렬 플롯 접근 방식이 그다지 독특하지 않다는 점에서 충분히 유사합니다. 다음 코드는 내 '대체'접근법을 구현합니다.

windows()
  plot(x=BID, y=pY.F.young, type="l", col="red", lwd=1, 
       ylab="Pr(Y=1)", main="predicted probabilities")
  lines(x=BID, y=pY.M.young, col="blue", lwd=1)
  lines(x=BID, y=pY.F.old,   col="red",  lwd=2, lty="dotted")
  lines(x=BID, y=pY.M.old,   col="blue", lwd=2, lty="dotted")
  legend("bottomright", legend=c("young women", "young men", 
         "old women", "old men"), lty=c("solid", "solid", "dotted",
         "dotted"), lwd=c(1,1,2,2), col=c("red", "blue", "red", "blue"))

결과적으로이 줄거리는 다음과 같습니다.
여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.