Какую загрузочную регрессионную модель мне выбрать?


10

У меня есть бинарная модель логистической регрессии с DV (болезнь: да / нет) и 5 ​​предикторами (демография [возраст, пол, курение табака (да / нет)], медицинский индекс (порядковый номер) и одно случайное лечение [да / нет ]). Я также смоделировал все двусторонние условия взаимодействия. Основные переменные центрированы, и нет признаков мультиколлинеарности (все VIF <2,5).

У меня есть несколько вопросов:

  1. Преимущество начальной загрузки перед моей единственной моделью? если так,

  2. какую загрузочную модель мне выбрать? Я просто хотел посмотреть, следуют ли алгоритмы начальной загрузки случайным методам создания новых сэмплов или они имеют жесткие алгоритмы. Поэтому я повторял выборку 1000 раз в каждой попытке (поэтому у меня есть несколько загруженных моделей, каждая с 1000 испытаний). Однако каждый раз коэффициенты загрузочной модели различаются (хотя количество испытаний постоянно 1000). Интересно, какой из них выбрать для моего отчета? Некоторые изменения незначительны и не влияют на значимость моих коэффициентов, но некоторые делают некоторые из моих коэффициентов несущественными (только те, у которых значения P близки к 0,05 в исходной модели, например, изменяются на 0,06).

  3. Должен ли я выбрать большее число, например, 10000? Как я могу определить этот предел?

  4. Опять я должен начать с самого начала? Если его результаты меняются каждый раз, могу ли я рассчитывать на его результаты?

  5. У вас есть другие идеи, которые могут помочь мне в моем деле?

Огромное спасибо.

Ответы:


21

Начальная загрузка - это метод повторной выборки для оценки распределения выборки ваших коэффициентов регрессии и, следовательно, для расчета стандартных ошибок / доверительных интервалов ваших коэффициентов регрессии. Этот пост имеет хорошее объяснение. Для обсуждения того, сколько репликаций вам нужно, смотрите этот пост.

  1. Nраз. Таким образом, вы получите 10 000 различных коэффициентов регрессии. Эти 10 000 коэффициентов могут затем использоваться для расчета их доверительных значений. Поскольку используется генератор псевдослучайных чисел, вы можете просто установить начальное число на произвольное число, чтобы каждый раз получать одинаковые результаты (см. Пример ниже). Чтобы действительно иметь стабильные оценки, я бы предложил более 1000 повторений, возможно, 10 000. Вы можете запустить загрузчик несколько раз и посмотреть, сильно ли изменятся оценки, независимо от того, выполняете ли вы 1000 или 10 000 повторений. На простом английском: вы должны делать репликации, пока не достигнете конвергенции. Если ваши оценки начальной загрузки отличаются между вашими оценками и наблюдаемой единой моделью, это может указывать на то, что наблюдаемая модель не отражает должным образом структуру вашей выборки.bootRНапример, выдает «смещение», которое представляет собой разницу между коэффициентами регрессии вашей отдельной модели и средним значением выборок начальной загрузки.
  2. При выполнении начальной загрузки вы заинтересованы не в одной выборке начальной загрузки, а в распределении статистики (например, коэффициентов регрессии) по, скажем, 10 000 выборок начальной загрузки.
  3. Я бы сказал, 10 000 лучше, чем 1000. С современными компьютерами это не должно создавать проблем. В приведенном ниже примере моему компьютеру понадобилось около 45 секунд, чтобы нарисовать 10 000 образцов. Конечно, это зависит от размера вашей выборки. Чем больше размер вашей выборки, тем больше должно быть число итераций, чтобы обеспечить учет каждого наблюдения.
  4. Что вы имеете в виду "результаты меняются каждый раз"? Напомним, что на каждом этапе начальной загрузки наблюдения заново выводятся с заменой. Следовательно, вы, скорее всего, в конечном итоге получите несколько разные коэффициенты регрессии, потому что ваши наблюдения отличаются. Но, как я уже сказал, вы на самом деле не интересуетесь результатом одного примера начальной загрузки. Когда количество повторений достаточно велико, загрузчик должен каждый раз давать очень похожие доверительные интервалы и точечные оценки.

Вот пример в R:

library(boot)

mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")

head(mydata)

mydata$rank <- factor(mydata$rank)

my.mod <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")

summary(my.mod)

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept) -3.989979   1.139951  -3.500 0.000465 ***
gre          0.002264   0.001094   2.070 0.038465 *  
gpa          0.804038   0.331819   2.423 0.015388 *  
rank2       -0.675443   0.316490  -2.134 0.032829 *  
rank3       -1.340204   0.345306  -3.881 0.000104 ***
rank4       -1.551464   0.417832  -3.713 0.000205 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

# Set up the non-parametric bootstrap

logit.bootstrap <- function(data, indices) {

  d <- data[indices, ]
  fit <- glm(admit ~ gre + gpa + rank, data = d, family = "binomial")

  return(coef(fit))
}

set.seed(12345) # seed for the RNG to ensure that you get exactly the same results as here

logit.boot <- boot(data=mydata, statistic=logit.bootstrap, R=10000) # 10'000 samples

logit.boot

Bootstrap Statistics :
        original        bias    std. error
t1* -3.989979073 -7.217244e-02 1.165573039
t2*  0.002264426  4.054579e-05 0.001146039
t3*  0.804037549  1.440693e-02 0.354361032
t4* -0.675442928 -8.845389e-03 0.329099277
t5* -1.340203916 -1.977054e-02 0.359502576
t6* -1.551463677 -4.720579e-02 0.444998099

# Calculate confidence intervals (Bias corrected ="bca") for each coefficient

boot.ci(logit.boot, type="bca", index=1) # intercept
95%   (-6.292, -1.738 )  
boot.ci(logit.boot, type="bca", index=2) # gre
95%   ( 0.0000,  0.0045 ) 
boot.ci(logit.boot, type="bca", index=3) # gpa
95%   ( 0.1017,  1.4932 )
boot.ci(logit.boot, type="bca", index=4) # rank2
95%   (-1.3170, -0.0369 )
boot.ci(logit.boot, type="bca", index=5) # rank3
95%   (-2.040, -0.629 )
boot.ci(logit.boot, type="bca", index=6) # rank4
95%   (-2.425, -0.698 )

Bootstrap-Output отображает исходные коэффициенты регрессии («оригинал») и их смещение, которое является разницей между исходными коэффициентами и начальными коэффициентами. Это также дает стандартные ошибки. Обратите внимание, что они немного больше, чем исходные стандартные ошибки.

Из доверительных интервалов обычно предпочтительны поправка на смещение («bca»). Это дает доверительные интервалы в исходном масштабе. Для доверительных интервалов для отношения шансов просто возведите в степень доверительные интервалы.


СПАСИБО за идеальный ответ! :) Позвольте мне ответить следующим образом: 1. Я был немного знаком с его понятием (что оно пытается вычислить среднее значение для 1000 различных коэффициентов в 1000 различных (пересчитанных) моделях). Спасибо за разъяснение, что вещь "смещения" и что такие изменения происходят, и мы должны увеличить количество попыток. :) 2. Под "загруженной моделью" я не имел в виду ни одну модель с передискретизацией. Однако я имел в виду среднее из этих 1000 итераций. На самом деле я загрузил свою модель 10 раз, по 1000 итераций. Итак, у меня под рукой 10 загруженных моделей.
Вик

Каждый из них показывает «другой» результат. Но я бы попробовал три или четыре модели с начальной загрузкой с 10 000 повторных выборок, чтобы увидеть, равно ли число итераций на 10 000, разные ли модели с начальной загрузкой (каждая с 10000) схожи, или я должен увеличить эти 100 000 еще больше?
Вик

@Vic Спасибо за ваш комментарий. Я бы не стал делать 10 бутстрапов с 1000 итерациями, а только один, скажем, 10 000 или даже больше (50 000?). Это должно дать вам стабильные оценки и доверительные интервалы.
COOLSerdash

3. Конечно, это не проблема. Я просто хотел узнать, на каком основании выбрать этот номер? Я думаю, что основа может быть в том, что если я запускаю две бутстраппинги по 1000 попыток каждая и вижу, что они различаются, это означает, что вместо этого мне нужно больше проб повторной выборки (например, 5000 или 10000).
Вик

4. «Что вы имеете в виду,« результаты меняются каждый раз »? Когда количество повторений достаточно велико, загрузчик должен давать очень похожие доверительные интервалы и точечные оценки каждый раз».
Вик
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.