İstatistiksel modeller kullanılarak lojistik regresyon nasıl gerçekleştirilir
Python’un statsmodels modülü, çeşitli istatistiksel modelleri uyarlamanıza olanak tanıyan çeşitli işlevler ve sınıflar sunar.
Aşağıdaki adım adım örnek, statsmodels işlevlerini kullanarak lojistik regresyonun nasıl gerçekleştirileceğini gösterir.
1. Adım: Verileri oluşturun
Öncelikle üç değişken içeren bir pandas DataFrame oluşturalım:
- Çalışılan saat (değerin tamamı)
- Çalışma yöntemi (yöntem A veya B)
- Sınav sonucu (geçti veya kaldı)
Bir öğrencinin belirli bir sınavı geçip geçmeyeceğini tahmin etmek için çalışılan saatleri ve çalışma yöntemini kullanarak bir lojistik regresyon modeli uygulayacağız.
Aşağıdaki kod pandalar DataFrame’in nasıl oluşturulacağını gösterir:
import pandas as pd #createDataFrame df = pd. DataFrame ({' result ': [0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1], ' hours ': [1, 2, 2, 2, 3, 2, 5, 4, 3, 6, 5, 8, 8, 7, 6, 7, 5, 4, 8, 9], ' method ': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'B', 'A', 'B', 'A', 'B', 'B', 'A', 'A', 'B', 'A', 'B', 'A']}) #view first five rows of DataFrame df. head () result hours method 0 0 1 A 1 1 2 A 2 0 2 A 3 0 2 B 4 0 3 B
Adım 2: Lojistik regresyon modelini yerleştirin
Daha sonra logit() fonksiyonunu kullanarak lojistik regresyon modelini yerleştireceğiz:
import statsmodels. formula . api as smf
#fit logistic regression model
model = smf. logit (' result~hours+method ', data=df). fit ()
#view model summary
print ( model.summary ())
Optimization completed successfully.
Current function value: 0.557786
Iterations 5
Logit Regression Results
==================================================== ============================
Dept. Variable: result No. Observations: 20
Model: Logit Df Residuals: 17
Method: MLE Df Model: 2
Date: Mon, 22 Aug 2022 Pseudo R-squ.: 0.1894
Time: 09:53:35 Log-Likelihood: -11.156
converged: True LL-Null: -13.763
Covariance Type: nonrobust LLR p-value: 0.07375
==================================================== ============================
coef std err z P>|z| [0.025 0.975]
-------------------------------------------------- -----------------------------
Intercept -2.1569 1.416 -1.523 0.128 -4.932 0.618
method[TB] 0.0875 1.051 0.083 0.934 -1.973 2.148
hours 0.4909 0.245 2.002 0.045 0.010 0.972
==================================================== ============================
Çıktının katsayı sütunundaki değerler bize sınavı geçme ihtimalinin logdaki ortalama değişimini anlatır.
Örneğin:
- Çalışma yöntemi B’nin kullanılması, çalışma yöntemi A’nın kullanılmasıyla karşılaştırıldığında sınavı geçmenin günlük olasılıklarında ortalama 0,0875’lik bir artışla ilişkilidir.
- Çalışılan her ek saat, sınavı geçme log oranlarında ortalama 0,4909’luk bir artışla ilişkilidir.
P>|z| içindeki değerler Sütun, her katsayı için p değerlerini temsil eder.
Örneğin:
- Çalışma yönteminin p değeri 0,934’tür . Bu değerin 0,05’ten az olmaması, çalışılan saat ile öğrencinin sınavı geçip geçmemesi arasında istatistiksel olarak anlamlı bir ilişkinin olmadığı anlamına gelir.
- Çalışılan saatlerin p değeri 0,045’tir . Bu değerin 0,05’ten küçük olması, çalışılan saat ile öğrencinin sınavı geçip geçmemesi arasında istatistiksel olarak anlamlı bir ilişki olduğu anlamına gelir.
3. Adım: Model performansını değerlendirin
Lojistik regresyon modelinin kalitesini değerlendirmek için çıktıdaki iki ölçüme bakabiliriz:
1. Takma ad R-kare
Bu değer, doğrusal regresyon modeli için R-kare değerinin yerine geçebilir.
Maksimumlaştırılmış log-olabilirlik fonksiyonunun boş modelden tam modele oranı olarak hesaplanır.
Bu değer 0 ila 1 arasında değişebilir ve daha yüksek değerler daha iyi model uyumunu gösterir.
Bu örnekte sözde R-kare değeri 0,1894 olup oldukça düşüktür. Bu bize modelin yordayıcı değişkenlerinin yanıt değişkeninin değerini tahmin etme konusunda pek iyi bir iş çıkarmadığını söyler.
2. LLR p değeri
Bu değer, doğrusal regresyon modelinin genel F değeri için p değerinin yerine geçebilir.
Bu değer belirli bir eşiğin altındaysa (örneğin α = 0,05), modelin bir bütün olarak “faydalı” olduğu ve tahmin değişkenleri olmayan bir modelle karşılaştırıldığında yanıt değişkeninin değerlerini daha iyi tahmin edebileceği sonucuna varabiliriz.
Bu örnekte LLR’nin p değeri 0,07375’tir . Seçtiğimiz anlamlılık düzeyine bağlı olarak (örneğin 0,01, 0,05, 0,1), modelin bir bütün olarak yararlı olduğu sonucuna varabiliriz ya da çıkmayabiliriz.
Ek kaynaklar
Aşağıdaki eğitimlerde Python’da diğer genel görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
Python’da doğrusal regresyon nasıl gerçekleştirilir
Python’da logaritmik regresyon nasıl gerçekleştirilir
Python’da niceliksel regresyon nasıl gerçekleştirilir