Как построить доверительный интервал в R

Как построить доверительный интервал в R

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

В этом руководстве объясняется, как построить доверительный интервал для набора данных в R.

Пример: построение доверительного интервала в R

Предположим, у нас есть следующий набор данных в R со 100 строками и 2 столбцами:

#make this example reproducible
set.seed(0)

#create dataset
x <- rnorm(100)
y <- x\*2 + rnorm(100)
df <- data.frame(x = x, y = y)

#view first six rows of dataset
head(df)

 x y
1 1.2629543 3.3077678
2 -0.3262334 -1.4292433
3 1.3297993 2.0436086
4 1.2724293 2.5914389
5 0.4146414 -0.3011029
6 -1.5399500 -2.5031813

Чтобы построить график взаимосвязи между x и y, мы можем сначала подобрать модель линейной регрессии:

model <- lm(y ~ x, data = df)

Затем мы можем создать график оценочной линии линейной регрессии, используя функцию abline() и функцию lines() для создания фактических доверительных интервалов:

#get predicted y values using regression equation
newx <- seq(min(df$x), max(df$x), length.out=100)
preds <- predict(model, newdata = data.frame(x=newx), interval = 'confidence')

#create plot of x vs. y, but don't display individual points (type='n') 
plot(y ~ x, data = df, type = 'n')

#add fitted regression line
abline(model)

#add dashed lines for confidence bands
lines(newx, preds[ ,3], lty = 'dashed', col = 'blue')
lines(newx, preds[ ,2], lty = 'dashed', col = 'blue') 
Постройте доверительный интервал в R

Черная линия отображает подобранную линию линейной регрессии, а две пунктирные синие линии отображают доверительные интервалы.

При желании вы также можете заполнить область между линиями доверительного интервала и оценочной линией линейной регрессии, используя следующий код:

#create plot of x vs. y
plot(y ~ x, data = df, type = 'n')

#fill in area between regression line and confidence interval
polygon(c(rev(newx), newx), c(rev(preds[ ,3]), preds[ ,2]), col = 'grey', border = NA)

#add fitted regression line
abline(model)

#add dashed lines for confidence bands
lines(newx, preds[ ,3], lty = 'dashed', col = 'blue')
lines(newx, preds[ ,2], lty = 'dashed', col = 'blue') 
График доверительного интервала в R

Вот полный код от начала до конца:

#make this example reproducible
set.seed(0)

#create dataset
x <- rnorm(100)
y <- x\*2 + rnorm(100)
df <- data.frame(x = x, y = y)

#fit linear regression model
model <- lm(y ~ x, data = df) 

#get predicted y values using regression equation
newx <- seq(min(df$x), max(df$x), length.out=100)
preds <- predict(model, newdata = data.frame(x=newx), interval = 'confidence')

#create plot of x vs. y
plot(y ~ x, data = df, type = 'n')

#fill in area between regression line and confidence interval
polygon(c(rev(newx), newx), c(rev(preds[ ,3]), preds[ ,2]), col = 'grey', border = NA)

#add fitted regression line
abline(model)

#add dashed lines for confidence bands
lines(newx, preds[ ,3], lty = 'dashed', col = 'blue')
lines(newx, preds[ ,2], lty = 'dashed', col = 'blue')

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

Что такое доверительные интервалы?
Как использовать функцию abline() в R для добавления прямых линий на графики

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.