<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />매우 드문 이벤트가 있는 이진 응답 변수로 LR을 테스트하기 위해 각각 20M 포인트의 세 가지 데이터 세트를 시뮬레이션했습니다.
1) 두 가지 연속 효과: Beta0=12, beta1=1 및 Beta2=1. X1은 정상(-0.8, .25)이고 X2는 -ABS[정상(0,5)]입니다. (두 변수는 각각 변수의 값에 따라 사건의 확률을 높입니다.) 이 경우 20M 샘플에 약 711,000개의 긍정적인 사건이 있습니다. LR을 실행할 때 세 가지 베타에 대한 상당히 좋은 추정치를 얻었습니다. 비 0 = 12.003, 비 1 =1.005, 비 2 =0.99996. RSquare(U)=0.623, AICc=2,314,760 및 BIC=2,314,804. ROC AUC=0.97835.
2) 두 번째 데이터 세트에는 하나의 연속 효과와 하나의 범주 효과가 있습니다. 이 데이터의 경우 첫 번째 데이터 세트의 두 번째 연속 변수를 확률 0.05 및 Beta2 = -2로 발생하는 이진 변수로 바꿉니다. 이 데이터에는 총 2천만 개의 샘플 중 394개의 이벤트만 포함되어 있습니다. LR 실행 시 추정치는 다음과 같습니다. 비 0 = 11.0988, 비 1 =1.184, 비 2 =-1.01. RSquare(U)=0.0283, AICc=9,068 및 BIC=9,112. AUC가 0.68인 ROC. 따라서 Beta0 및 Beta1 추정치는 합리적이지만 명목 변수에 대한 Beta2 추정치는 실제 값의 절반으로 나타납니다. .
3) 세 번째 데이터 세트를 생성하기 위해 두 가지 효과를 모두 이항적으로 생성된 이진 변수로 사용합니다. 첫 번째 데이터 세트의 연속 변수 하나를 확률 0.05 및 Beta2 = -2로 발생하는 이진 변수로 바꿉니다. 두 번째 연속 변수를 확률이 0.1이고 베타 = -1인 다른 이항 생성 무작위 변수로 바꿉니다. 이 데이터에는 총 2천만 개의 샘플 중 165개의 이벤트만 포함되어 있습니다. LR을 실행할 때 추정되는 매개변수 값은 다음과 같습니다. 비 0 = 10.582, 비 1 = - 1.14, 비 2 = - 0.512. RSquare(U)=0.0384, AICc=4,038 및 BIC=4,082. ROC AUC=0.6756. 따라서 Beta0 추정치는 합리적이지만 두 명목 변수에 대한 Beta1 및 Beta2 추정치는 실제 값의 절반으로 나타납니다.
내가 여기서 무엇을 놓치고 있습니까? 범주형 변수의 계수 추정치가 실제 값의 절반이어야 하는 이유는 무엇입니까?
내 다음 테스트는 비이벤트를 언더샘플링한 다음 베타0에 언더샘플링 보정을 적용하는 것입니다. 하지만 먼저 JMP에서 LR이 생성한 추정치를 이해하고 싶습니다. 어떤 제안이나 설명이라도 대단히 감사하겠습니다.
범주형 요인을 코딩하는 방법은 모델 유형이 아니라 문제입니다. 목록에 -1이 있는 것은 아닙니다.
1/0 코딩을 시도하십시오
ranjan@mitre.org Apr 14, 2014 10:44 AM
I coded the nominal variables as 0/1 as you recommend and then did not use them, and applied the appropriate betas in the P calculation.
그게 무슨 뜻인지 모르겠어...
여기에서 답을 얻지 못한 경우 언제든지 기술 지원에 문의할 수 있습니다. JMP에 더 익숙한 사람들이 있습니다.
리자
보내주신 링크는 선형 모델에 적용됩니다. Logistic Regression을 사용하고 있습니다.
나는 당신이 추천하는대로 명목 변수를 0/1로 코딩 한 다음 사용하지 않았고 P 계산에 적절한 베타를 적용했습니다. 이제 세 가지 베타의 추정치는 10.52, 0.9848 및 0.6534입니다. 따라서 명목 변수에 해당하는 Beta1 및 Beta2는 여전히 실제 값의 절반 정도인 것처럼 보이지만 이제 부호는 원래 있어야 하는 것과 반대입니다. -2의 True Beta1은 0.9848로 추정되고 -1의 True Beta2는 0.6534로 추정됩니다. 도움이 되셨다면 짧은 버전의 파일을 첨부하겠습니다. (JMP에서 LR을 실행할 시간이 있다면 충분한 이벤트를 얻기 위해 파일을 상당히 확장해야 합니다. 20M 행의 파일을 사용합니다.
감사
http://www.jmp.com/support/help/The_Factor_Models.shtml#65535
0/1로 코딩하고 원하는 결과를 얻는지 확인하기 위해 명목 효과에 포함하지 마십시오.
JMP가 명목 변수를 분류하는 방법에 대한 위의 링크를 참조하십시오.
명목 변수를 0과 베타 값으로 코딩한 다음 로지스틱 표현식(1/(1+exp(beta0+Beta1+Beta2 ))). 효과란의 항목은 해당 항목이 명목효과로 지정되면 그냥 '라벨'로 사용되는 것으로 가정했습니다. 0/1과 1/2가 차이가 나는 경우 열에 입력된 값이 어떻게든 사용된다는 의미입니까?
JMP만큼 익숙하지 않지만 SAS에서 이러한 현상이 발생하는 몇 가지 이유는 다음과 같습니다.
1. 바이너리 변수(0/1)를 코딩한 방법이 1/2와 다른지 확인합니다.
2. 어떤 종류의 자동 범주를 사용한 경우 그것이 어떻게 매개변수화되는지 확인하십시오(예: 효과 코딩 또는 참조 코딩).