В России R
существует три метода форматирования входных данных для логистической регрессии с использованием glm
функции:
- Данные могут быть в «двоичном» формате для каждого наблюдения (например, y = 0 или 1 для каждого наблюдения);
- Данные могут быть в формате «Уилкинсон-Роджерс» (например,
y = cbind(success, failure)
), где каждая строка представляет одну обработку; или - Данные могут быть во взвешенном формате для каждого наблюдения (например, у = 0,3, вес = 10).
Все три подхода дают одинаковые оценки коэффициентов, но различаются по степеням свободы и полученным значениям отклонения и баллам AIC. Последние два метода имеют меньше наблюдений (и, следовательно, степеней свободы), потому что они используют каждую обработку для количества наблюдений, тогда как первый использует каждое наблюдение для количества наблюдений.
Мой вопрос: есть ли числовые или статистические преимущества использования одного входного формата над другим? Единственное преимущество, которое я вижу, это отсутствие необходимости переформатировать свои данные R
для использования с моделью.
Я просмотрел документацию по glm , выполнил поиск в Интернете и на этом сайте и обнаружил один пост , связанный с тангенциальной связью , но не дал никаких указаний по этой теме.
Вот смоделированный пример, который демонстрирует это поведение:
# Write function to help simulate data
drc4 <- function(x, b =1.0, c = 0, d = 1, e = 0){
(d - c)/ (1 + exp(-b * (log(x) - log(e))))
}
# simulate long form of dataset
nReps = 20
dfLong <- data.frame(dose = rep(seq(0, 10, by = 2), each = nReps))
dfLong$mortality <-rbinom(n = dim(dfLong)[1], size = 1,
prob = drc4(dfLong$dose, b = 2, e = 5))
# aggregate to create short form of dataset
dfShort <- aggregate(dfLong$mortality, by = list(dfLong$dose),
FUN = sum)
colnames(dfShort) <- c("dose", "mortality")
dfShort$survival <- nReps - dfShort$mortality
dfShort$nReps <- nReps
dfShort$mortalityP <- dfShort$mortality / dfShort$nReps
fitShort <- glm( cbind(mortality, survival) ~ dose,
data = dfShort,
family = "binomial")
summary(fitShort)
fitShortP <- glm( mortalityP ~ dose, data = dfShort,
weights = nReps,
family = "binomial")
summary(fitShortP)
fitLong <- glm( mortality ~ dose, data = dfLong,
family = "binomial")
summary(fitLong)
источник
svyglm
Из пакета опроса вы найдете лучшие методы обработки весовых аргументов.Ответы:
Нет никакой статистической причины предпочитать одно другому, кроме концептуальной ясности. Хотя приведенные значения отклонений отличаются, эти различия полностью обусловлены насыщенной моделью. Таким образом, на любое сравнение, использующее относительное отклонение между моделями, это не влияет, поскольку насыщенная логарифмическая правдоподобие модели отменяется.
Я думаю, что полезно пройти через явный расчет отклонения.
Отклонение модели составляет 2 * (LL (насыщенная модель) - LL (модель)). Предположим, у вас есть разные ячейки, где - количество наблюдений в ячейке , - прогноз модели для всех наблюдений в ячейке , а - наблюдаемое значение (0 или 1) для наблюдения. в клетке .i ni i pi i yij j i
Длинная форма
Логарифмическая вероятность (предложенной или нулевой) модели равна∑i∑j(log(pi)yij+log(1−pi)(1−yij))
а логарифмическая вероятность насыщенной модели равнаЭто равно 0, потому что равно 0 или 1. Примечание не определено, но для удобства, пожалуйста, прочитайте как сокращение для , который равен 0.∑i∑j(log(yij)yij+log(1−yij)(1−yij)). yij log(0) 0log(0) limx→0+xlog(x)
Краткая форма (взвешенная)
Обратите внимание, что биномиальное распределение на самом деле не может принимать нецелые значения, но тем не менее мы можем вычислить «логарифмическую вероятность», используя долю наблюдаемых успехов в каждой ячейке в качестве ответа, и взвесив каждое слагаемое в логарифмическом вычислении вероятности, количество наблюдений в этой камере.
Это в точности соответствует модельному отклонению, которое мы рассчитали выше, что можно увидеть, потянув сумму по в уравнении длинной формы, насколько это возможно.j
Между тем насыщенное отклонение отличается. Поскольку у нас больше нет ответов 0-1, даже с одним параметром на наблюдение мы не можем получить ровно 0. Вместо этого логарифмическая вероятность насыщенной модели равна
В вашем примере вы можете убедиться, что вдвое эта сумма равна разнице между сообщенными значениями нулевого и остаточного отклонения для обеих моделей.
источник