로지스틱 회귀에 대한 질문


14

이진 로지스틱 회귀 분석을 실행하여 10 년 동안 (1997-2006) 독립 변수 집합에서 충돌 (종속 변수)의 존재 유무를 모델링하고 매년 107 개의 관측치를 얻습니다. 내 독립은 :

  • 토지 분해 (2 가지 유형의 분해에 범주 적);
  • 인구 증가 (0- 아니오; 1- 예);
  • 생계 유형 (0-1 형; 1-2 형);
  • 인구 밀도 (3 단계 밀도);
  • NDVI 연속 (최대 veg 생산성);
  • NDVI t - 1 (전년과의 채식 감소-0-아니요; 1-예)1
  • 와 NDVI의 t - 2 (지난 2 년에서 채식 하락 - 아니 0- 1- 예).2

나는 모든 것이 상당히 새롭다. 이것은 강사가 나에게 준 프로젝트이다. 그래서 나는 조언이나지도에 감사 할 것이다. 나는 이미 multicolliniarity를 ​​테스트했습니다.

기본적으로 내 데이터는 10 년 (전체 1070 개)에 이르는 107 개의 관측 단위 (공간 영역)로 나뉘며 모든 관측 단위에 대해 해당 단위 내에서 해당 시간에 독립 변수의 조건에 대한 '스냅 샷'값이됩니다 ( 부위). 다른 단위 연도 사이의 시간적 NDVI 변화를 평가할 수 있도록 매년 107 개의 값을 개별적으로 인식하도록 로지스틱 회귀 (또는 테이블)를 설정하는 방법을 알고 싶습니다.


2
어떤 소프트웨어를 사용하고 있습니까? 또한 강사는 로지스틱 회귀를 사용하라고 지시 했습니까? 이것은 일종의 다단계 모델을 요구하는 것처럼 보이지만 단지 물류를 배우는 경우 강사의 의도가 아닐 수도 있습니다.
Peter Flom-Monica Monica 복원

1
시간적 자기 상관을 제어하고 싶거나 트렌드를 모델링하고 싶습니까 (위험 요인 효과의 충돌 확률 및 / 또는 시간적 변화 측면에서)?
Macro

단지 시간적 자기 상관
Stephen

데이터의 특성은 공간적입니다. 따라서 진정으로 선택된 모델은이 특성을 고려해야합니다.
hbaghishani

3
시간 자기 상관을 제어하려는 경우 GEE (Generalized Estimating Equations)를 사용하여 강력한 표준 오차를 추정 할 수 있습니다.
Macro

답변:


6

이것은 실제로 매우 복잡한 문제이며 강사의 어려운 질문입니다!

데이터를 구성하는 방식면에서 1070 x 10 사각형이 좋습니다. 예를 들어, R에서 :

> conflict.data <- data.frame(
+ confl = sample(0:1, 1070, replace=T),
+ country = factor(rep(1:107,10)),
+ period = factor(rep(1:10, rep(107,10))),
+ landdeg = sample(c("Type1", "Type2"), 1070, replace=T),
+ popincrease = sample(0:1, 1070, replace=T),
+ liveli =sample(0:1, 1070, replace=T),
+ popden = sample(c("Low", "Med", "High"), 1070, replace=T),
+ NDVI = rnorm(1070,100,10),
+ NDVIdecl1 = sample(0:1, 1070, replace=T),
+ NDVIdecl2 = sample(0:1, 1070, replace=T))
> head(conflict.data)
  confl country period landdeg popincrease liveli popden     NDVI NDVIdecl1 NDVIdecl2
1     1       1      1   Type1           1      0    Low 113.4744         0         1
2     1       2      1   Type2           1      1   High 103.2979         0         0
3     0       3      1   Type2           1      1    Med 109.1200         1         1
4     1       4      1   Type2           0      1    Low 112.1574         1         0
5     0       5      1   Type1           0      0   High 109.9875         0         1
6     1       6      1   Type1           1      0    Low 109.2785         0         0
> summary(conflict.data)
     confl           country         period     landdeg     popincrease         liveli        popden         NDVI          NDVIdecl1        NDVIdecl2     
 Min.   :0.0000   1      :  10   1      :107   Type1:535   Min.   :0.0000   Min.   :0.0000   High:361   Min.   : 68.71   Min.   :0.0000   Min.   :0.0000  
 1st Qu.:0.0000   2      :  10   2      :107   Type2:535   1st Qu.:0.0000   1st Qu.:0.0000   Low :340   1st Qu.: 93.25   1st Qu.:0.0000   1st Qu.:0.0000  
 Median :1.0000   3      :  10   3      :107               Median :1.0000   Median :1.0000   Med :369   Median : 99.65   Median :1.0000   Median :0.0000  
 Mean   :0.5009   4      :  10   4      :107               Mean   :0.5028   Mean   :0.5056              Mean   : 99.84   Mean   :0.5121   Mean   :0.4888  
 3rd Qu.:1.0000   5      :  10   5      :107               3rd Qu.:1.0000   3rd Qu.:1.0000              3rd Qu.:106.99   3rd Qu.:1.0000   3rd Qu.:1.0000  
 Max.   :1.0000   6      :  10   6      :107               Max.   :1.0000   Max.   :1.0000              Max.   :130.13   Max.   :1.0000   Max.   :1.0000  
                  (Other):1010   (Other):428                                                                                                              
> dim(conflict.data)
[1] 1070   10

모델을 피팅하기 위해 @ gui11aume과 같은 glm () 함수는 기본 사항을 수행합니다.

mod <- glm(confl~., family="binomial", data=conflict.data)
anova(mod)

...하지만 이것은 "국가"(국가를 107 단위로 가정하고 있음)를 고정 효과로 취급하는 반면 무작위 효과가 더 적절하다는 문제가 있습니다. 또한 자기 상관을 허용하지 않는 기간을 간단한 요소로 취급합니다.

R 의 Bates 등의 lme4 패키지 와 같이 일반화 된 선형 혼합 효과 모델을 사용하여 첫 번째 문제를 해결할 수 있습니다 . 여기 에 몇 가지 측면에 대한 소개가 있습니다 . 같은 것

library(lme4)
mod2 <- lmer(confl ~ landdeg + popincrease + liveli + popden + 
    NDVI + NDVIdecl1 + NDVIdecl2 + (1|country) +(1|period), family=binomial,
    data=conflict.data)
summary(mod2)

한 걸음 앞으로 나아갈 것입니다.

이제 마지막 남은 문제는 10 개의 기간에 걸친 자기 상관입니다. 기본적으로 각 국가의 10 개 데이터 포인트는 10 개의 무작위로 선택된 독립적이고 동일한 분산 포인트만큼 가치가 없습니다. 나는 비정규 응답으로 다단계 모델의 잔차에서 자동 상관에 대한 광범위하게 사용 가능한 소프트웨어 솔루션을 알지 못합니다. 확실히 그것은 lme4에서 구현되지 않았습니다. 다른 사람들은 저보다 더 많이 알고있을 것입니다.


이 답변되지 않은 질문도 관련이 있습니다 -stats.stackexchange.com/questions/20613/…
Peter Ellis

1

이 튜토리얼 은 포괄적입니다.

R에서는 변수, 데이터를 준비 말할 필요가 dataA의 data.frame1, 먼저 당신의 0-1 변수 (충돌)이고 다른 열을 예측 인자 열에있는. 범주 형 변수의 경우 변수가 유형인지 확인해야합니다 factor. 예를 들어 열 3에이 속성이 있는지 확인하려면data[,3] <- as.factor(data[,3]) .

그렇다면 그것은 단지 문제입니다

glm(data, family="binomial")

이것은 암시 적으로 가산 모형이 있다고 가정하고 추정값을 제공합니다. 개별 매개 변수에 대한 테스트를 통해보다 포괄적 인 출력을 얻으려면 다음을 수행하십시오.

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