간단한 확률이 내 문제에 효과가 있는지 또는 로지스틱 회귀와 같은보다 정교한 방법을 사용하고 배우는 것이 더 나은지 결정하려고합니다.
이 문제의 반응 변수는 이항 반응 (0, 1)입니다. 나는 모두 범주적이고 순서가없는 많은 예측 변수를 가지고 있습니다. 예측 변수의 조합이 1의 가장 높은 비율을 산출하는지 확인하려고합니다. 로지스틱 회귀가 필요합니까? 범주 형 예측 변수의 각 조합에 대해 샘플 세트의 비율을 계산하는 것이 어떻게 유리합니까?
간단한 확률이 내 문제에 효과가 있는지 또는 로지스틱 회귀와 같은보다 정교한 방법을 사용하고 배우는 것이 더 나은지 결정하려고합니다.
이 문제의 반응 변수는 이항 반응 (0, 1)입니다. 나는 모두 범주적이고 순서가없는 많은 예측 변수를 가지고 있습니다. 예측 변수의 조합이 1의 가장 높은 비율을 산출하는지 확인하려고합니다. 로지스틱 회귀가 필요합니까? 범주 형 예측 변수의 각 조합에 대해 샘플 세트의 비율을 계산하는 것이 어떻게 유리합니까?
답변:
로지스틱 회귀는 수치 적 부정확도까지 표로 표시 한 백분율과 정확히 일치합니다. 따라서 독립 변수가 인수 객체 factor1등이고 종속 결과 (0 및 1)가 인 x경우 다음과 같은 표현식으로 효과를 얻을 수 있습니다
aggregate(x, list(factor1, <etc>), FUN=mean)
이것을 다음과 비교하십시오
glm(x ~ factor1 * <etc>, family=binomial(link="logit"))
예를 들어, 임의의 데이터를 생성 해 봅시다 :
set.seed(17)
n <- 1000
x <- sample(c(0,1), n, replace=TRUE)
factor1 <- as.factor(floor(2*runif(n)))
factor2 <- as.factor(floor(3*runif(n)))
factor3 <- as.factor(floor(4*runif(n)))
요약 은
aggregate.results <- aggregate(x, list(factor1, factor2, factor3), FUN=mean)
aggregate.results
출력 내용
Group.1 Group.2 Group.3 x
1 0 0 0 0.5128205
2 1 0 0 0.4210526
3 0 1 0 0.5454545
4 1 1 0 0.6071429
5 0 2 0 0.4736842
6 1 2 0 0.5000000
...
24 1 2 3 0.5227273
나중에 참조 할 수 있도록 출력의 6 행에서 수준 (1,2,0)의 요인에 대한 추정치는 0.5입니다.
로지스틱 회귀 는 다음과 같이 계수를 포기합니다.
model <- glm(x ~ factor1 * factor2 * factor3, family=binomial(link="logit"))
b <- model$coefficients
이를 사용하려면 물류 기능이 필요합니다.
logistic <- function(x) 1 / (1 + exp(-x))
예를 들어, 수준 (1,2,0)의 요인에 대한 추정치를 구하려면
logistic (b["(Intercept)"] + b["factor11"] + b["factor22"] + b["factor11:factor22"])
(모든 상호 작용이 모델에 포함되어야하고 올바른 추정값을 얻기 위해 모든 관련 계수를 적용해야하는 방법에 유의하십시오.) 출력은 다음과 같습니다.
(Intercept)
0.5
의 결과에 동의합니다 aggregate. (출력의 "(인터셉트)"표제는 입력의 흔적이며이 계산에는 사실상 의미가 없습니다.)
또 다른 형식의 동일한 정보가의 출력에 나타납니다table . 예를 들어, (길이) 출력
table(x, factor1, factor2, factor3)
이 패널을 포함합니다 :
, , factor2 = 2, factor3 = 0
factor1
x 0 1
0 20 21
1 18 21
의 컬럼 factor1레벨 (1,2,0) 및 도시에서의 세 가지 요소에 대응 = 1은 의 값이 동일한 우리가 판독 된 것과 동의, 및 .1xaggregateglm
마지막으로, 데이터 집합에서 가장 높은 비율 을 산출하는 요소 조합은 다음의 출력에서 편리하게 얻을 수 있습니다 aggregate.
> aggregate.results[which.max(aggregate.results$x),]
Group.1 Group.2 Group.3 x
4 1 1 0 0.6071429
각 범주 내에서 이진 반응의 비율 및 / 또는 여러 범주에서 조건부 로 빠르게 살펴 보려면 그래픽 플롯이 유용 할 수 있습니다. 특히, 많은 범주 형 독립 변수에 따른 비율을 동시에 시각화하려면 Mosaic Plots을 제안 합니다.
아래는 블로그 게시물, 영역 기반 플롯 이해 : 통계 그래픽 및 기타 블로그 의 모자이크 플롯 에서 가져온 예 입니다. 이 예는 승객 클래스에 따라 타이타닉 생존자의 비율을 파란색으로 표시합니다. 생존자 비율을 동시에 평가하면서 각 하위 그룹 내 총 승객 수를 여전히 감사 할 수 있습니다 (특히 특정 하위 그룹의 수가 희박하고 더 임의적 인 변동이있을 경우 유용한 정보).

(출처 : theusrus.de )
그런 다음 여러 범주 형 독립 변수에 대해 후속 모자이크 플롯을 조건부로 만들 수 있습니다. 빠른 시각적 요약에서 동일한 블로그 게시물의 다음 예 는 1 등석 및 2 등석의 모든 어린이 승객이 생존 한 반면 3 등석 어린이는 거의 운임이 없음을 보여줍니다. 또한 클래스 간 여성 생존자의 비율이 첫 번째 클래스에서 두 번째 클래스에서 세 번째 클래스로 눈에 띄게 감소했지만 (승무원의 경우 상대적으로 다시 높았지만) 바의 폭이 좁아지면 여성 승무원은 많지 않습니다.

(출처 : theusrus.de )
얼마나 많은 정보가 표시되는지 놀랍습니다. 이것은 네 가지 차원 (계급, 성인 / 어린이, 성별 및 생존자의 비율)의 비율입니다!
나는 당신이 일반적으로 예측이나 더 많은 인과 적 설명에 관심이 있다면 더 공식적인 모델링을 원할 것이라고 동의합니다. 그래픽 플롯은 데이터의 특성에 관한 매우 빠른 시각적 단서가 될 수 있으며 단순히 회귀 모델을 추정 할 때 (특히 다른 범주 형 변수 간의 상호 작용을 고려할 때) 종종 놓칠 수있는 다른 통찰력을 제공 할 수 있습니다.
Nb을 의미합니까? 나는 항상 수치로 더 잘 말합니다!
기능 선택 알고리즘을 살펴 봐야합니다. 귀하의 경우에 적합한 방법 (이진 분류, 범주 변수)은 "최소 중복 최대 관련성"(mRMR) 방법입니다. http://penglab.janelia.org/proj/mRMR/ 에서 온라인으로 빠르게 사용해 볼 수 있습니다 .
response,predictor1,predictor2,predictor3 <line break here> 1,5,4,3 <line break here> 0,5,3,-1 <line break here> 1,1,2,3
나는 신용 점수 분야에서 일하는데, 여기서 이상한 사례로 제시되는 것이 표준입니다.
로지스틱 회귀 분석을 사용하고 범주 형 변수와 연속 변수를 모두 가중치 가중치 (WOE)로 변환 한 다음 회귀 분석의 예측 변수로 사용합니다. 범주 형 변수를 그룹화하고 연속 형 변수를 이산 (binning / classing)하는 데 많은 시간이 소요됩니다.
증거의 무게는 간단한 계산입니다. 그것은 클래스에 대한 확률의 로그이고 인구에 대한 확률의 로그는 적습니다.
WOE = ln (Good (Class) / Bad (Class))-ln (Good (ALL) / Bad (ALL)) 이것은 로지스틱 회귀를 사용하여 구축 된 거의 모든 신용 평가 모델에 대한 표준 변환 방법론. 조각 단위로 같은 숫자를 사용할 수 있습니다.
그것의 장점은 각 WOE에 할당되는 계수가 의미가 있는지 항상 알 수 있다는 것입니다. 음의 계수는 데이터 내의 패턴과 상반되며 일반적으로 다중 공선 성으로 인해 발생합니다. 1.0보다 큰 계수는 초과 보상을 나타냅니다. 대부분의 계수는 0과 1 사이에서 나옵니다.