Saya mencoba menyesuaikan regresi untuk menjelaskan jumlah pembunuhan di setiap distrik di kota. Meskipun saya tahu bahwa data saya mengikuti distribusi Poisson, saya mencoba menyesuaikan OLS seperti ini:
Kemudian, saya juga mencoba (tentu saja!) Regresi Poisson. Masalahnya adalah bahwa saya memiliki hasil yang lebih baik dalam regresi OLS: pseudo- lebih tinggi (0,71 vs 0,57) dan RMSE juga (3,8 vs 8,88. Standar untuk memiliki unit yang sama).
Mengapa? Apakah ini normal? Apa salahnya menggunakan OLS tidak peduli apa pun distribusi datanya?
sunting Mengikuti saran dari kjetil b halvorsen dan lainnya, saya memasangkan data melalui dua model: OLS dan Negative Binomial GLM (NB). Saya mulai dengan semua fitur yang saya miliki, lalu saya secara rekursif menghapus satu per satu fitur yang tidak signifikan. OLS adalah
dengan bobot = .
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 memprediksikan jumlah kejahatan, dengan area distrik sebagai kompensasi.
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
Sisa OLS:
Residu NB
Jadi RMSE lebih rendah di OLS tetapi tampaknya bahwa residualnya tidak begitu normal ....