Comment effectuer une interpolation linéaire dans R (avec exemple)



L’interpolation linéaire est le processus d’estimation d’une valeur inconnue d’une fonction entre deux valeurs connues.

Étant donné deux valeurs connues (x 1 , y 1 ) et (x 2 , y 2 ), nous pouvons estimer la valeur y pour un point x en utilisant la formule suivante :

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

L’exemple suivant montre comment effectuer une interpolation linéaire dans R.

Exemple : interpolation linéaire dans R

Supposons que nous ayons le bloc de données suivant avec les valeurs x et y dans 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

Nous pouvons utiliser le code suivant pour créer un nuage de points afin de visualiser les valeurs (x, y) dans le bloc de données :

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

Supposons maintenant que nous souhaitions trouver la valeur y associée à une nouvelle valeur x de 13 .

Nous pouvons utiliser la fonction approx() dans R pour ce faire :

#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

La valeur y estimée s’avère être 33,5 .

Si nous ajoutons le point (13, 33.5) à notre tracé, il semble correspondre assez bien à la fonction :

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

interpolation linéaire dans R

Nous pouvons utiliser cette formule exacte pour effectuer une interpolation linéaire pour toute nouvelle valeur x.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans R :

Comment résoudre un système d’équations en R
Comment prédire les valeurs dans R à l’aide d’un modèle de régression multiple

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *