Як: Інтервали прогнозування для лінійної регресії за допомогою завантажувальної програми


14

У мене виникають труднощі зрозуміти, як використовувати завантажувальний інструмент для обчислення інтервалів прогнозування для лінійної регресійної моделі. Чи може хтось окреслити покрокову процедуру? Я шукав через Google, але нічого насправді не має для мене сенсу.

Я розумію, як використовувати завантажувальний інструмент для обчислення довірчих інтервалів для параметрів моделі.


1
Про це детально йде мова у книзі Девісона та Хінклі, методи Bootstrap та їх застосування разом із чітким алгоритмом (Алгоритм 6.4). Вони пояснюють поняття, підводні камені та деталі з більшою довжиною, ніж це можливо в розумній відповіді.
Glen_b -Встановіть Моніку

@Glen_b Дякую за довідку. На жаль, я не в університеті чи компанії, тому не маю ресурсів для придбання книги.
Макс

Його можна замовити у амазонки; Повне пояснення алгоритму та всіх пов'язаних із цим застережень насправді не є тим, що ви можете охопити кількома сотнями слів або навіть однією сторінкою.
Glen_b -Встановити Моніку

1
@Glen_b Я написав алгоритм від Девісона та HInkely --- щодо цього питання є кілька запитань у CV, тому я подумав, що варто докласти зусиль. Будь-які коментарі, які ви отримали б, були б вдячні. stats.stackexchange.com/questions/226565/…
Білл

Ця тема ніби відповідає на ваше запитання: stats.stackexchange.com/questions/226565/…
user2683832

Відповіді:


7

Інтервали довіри враховують невизначеність оцінки. Інтервали прогнозування додають цьому основну невизначеність. R predict.lmнадасть вам інтервал передбачення для лінійної моделі. Звідси все, що вам потрібно зробити, це запустити його повторно на завантажених зразках.

n <- 100
n.bs <- 30

dat <- data.frame( x<-runif(n), y=x+runif(n) )
plot(y~x,data=dat)


regressAndPredict <- function( dat ) {
  model <- lm( y~x, data=dat )
  predict( model, interval="prediction" )
}

regressAndPredict(dat)

replicate( n.bs, regressAndPredict(dat[ sample(seq(n),replace=TRUE) ,]) )

Результат replicate- тривимірний масив ( nx 3x n.bs). Розмір довжини 3 складається з пристосованого значення для кожного елемента даних та нижньої / верхньої межі інтервалу прогнозування 95%.

Метод Гері Кінга

Залежно від того, що ви хочете, є класний метод Кінга, Томза та Віттенберга . Це порівняно легко здійснити і уникнути проблем завантажувальної програми для певних оцінок (наприклад max(Y)).

Я цитую його визначення фундаментальної невизначеності, оскільки це досить добре:

Друга форма мінливості, основна невизначеність, представлена ​​стохастичною складовою (розподіл f) у рівнянні 1, є результатом незліченних випадкових подій, таких як погода чи хвороба, які можуть впливати на Y, але не включаються в X. Навіть якщо ми знали фактичні значення параметрів (тим самим усуваючи невизначеність оцінювання), фундаментальна невизначеність не дозволила б нам передбачити Y без помилок.


3
Не впевнені, як ви будуєте інтервал довіри з цієї матриці інтервалів прогнозування n.bs.
B_Miner

1

Запуск завантаження не передбачає жодних знань про форму основного розподілу батьків, з якого виникла вибірка. Традиційні класичні оцінки статистичних параметрів базуються на припущенні про нормальність. Bootstrap має справу з ненормальністю і є більш точним на практиці, ніж класичні методи.

Запуск завантажувальних програм замінює сильну обчислювальну здатність комп'ютерів для суворого теоретичного аналізу. Це оцінка для вибіркового розподілу терміна помилки набору даних. Запуск завантаження включає: повторний вибірки набору даних задану кількість разів, обчислення середнього значення з кожного зразка та знаходження стандартної похибки середнього.

Наступний код "R" демонструє концепцію:

Цей практичний приклад демонструє корисність завантаження та оцінює стандартну помилку. Стандартна помилка потрібна для обчислення довірчого інтервалу.

Припустимо, у вас є перекошений набір даних "a":

a<-rexp(395, rate=0.1)          # Create skewed data

візуалізація перекошеного набору даних

plot(a,type="l")                # Scatter plot of the skewed data
boxplot(a,type="l")             # Box plot of the skewed data
hist(a)                         # Histogram plot of the skewed data

Виконайте процедуру завантаження:

n <- length(a)                  # the number of bootstrap samples should equal the original data set
    xbarstar <- c()                 # Declare the empty set “xbarstar” variable which will be holding the mean of every bootstrap iteration
    for (i in 1:1000) {             # Perform 1000 bootstrap iteration
        boot.samp <- sample(a, n, replace=TRUE) #”Sample” generates the same number of elements as the original data set
    xbarstar[i] <- mean(boot.samp)} # “xbarstar” variable  collects 1000 averages of the original data set
    ## 
    plot(xbarstar)                  # Scatter plot of the bootstrapped data
    boxplot(xbarstar)               # Box plot of the bootstrapped data
    hist(xbarstar)                  # Histogram plot of the bootstrapped data

    meanOfMeans <- mean(xbarstar)
    standardError <- sd(xbarstar)    # the standard error is the standard deviation of the mean of means
    confidenceIntervalAboveTheMean <- meanOfMeans + 1.96 * standardError # for 2 standard deviation above the mean 
    confidenceIntervalBelowTheMean <- meanOfMeans - 1.96 * standardError # for 2 standard deviation above the mean 
    confidenceInterval <- confidenceIntervalAboveTheMean + confidenceIntervalBelowTheMean
    confidenceInterval

1
Дякую Рагі за приклад. Однак, наскільки я бачу, ваша відповідь не охоплювала обчислення інтервалів прогнозування за допомогою завантажувальної програми. Як я вже говорив у своїй відповіді, я вже розумію, як використовувати завантажувальний інструмент для обчислення довірчих інтервалів - як видається, ваш код.
Макс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.