Jak wykonać interpolację liniową w r (z przykładem)


Interpolacja liniowa to proces szacowania nieznanej wartości funkcji pomiędzy dwiema znanymi wartościami.

Mając dwie znane wartości (x 1 , y 1 ) i (x 2 , y 2 ), możemy oszacować wartość y dla punktu x za pomocą następującego wzoru:

y = y 1 + (xx 1 ) (y 2 -y 1 )/(x 2 -x 1 )

Poniższy przykład pokazuje, jak wykonać interpolację liniową w R.

Przykład: interpolacja liniowa w R

Załóżmy, że mamy następującą ramkę danych z wartościami x i y w 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

    xy
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

Możemy użyć poniższego kodu, aby utworzyć wykres rozrzutu w celu wizualizacji wartości (x, y) w ramce danych:

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

Załóżmy teraz, że chcemy znaleźć wartość y powiązaną z nową wartością x wynoszącą 13 .

Możemy w tym celu użyć funkcji przybliż() w 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

Oszacowana wartość y wynosi 33,5 .

Jeśli dodamy do naszego wykresu punkt (13, 33.5), wydaje się, że całkiem dobrze pasuje on do funkcji:

 #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 )

interpolacja liniowa w R

Możemy użyć tego dokładnego wzoru do przeprowadzenia interpolacji liniowej dla dowolnej nowej wartości x.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak rozwiązać układ równań w R
Jak przewidzieć wartości w R za pomocą modelu regresji wielokrotnej

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *