Как выполнить линейную интерполяцию в R (с примером)

Как выполнить линейную интерполяцию в R (с примером)

Линейная интерполяция — это процесс оценки неизвестного значения функции между двумя известными значениями.

Имея два известных значения (x 1 , y 1 ) и (x 2 , y 2 ), мы можем оценить значение y для некоторой точки x, используя следующую формулу:

у = у 1 + (хх 1 )(у 2 -у 1 )/(х 2 -х 1 )

В следующем примере показано, как выполнить линейную интерполяцию в R.

Пример: линейная интерполяция в R

Предположим, у нас есть следующий фрейм данных со значениями x и y в R:

#define data frame
df <- data.frame(x=c(2, 4, 6, 8, 10, 12, 14, 16, 18, 20),
 y=c(4, 7, 11, 16, 22, 29, 38, 49, 63, 80))

#view data frame
df

 x y
1 2 4
2 4 7
3 6 11
4 8 16
5 10 22
6 12 29
7 14 38
8 16 49
9 18 63
10 20 80

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

#create scatterplot
plot(df$x, df$y, col='blue', pch= 19 )

Теперь предположим, что мы хотим найти значение y, связанное с новым значением x, равным 13 .

Для этого мы можем использовать функцию приблизительно() в R:

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

#interpolate y value based on x value of 13
y_new = approx(df$x, df$y, xout= 13 )

#view interpolated y value
y_new

$x
[1] 13

$y
[1] 33.5

Расчетное значение y оказывается равным 33,5 .

Если мы добавим точку (13, 33,5) к нашему графику, она, похоже, будет хорошо соответствовать функции:

#create scatterplot
plot(df$x, df$y, col='blue', pch= 19 )

#add the predicted point to the scatterplot
points(13, y_new$y, col='red', pch= 19 )
линейная интерполяция в R

Мы можем использовать эту точную формулу для выполнения линейной интерполяции для любого нового значения x.

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

В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:

Как решить систему уравнений в R
Как прогнозировать значения в R с использованием модели множественной регрессии

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