Basit Doğrusal Regresyon

Taner Sayın
4 min readDec 4, 2020

--

Merhabalar bu yazımda sizlere basit doğrusal regresyondan bahsedeceğim.

Elimizde X ürününün gramı ve satış fiyatlarının olduğu bir veri olsun ve biz bu verilerden bir tahmin çıkarmaya çalışalım.

Kullanacağımız kütüphaneleri dahil edelim;

Veri setini frame halinde görelim;

Veri setindeki değişkenler hakkında kabaca bilgiler alalım;

Tablomuz hakkındaki bilgilere baktıktan sonra gram ile satış fiyatı arasındaki kolerasyona bakalım;

Verilerimizin kolerasyon sonucuna bakarak elimizdeki X ürününün gramı ile satış fiyatı arasında oldukça yüksek pozitif ilişki olduğunu söyleyebiliriz. Kolerasyon sonuçlarımızı görsel olarakta görelim;

Pozitif yönde yüksek şiddetli ilişki olduğunu, ürün gramajı arttıkça fiyatının arttığını görebiliyoruz.

İncelediğimiz veri setinin değişenlerinin yayılımını, dağılımını ,merkezlerinin ne yönde olduğu, değişkenlerin hepsini tanımak ,birbirlerinin etki düzeylerini bilmek bizlere oldukça avantaj sağlayacaktır. Bu sebeple veri setimizin kolerasyonunu incelerken dağılımlarını da görmek mümkün;

Değişkenlerimizin normal dağılıma sahip olduğunu rahatlıkla görebiliyoruz.

Artık modellemelerimize geçip tahmin işlemlerine bakalım;

Statsmodel İle Tahmin

İstatiksel yorumlamalar ve tahminler yürütmek için statsmodel oldukça kullanışlı.

X ürünümüzde gramaj bağımlı değişken (x),satış fiyatı ürünün gramajına göre değiştiği için bağımlı değişkendir (y). Bizde bunları ayırarak modelleme işlemlerimize başlayabiliriz;

Daha sonra lineer modelimizi oluşturup bu modeli fit ederek modelimizin özetine bakalım;

Elde ettiğimiz değerlerin birkaçını bilmemiz gerekir ;

R-squared (R-kare); Bağımsız değişkenin bağımlı değişkendeki değişkenliği açıklama başarısıdır. Yani X ürünümüzdeki gr değişkeni satış değişkeninde yer alan değişkenliğin yaklaşık %95'ini açıklamaktadır(0.951)

Adj. R-squared (Düzeltilmiş R-kare ); Düzeltilmiş R-kare değişkeni duyarlılığı daha az olan metriktir. Modele ilgili ilgisiz bir çok değişken ekleyip R-karenin arttığını görmek iyi yolda olduğumuzu düşündürebilir fakat çok yanıltıcı bir durumdur. Düzeltilmiş R-kare yanıltıcı durumu ortadan kaldırır.

F-statistic ; Modelin anlamlılığının anlaşılması için kurulan test istatistiğidir.

No. Observations ; Gözlem sayısı

Tablodan sadece katsayılarla ilişkin kısımları elde etmek istersek ;

Veya sadece parametrelere ulaşmak için ;

kullanabiliriz.

Şimdiye kadar bir model elde ettik ve bize belli test sonuçları verdi. Artık statsmodel ile oluşturduğumuz modelin tahminlerini tabloya ekleyip gerçek değerler ile karşılaştıralım;

Modelimizin matematiksel formuna dönüştürmek istersek;

Diyelim ki X ürünümüz 1300 gr olsaydı bakalım elde ettiğimiz tahmini satış fiyatı ne olacaktı ? Bunun için denklemimizde gr değişkenine 1300 yazarak hesaplayalım;

Modelimize uygun grafiği ve denklemimizi belirtelim;

Scikit-learn İle Tahmin

Burada artık elimizdeki verilerin bir kısmını test seti olarak ayırıp diğer bir kısmını ise eğitim datası olarak kullanacağız. Eğiteceğimiz data ve test edeceğimiz data oranını belirlememiz gerekmektedir. Örnek olarak %20 test %80 eğitim verisi olarak verilerimizi ayıralım;

Eğitim datalarında bağımlı ve bağımsız değişkenleri tanımlayalım;

Lineer regresyon sınıfını kullanarak bir regresyon modeli oluşturup o modeli train datası ile eğitelim ;

Daha sonra eğitilmiş modeli kullanarak eğim ve y-eksenini kestiği noktaları gibi parametreleri bulalım;

Elde ettiğimiz değerler ile statsmodelde yaptığımız gibi matematiksel forma dönüştürelim;

Birde burada elde ettiğimiz denklemde X ürünümüz 1300 gram olsaydı satış fiyatı ne olurdu tahminine bakalım;

Test datasını kullanarak modelin tahmin ettiği satış değerlerini elde edelim;

R-Kare metriği noktaların regresyon doğrusuna yakınlığının ölçüsüdür. Metrik değerleri 0 ile 1 arasında ve 1'e ne kadar yakın olursa modelin performansı o kadar iyidir. Elde ettiğimiz sonuca göre de %99 başarı elde ettik demektir.

Bu parametreleri kullanarak data ile en iyi uyum sağlayan regresyon doğrusunu da çizelim;

Son olarak merak ettiğimiz parametrelerin sonuçlarını rahatlıkla görebilmek açısından bir fonksiyon yazıp sonuçlarına bakalım;

Değerli vaktinizi ayırdığınız için teşekkürler.

--

--

Responses (2)