R'de predict() işlevi lm() ile nasıl kullanılır?
R’deki lm() işlevi doğrusal regresyon modellerine uymak için kullanılabilir.
Bir model yerleştirdikten sonra, yeni bir gözlemin yanıt değerini tahmin etmek için tahmin() fonksiyonunu kullanabiliriz.
Bu işlev aşağıdaki sözdizimini kullanır:
tahmin(nesne, yeniveri, tür = “yanıt”)
Altın:
- nesne: glm() işlevini kullanan model ayarlamasının adı
- newdata: Tahminlerde bulunulacak yeni veri çerçevesinin adı
- type: Yapılacak tahminin türü.
Aşağıdaki örnek, R’de doğrusal bir regresyon modeline uyum sağlamak için lm() işlevinin nasıl kullanılacağını ve ardından modelin daha önce hiç görmediği yeni bir gözlemin yanıt değerini tahmin etmek için tahmin() işlevinin nasıl kullanılacağını gösterir.
Örnek: R’de Predict() işlevini lm() ile kullanma
R’de çeşitli basketbol oyuncuları hakkında bilgi içeren aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:
#create data frame df <- data. frame (minutes=c(5, 10, 13, 14, 20, 22, 26, 34, 38, 40), fouls=c(5, 5, 3, 4, 2, 1, 3, 2, 1, 1), points=c(6, 8, 8, 7, 14, 10, 22, 24, 28, 30)) #view data frame df minutes fouls points 1 5 5 6 2 10 5 8 3 13 3 8 4 14 4 7 5 20 2 14 6 22 1 10 7 26 3 22 8 34 2 24 9 38 1 28 10 40 1 30
Her oyuncunun attığı sayıyı tahmin etmek için oynanan dakikaları ve toplam faulleri kullanarak aşağıdaki çoklu doğrusal regresyon modelini uygulamak istediğimizi varsayalım:
puan = β 0 + β 1 (dakika) + β 2 (faul)
Bu modeli uyarlamak için lm() fonksiyonunu kullanabiliriz:
#fit multiple linear regression model fit <- lm(points ~ minutes + fouls, data=df) #view summary of model summary(fit) Call: lm(formula = points ~ minutes + fouls, data = df) Residuals: Min 1Q Median 3Q Max -3.5241 -1.4782 0.5918 1.6073 2.0889 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -11.8949 4.5375 -2.621 0.0343 * minutes 0.9774 0.1086 9.000 4.26e-05 *** fouls 2.1838 0.8398 2.600 0.0354 * --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 2.148 on 7 degrees of freedom Multiple R-squared: 0.959, Adjusted R-squared: 0.9473 F-statistic: 81.93 on 2 and 7 DF, p-value: 1.392e-05
Model sonuçlarından elde edilen katsayıları kullanarak uygun regresyon denklemini yazabiliriz:
puan = -11,8949 + 0,9774 (dakika) + 2,1838 (faul)
Daha sonra, 15 dakika boyunca oynayan ve toplamda 3 faul yapan bir oyuncunun kaç puan alacağını tahmin etmek için tahmin() fonksiyonunu kullanabiliriz:
#define new observation
newdata = data. frame (minutes=15, fouls=3)
#use model to predict points value
predict(fit, newdata)
1
9.317731
Model, bu oyuncunun 9,317731 puan alacağını öngörüyor.
Birden fazla yeni gözlem içeren bir veri çerçevemiz varsa aynı anda birden fazla tahminde bulunabileceğimizi unutmayın.
Örneğin, aşağıdaki kod, üç oyuncunun puan değerlerini tahmin etmek için uygun regresyon modelinin nasıl kullanılacağını gösterir:
#define new data frame of three cars
newdata = data. frame (minutes=c(15, 20, 25),
fouls=c(3, 2, 1))
#view data frame
newdata
minutes fouls
1 15 3
2 20 2
3 25 1
#use model to predict points for all three players
predict(model, newdata)
1 2 3
9.317731 12.021032 14.724334
Sonucun nasıl yorumlanacağı aşağıda açıklanmıştır:
- 15 dakika 3 faulle oynayan oyuncunun beklenen puanı 9,32 oldu.
- 20 dakika 2 faulle oynayan oyuncunun beklenen puanı 12.02 oldu.
- 25 dakika ve 1 faulle oynayan oyuncunun beklenen puanı 14.72 .
tahmin() kullanımına ilişkin notlar
Yeni veri çerçevesindeki sütun adları, modeli oluşturmak için kullanılan veri çerçevesindeki sütun adlarıyla tam olarak eşleşmelidir.
Önceki örneğimizde, modeli oluşturmak için kullandığımız veri çerçevesinin, tahmin değişkenlerimiz için aşağıdaki sütun adlarını içerdiğini unutmayın:
- dakika
- hatalar
Dolayısıyla, yeni veri adı verilen yeni veri çerçevesini oluşturduğumuzda, sütunları da adlandırdığımızdan emin olduk:
- dakika
- hatalar
Sütun adları eşleşmiyorsa aşağıdaki hata iletisini alırsınız:
Error in eval(predvars, data, env)
tahmin() işlevini kullanırken bunu aklınızda bulundurun.
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 basit doğrusal regresyon nasıl gerçekleştirilir
R’de çoklu doğrusal regresyon nasıl gerçekleştirilir
R’de polinom regresyonu nasıl gerçekleştirilir
R’de bir tahmin aralığı nasıl oluşturulur