도시의 각 지역에서 살인 사건의 수를 설명하기 위해 회귀 분석을 시도하고 있습니다. 내 데이터가 포아송 분포를 따른다는 것을 알고 있지만 다음과 같이 OLS를 맞추려고했습니다.
그런 다음 포아송 회귀 분석도 시도했습니다. 문제는 내가 OLS 회귀에서 더 나은 결과를 얻는다는 것입니다. 의사 가 높고 (0.71 대 0.57) RMSE도 (3.8 대 8.88. 동일한 단위를 갖도록 표준화되었습니다).
왜? 정상입니까? 데이터 분포가 무엇이든 OLS 사용에있어 무엇이 문제입니까?
편집 kjetil b halvorsen 및 기타 제안에 따라 OLS와 Negative Binomial GLM (NB)의 두 가지 모델을 통해 데이터를 피팅했습니다. 나는 내가 가진 모든 기능으로 시작한 다음 중요하지 않은 기능을 하나씩 반복적으로 제거했습니다. OLS는
가중치 = .
summary(w <- lm(sqrt(num/area) ~ RNR_nres_non_daily + RNR_nres_daily + hType_mix_std + area_filtr + num_community_places+ num_intersect + pop_rat_num + employed + emp_rat_pop + nden_daily + nden_non_daily+ bld_rat_area + bor_rat_area + mdist_highways+ mdist_parks, data=p, weights=area))
error2 <- p$num - (predict(w, newdata=p[,-1:-2], type="response")**2)*p$area
rmse(error2)
[1] 80.64783
NB는 해당 구역의 면적을 상쇄 한 범죄 수를 예측합니다.
summary(m3 <- glm.nb(num ~ LUM5_single + RNR_nres + mdist_daily + mdist_non_daily+ hType_mix_std + ratio_daily_nondaily_area + area_filtr + num_community_places + employed + nden_daily + nden_non_daily+ bld_rat_area + bor_rat_area + mdist_smallparks + mdist_highways+ mdist_parks + offset(log(area)), data=p, maxit = 1000))
error <- p$num - predict(m3, newdata=p[,-1:-2], type="response")
rmse(error)
[1] 121.8714
OLS 잔차 :
NB 잔차
따라서 RMSE는 OLS에서 낮지 만 잔차가 그렇게 정상적이지 않은 것 같습니다 ....