R'de doğrusal i̇nterpolasyon nasıl gerçekleştirilir (örnekle)


Doğrusal enterpolasyon, bir fonksiyonun bilinen iki değeri arasındaki bilinmeyen bir değerini tahmin etme işlemidir.

Bilinen iki değer (x 1 , y 1 ) ve (x 2 , y 2 ) verildiğinde, aşağıdaki formülü kullanarak bir x noktası için y değerini tahmin edebiliriz:

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

Aşağıdaki örnek, R’de doğrusal enterpolasyonun nasıl gerçekleştirileceğini gösterir.

Örnek: R’de doğrusal enterpolasyon

R’de x ve y değerlerine sahip aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:

 #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

Veri çerçevesindeki (x,y) değerlerini görselleştirmek amacıyla dağılım grafiği oluşturmak için aşağıdaki kodu kullanabiliriz:

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

Şimdi, 13’lük yeni bir x değeriyle ilişkili y değerini bulmak istediğimizi varsayalım.

Bunu yapmak için R’deki approx() fonksiyonunu kullanabiliriz:

 #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

Tahmin edilen y değeri 33,5 olarak çıkıyor.

Eğer (13, 33.5) noktasını çizimimize eklersek, fonksiyonla oldukça iyi eşleştiği görülüyor:

 #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'de doğrusal enterpolasyon

Herhangi bir yeni x değeri için doğrusal enterpolasyon gerçekleştirmek amacıyla bu tam formülü kullanabiliriz.

Ek kaynaklar

Aşağıdaki eğitimlerde R’de diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

R’de bir denklem sistemi nasıl çözülür?
Çoklu regresyon modeli kullanılarak R’deki değerler nasıl tahmin edilir?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir