Краткое введение в регрессию пуассона для подсчета данных
Регрессия — это статистический метод, который можно использовать для определения взаимосвязи между одной или несколькими переменными-предикторами и переменной отклика .
Регрессия Пуассона — это особый тип регрессии, в котором переменной ответа являются «данные подсчета». Следующие примеры иллюстрируют случаи, когда можно использовать регрессию Пуассона:
Пример 1. Регрессию Пуассона можно использовать для изучения количества студентов, окончивших конкретную программу колледжа, на основе их среднего балла на момент поступления на программу и их пола. В этом случае «количество выпускников» является переменной ответа, «GPA при поступлении в программу» является непрерывной предикторной переменной, а «пол» является категориальной предикторной переменной.
Пример 2. Регрессию Пуассона можно использовать для изучения количества дорожно-транспортных происшествий на конкретном перекрестке на основе погодных условий («солнечно», «облачно», «дождливо») и того, произошло или нет какое-либо особое событие в городе («Да» или нет»). В этом случае «количество дорожно-транспортных происшествий» является переменной отклика, а «погодные условия» и «особое событие» являются категориальными переменными-предикторами.
Пример 3. Регрессию Пуассона можно использовать для изучения количества людей перед вами в очереди в магазине в зависимости от времени суток, дня недели и наличия или отсутствия распродажи («Да или нет»). .»). В этом случае «количество людей перед вами в очереди» является переменной ответа, «время суток» и «день недели» являются непрерывными переменными-предикторами, а «распродажа в процессе» является категориальной переменной-предиктором.
Пример 4. Регрессию Пуассона можно использовать для изучения количества людей, завершивших триатлон, на основе погодных условий («солнечно», «облачно», «дождливо») и сложности трассы («легкая», «дождливая»). умеренный», «сложный»). В этом случае «количество финишировавших людей» является переменной ответа, а «погодные условия» и «сложность трассы» являются категориальными переменными-предикторами.
Выполнение регрессии Пуассона позволит вам увидеть, какие переменные-предикторы (если таковые имеются) оказывают статистически значимое влияние на переменную ответа.
Для непрерывных переменных-предсказателей вы сможете интерпретировать, как увеличение или уменьшение этой переменной на одну единицу связано с процентным изменением чисел ответной переменной (например, «каждое увеличение на одну единицу дополнительного балла в GPA связано с увеличение переменной отклика на 12,5%).
Для категориальных переменных-предсказателей вы сможете интерпретировать процентное изменение показателей одной группы (например, количества людей, завершивших триатлон в солнечный день) по сравнению с другой группой (например, количества людей, завершивших триатлон). триатлон в дождливую погоду).
Предположения регрессии Пуассона
Прежде чем мы сможем выполнить регрессию Пуассона, мы должны убедиться, что выполняются следующие предположения, чтобы результаты нашей регрессии Пуассона были действительными:
Допущение 1: Переменная ответа — это данные счетчика. В традиционной линейной регрессии переменной отклика являются непрерывные данные. Однако, чтобы использовать регрессию Пуассона, наша переменная ответа должна состоять из данных подсчета, включая целые числа от 0 или больше (например, 0, 1, 2, 14, 34, 49, 200 и т. д.). Наша переменная ответа не может содержать отрицательные значения.
Гипотеза 2: наблюдения независимы. Каждое наблюдение в наборе данных должно быть независимым друг от друга. Это означает, что одно наблюдение не должно быть в состоянии предоставить информацию о другом наблюдении.
Гипотеза 3: Распределение счетов следует распределению Пуассона. В результате наблюдаемые и ожидаемые значения должны быть схожими. Простой способ проверить это — построить график ожидаемых и наблюдаемых значений и посмотреть, совпадают ли они.
Предположение 4: Среднее значение и дисперсия модели равны. Это следует из предположения, что распределение отсчетов соответствует распределению Пуассона. Для распределения Пуассона дисперсия имеет то же значение, что и среднее значение. Если это предположение выполнено, то у вас есть эквидисперсия . Однако это предположение часто нарушается, поскольку чрезмерная дисперсия является распространенной проблемой.
Пример: регрессия Пуассона в R
Теперь мы рассмотрим пример того, как выполнить регрессию Пуассона в R.
Фон
Предположим, мы хотим узнать, сколько стипендий получает бейсболист средней школы в данном округе в зависимости от его школьного подразделения («А», «В» или «С») и его школьной оценки. вступительный экзамен в университет (измеряется от 0 до 100). ).
Следующий код создает набор данных, с которым мы будем работать, который включает данные о 100 бейсболистах:
#make this example reproducible set.seed(1) #create dataset data <- data.frame(offers = c(rep(0, 50), rep(1, 30), rep(2, 10), rep(3, 7), rep(4, 3)), division = sample(c("A", "B", "C"), 100, replace = TRUE), exam = c(runif(50, 60, 80), runif(30, 65, 95), runif(20, 75, 95)))
Понимание данных
Прежде чем фактически адаптировать модель регрессии Пуассона к этому набору данных, мы можем лучше понять данные, визуализируя первые несколько строк набора данных и используя библиотеку dplyr для запуска сводной статистики:
#view dimensions of dataset dim(data) #[1] 100 3 #view first six lines of dataset head(data) # offers division exam #1 0 A 73.09448 #2 0 B 67.06395 #3 0 B 65.40520 #4 0 C 79.85368 #5 0 A 72.66987 #6 0 C 64.26416 #view summary of each variable in dataset summary(data) # offers division exam # Min. :0.00 To:27 Min. :60.26 # 1st Qu.:0.00 B:38 1st Qu.:69.86 # Median: 0.50 C:35 Median: 75.08 # Mean:0.83 Mean:76.43 # 3rd Qu.:1.00 3rd Qu.:82.87 # Max. :4.00 Max. :93.87 #view mean exam score by number of offers library(dplyr) data %>% group_by (offers) %>% summarize (mean_exam = mean(exam)) # A tibble: 5 x 2 # offers mean_exam # #1 0 70.0 #2 1 80.8 #3 2 86.8 #4 3 83.9 #5 4 87.9
Из приведенного выше результата мы можем наблюдать следующее:
- В наборе данных 100 строк и 3 столбца.
- Минимальное количество предложений, полученных игроком, было равно нулю, максимальное — четырем, а среднее — 0,83.
- В этом наборе данных 27 игроков из дивизиона «А», 38 игроков из дивизиона «Б» и 35 игроков из дивизиона «С».
- Минимальный балл на экзамене составил 60,26, максимальный балл — 93,87, средний балл — 76,43.
- В целом игроки, получившие больше предложений о стипендиях, как правило, имеют более высокие баллы на экзаменах (например, средний балл на экзамене для игроков, не получивших предложений, составил 70,0, а средний балл по отзывам для игроков, получивших 4 предложения, составил 87,9).
Мы также можем создать гистограмму для визуализации количества предложений, полученных игроками в зависимости от подразделения:
#load ggplot2 package library(ggplot2) #create histogram ggplot(data, aes(offers, fill = division)) + geom_histogram(binwidth=.5, position="dodge")
Мы видим, что большинство игроков не получили ни одного предложения или получили только одно предложение. Это типично для наборов данных, которые соответствуют распределениям Пуассона : значительная часть значений ответа равна нулю.
Подбор модели регрессии Пуассона
Далее мы можем настроить модель, используя функцию glm() и указав, что мы хотим использовать для модели Family=»fish» :
#fit the model model <- glm(offers ~ division + exam, family = "fish" , data = data) #view model output summary(model) #Call: #glm(formula = offers ~ division + exam, family = "fish", data = data) # #Deviance Residuals: # Min 1Q Median 3Q Max #-1.2562 -0.8467 -0.5657 0.3846 2.5033 # #Coefficients: #Estimate Std. Error z value Pr(>|z|) #(Intercept) -7.90602 1.13597 -6.960 3.41e-12 *** #divisionB 0.17566 0.27257 0.644 0.519 #divisionC -0.05251 0.27819 -0.189 0.850 #exam 0.09548 0.01322 7.221 5.15e-13 *** #--- #Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 # #(Dispersion parameter for fish family taken to be 1) # # Null deviance: 138,069 on 99 degrees of freedom #Residual deviance: 79,247 on 96 degrees of freedom #AIC: 204.12 # #Number of Fisher Scoring iterations: 5
По результату мы можем наблюдать следующее:
- Приводятся коэффициенты регрессии Пуассона, стандартная ошибка оценок, z-показатели и соответствующие значения p.
- Коэффициент обзора равен 0,09548 , что указывает на то, что ожидаемое число журналов для количества предложений увеличения обзора на одну единицу составляет 0,09548 . Более простой способ интерпретировать это — взять возведенное в степень значение, т.е. e 0,09548 = 1,10 . Это означает, что количество полученных предложений увеличивается на 10% за каждый дополнительный балл, заработанный на вступительном экзамене.
- Коэффициент для Дивизиона B равен 0,1756 , что указывает на то, что ожидаемое количество предложений для игрока Дивизиона B на 0,1756 выше, чем для игрока Дивизиона A. Более простой способ интерпретировать это — взять возведенное в степень значение, т.е. e 0,1756 = 1.19 . Это означает, что игроки дивизиона Б получают на 19% больше предложений, чем игроки дивизиона А. Обратите внимание, что эта разница не является статистически значимой (р = 0,519).
- Коэффициент для Дивизиона C равен -0,05251 , что указывает на то, что ожидаемое число предложений для игрока в Дивизионе C на 0,05251 ниже , чем для игрока в Дивизионе A. Более простой способ интерпретировать это — взять возведенное в степень значение. , т. е . e 0,05251 = 0,94 . Это означает, что игроки дивизиона C получают на 6% меньше предложений, чем игроки дивизиона A. Обратите внимание, что эта разница не является статистически значимой (p = 850).
Также предоставляется информация об отклонении модели. Нас особенно интересует остаточное отклонение , которое имеет значение 79 247 из 96 степеней свободы. Используя эти числа, мы можем выполнить критерий согласия хи-квадрат, чтобы увидеть, соответствует ли модель данным. Следующий код иллюстрирует, как выполнить этот тест:
pchisq(79.24679, 96, lower.tail = FALSE) #[1] 0.8922676
Значение p для этого теста составляет 0,89 , что значительно превышает уровень значимости 0,05. Можно сделать вывод, что данные достаточно хорошо соответствуют модели.
Посмотреть Результаты
Мы также можем создать диаграмму, показывающую ожидаемое количество полученных предложений о стипендиях на основе результатов отделения и вступительных экзаменов, используя следующий код:
#find predicted number of offers using the fitted Poisson regression model data$phat <- predict(model, type="response") #create plot that shows number of offers based on division and exam score ggplot(data, aes(x = exam, y = phat, color = division)) + geom_point(aes(y = offers), alpha = .7, position = position_jitter(h = .2)) + geom_line() + labs(x = "Entrance Exam Score", y = "Expected number of scholarship offers")
На диаграмме показано наибольшее количество ожидаемых предложений стипендий для игроков, набравших высокие баллы на вступительном экзамене. Кроме того, мы видим, что игроки Дивизиона B (зеленая линия) в целом должны получать больше предложений, чем игроки Дивизиона A или Дивизиона C.
Отчет о результатах
Наконец, мы можем сообщить о результатах регрессии таким образом, чтобы обобщить наши выводы:
Регрессия Пуассона была использована для прогнозирования количества предложений о стипендиях, полученных бейсболистами, на основе результатов дивизионных и вступительных экзаменов. За каждый дополнительный балл, заработанный на вступительном экзамене, количество полученных предложений увеличивается на 10% ( p < 0,0001) . Разделение не оказалось статистически значимым.
Дополнительные ресурсы
Введение в простую линейную регрессию
Введение в множественную линейную регрессию
Введение в полиномиальную регрессию