Основы программирования на R: функция predict()

Функция predict() в языке программирования R используется для прогнозирования значений на основе входных данных. Все аспекты моделирования в программе R используют функцию predict() по-своему, но сама ее функциональность остается неизменной независимо от случая.

Читайте также: Основы программирования на языке R

Синтаксис функции predict() в R

Как вы уже знаете, функция predict() в R используется для предсказания значений на основе входных данных.

Ее синтаксис выглядит так:

predict(object,newdata,interval)

Где:

  • object – это класс, наследуемый из “lm”
  • newdata – входные данные для прогнозирования значений
  • interval – тип расчета интервала

Пример использования функции predict()

Итак, чтобы предсказать значения, нужны данные. Следовательно, мы можем импортировать данные из встроенного в R набора данных под названием Cars – это простой набор данных, содержащий только 2 атрибута.

df<-datasets::cars

а именно:

     speed dist
1      4    2
2      4   10
3      7    4
4      7   22
5      8   16
6      9   10
7     10   18
8     10   26
9     10   34
10    11   17

У нас есть два столбца, которые называются speed и dist, и первые 10 значений в нем. Теперь нам нужно предсказать будущие значения, используя эти данные.

Во-первых, нам нужно вычислить линейную модель для этого фрейма данных. Ниже приведен код, после выполнения которого вы получите линейную модель.

#Создает линейную модель
my_linear_model <- lm(dist~speed,data = df)

#Выводит результаты модели
my_linear_model

Call:
lm(formula = dist ~ speed, data = df)

Coefficients:
(Intercept)        speed 
    -17.579        3.932

Линейная модель вернула скорость автомобилей в соответствии с поведением приведенных входных данных. Теперь у нас есть модель и мы можем приступать к прогнозированию значений.

#создание фрейма данных
variable_speed<-data.frame(speed=c(11,11,12,12,12,12,13,13,13,13))

#подгонка к линейной модели
liner_model<-lm(dist~speed,data = df)

#прогнозирование будущих значений
predict(liner_model,newdata = variable_speed)
     1         2         3         4         5       
 25.67740  25.67740  29.60981  29.60981  29.60981
      6         7         8       9        10
29.60981  33.54222  33.54222  33.54222  33.54222

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

Теперь нужно проверить уровень достоверности полученных прогнозируемых значений и оценить, насколько точен наш прогноз.

Проверка прогнозируемых значений

Доверительный интервал в функции predict() поможет нам оценить точность прогнозов.

#вводные данные
variable_speed <-data.frame(speed=c(11,11,12,12,12,12,13,13,13,13))

#подгонка данных к модели
liner_model<-lm(dist~speed,data = df)

#прогноз данных с учетом доверительного интервала
predict(liner_model,newdata = variable_speed,interval = 'confidence')

      fit      lwr      upr
1  25.67740 19.96453 31.39028
2  25.67740 19.96453 31.39028
3  29.60981 24.39514 34.82448
4  29.60981 24.39514 34.82448
5  29.60981 24.39514 34.82448
6  29.60981 24.39514 34.82448
7  33.54222 28.73134 38.35310
8  33.54222 28.73134 38.35310
9  33.54222 28.73134 38.35310
10 33.54222 28.73134 38.35310

В приведенном выше выводе вы можете видеть доверительный интервал.

Здесь ясно сказано, что автомобили, движущиеся со скоростью 11-13 миль в час, имеют шансы проехать расстояние в диапазоне от 19,9 до 31,3 миль.

Вот так работает функция predict() в языке R. Довольно просто, не так ли?

Итоги

Функция predict() используется для прогнозирования значений на основе предыдущего поведения данных и путем подгонки этих данных к модели.

Вы также можете использовать доверительные интервалы, чтобы проверить точность полученных прогнозов.

Читайте также: Документация R

Tags:

Добавить комментарий