Як побудувати довірчий інтервал у 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) xy 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')
Чорна лінія показує лінію лінійної регресії, а дві пунктирні сині лінії показують довірчі інтервали.
За бажанням ви також можете заповнити область між лініями довірчого інтервалу та оцінюваною лінією лінійної регресії за допомогою такого коду:
#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')
Ось повний код від початку до кінця:
#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 для додавання прямих ліній до графіків