Основы программирования на R: функция predict()
Development | Комментировать запись
Функция 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: R