Я использую полиномиальную регрессию, чтобы получить вероятность принадлежности к четырем подгруппам для 500 000 регионов.
Data.frame выглядит следующим образом:
Regions groupadmit mid-pop
1 2 1764
2 3 1254
25 1 1452
674 4 2665
3001 2 1097
56 3 9864
98 1 2675
500,000 .... .....
Я написал следующий код:
library (nnet)
mlogit<- multinom(groupadmit~mid_pop, data = admissionLSOA1)
probs <- predict(mlogit, type="probs")
Коды работают до этого момента, давая вероятность принадлежности к каждой группе (1, 2, 3, 4) для каждого наблюдения (региона).
Вероятность:
Regions groupadmit1 groupadmit2 groupadmit3 groupadmit4
52 0.2484091 0.2494408 0.2505393 0.2516109
97 0.2483949 0.2494358 0.2505441 0.2516252
1300 0.2483253 0.2494112 0.2505676 0.251695
287 0.2483623 0.2494242 0.2505551 0.2516584
500,000 .... ..... .... ....
Но когда я взвешиваю выборку (регионы) в соответствии с их вероятностью, это возвращает следующую ошибку:
Warning message:
In wts[groupadmit == 1] <- probs[groupadmit == 1, 1]/probs[groupadmit == :
number of items to replace is not a multiple of replacement length
Что я делаю, так это взвешиваю регионы в соответствии с их вероятностью принадлежности к каждой группе, пропорционально вероятности принадлежности к группе, чтобы уравновесить любые шансы для выбора. Это очень похоже на взвешивание обратной вероятности. Коды:
wts[groupadmit==1] <- probs[groupadmit==1,1]/probs[groupadmit==1,1]
wts[groupadmit==2] <- probs[groupadmit==2,1]/probs[groupadmit==2,2]
wts[groupadmit==3] <- probs[groupadmit==3,1]/probs[groupadmit==3,3]
wts[groupadmit==4] <- probs[groupadmit==4,1]/probs[groupadmit==4,4]
Но вышеупомянутая ошибка появляется всякий раз, когда я делаю анализ.
Может кто-нибудь, пожалуйста, помогите мне понять, почему я получаю эту ошибку и как я могу ее исправить?
Большое спасибо заранее