Come eseguire l'interpolazione lineare in r (con esempio)


L’interpolazione lineare è il processo di stima di un valore sconosciuto di una funzione tra due valori noti.

Dati due valori noti (x 1 , y 1 ) e (x 2 , y 2 ), possiamo stimare il valore y per un punto x utilizzando la seguente formula:

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

L’esempio seguente mostra come eseguire l’interpolazione lineare in R.

Esempio: interpolazione lineare in R

Supponiamo di avere il seguente frame di dati con valori xey in 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

Possiamo utilizzare il seguente codice per creare un grafico a dispersione per visualizzare i valori (x,y) nel frame di dati:

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

Supponiamo ora di voler trovare il valore y associato a un nuovo valore x di 13 .

Possiamo usare la funzione approx() in R per fare questo:

 #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

Il valore y stimato risulta essere 33,5 .

Se aggiungiamo il punto (13, 33.5) al nostro grafico, sembra corrispondere abbastanza bene alla funzione:

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

interpolazione lineare in R

Possiamo usare questa formula esatta per eseguire l’interpolazione lineare per qualsiasi nuovo valore x.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come risolvere un sistema di equazioni in R
Come prevedere i valori in R utilizzando un modello di regressione multipla

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *