Краткое введение в регрессию пуассона для подсчета данных


Регрессия — это статистический метод, который можно использовать для определения взаимосвязи между одной или несколькими переменными-предикторами и переменной отклика .

Регрессия Пуассона — это особый тип регрессии, в котором переменной ответа являются «данные подсчета». Следующие примеры иллюстрируют случаи, когда можно использовать регрессию Пуассона:

Пример 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) . Разделение не оказалось статистически значимым.

Дополнительные ресурсы

Введение в простую линейную регрессию
Введение в множественную линейную регрессию
Введение в полиномиальную регрессию

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *