Я работаю со взвешенными данными обследования, которые являются как слишком разбросанными, так и нулевыми. Моя переменная ответа - это количество поездок, совершаемых человеком за неделю. Физические лица имеют разный вес в зависимости от вида транспорта. См. Данные ниже:
df <- data.frame(
trips = c(1,2,3,4,5,6,7,8,9,10),
weights = c(1.02, 1.11, 1.00, 1.35, 1.22, 1.15, 1.07, 1.00, 1.25, 1.60),
gender = c("M", "M", "M", "M", "M", "F", "F", "F", "F", "F"),
age = c("0-15", "16+", "0-15", "16+", "0-15", "16+","0-15", "16+", "0-15", "16+"))
df <- mutate(df, weighted_trips = trips*weights)
trips weights gender age weighted_trips
1 1 1.02 M 0-15 1.02
2 2 1.11 M 16+ 2.22
3 3 1.00 M 0-15 3.00
4 4 1.35 M 16+ 5.40
5 5 1.22 M 0-15 6.10
6 6 1.15 F 16+ 6.90
7 7 1.07 F 0-15 7.49
8 8 1.00 F 16+ 8.00
9 9 1.25 F 0-15 11.25
10 10 1.60 F 16+ 16.00
Все мои ковариаты являются категориальными переменными.
Мой вопрос: как я могу использовать функцию zeroinfl()
из пакета pscl
или любую другую функцию для смоделировать мои данные с моделью ZINB? Я хотел бы принять во внимание взвешивание, но модели подсчета должны иметь неотрицательное целое число в качестве ответа.
После некоторого исследования - кажется, что смещение здесь - то, к чему я должен стремиться. то есть
zeroinfl(trips ~ gender + age + offset(log(weighted_trips)), data = df, dist = "negbin")
Но как теперь я могу использовать функцию predict
для прогнозирования новых значений, если у меня нет весов для новых данных?