Lojistik regresyon modeli yakınsak değil


39

Havayolu uçuşlarıyla ilgili bazı verilerim var (adı verilen bir veri çerçevesinde flights) ve uçuş süresinin önemli ölçüde gecikmeli varış olasılığı (10 veya daha fazla dakika) üzerinde bir etkisi olup olmadığını görmek istiyorum. Uçuş regülatörü olarak uçuş süresi ve her uçuşun yanıt olarak önemli ölçüde geciktirilip geciktirilmeyeceği (bir demet Bernoullis) yanıtı olarak lojistik regresyon kullanacağımı düşündüm. Aşağıdaki kodu kullandım ...

flights$BigDelay <- flights$ArrDelay >= 10
delay.model <- glm(BigDelay ~ ArrDelay, data=flights, family=binomial(link="logit"))
summary(delay.model)

... ama aşağıdaki çıktıyı aldım.

> flights$BigDelay <- flights$ArrDelay >= 10
> delay.model <- glm(BigDelay ~ ArrDelay, data=flights, family=binomial(link="logit"))
Warning messages:
1: In glm.fit(x = X, y = Y, weights = weights, start = start, etastart = etastart,  :
  algorithm did not converge
2: In glm.fit(x = X, y = Y, weights = weights, start = start, etastart = etastart,  :
  fitted probabilities numerically 0 or 1 occurred
> summary(delay.model)

Call:
glm(formula = BigDelay ~ ArrDelay, family = binomial(link = "logit"),
    data = flights)

Deviance Residuals:
       Min          1Q      Median          3Q         Max
-3.843e-04  -2.107e-08  -2.107e-08   2.107e-08   3.814e-04

Coefficients:
            Estimate Std. Error z value Pr(>|z|)
(Intercept)  -312.14     170.26  -1.833   0.0668 .
ArrDelay       32.86      17.92   1.833   0.0668 .
---
Signif. codes:  0 â***â 0.001 â**â 0.01 â*â 0.05 â.â 0.1 â â 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2.8375e+06  on 2291292  degrees of freedom
Residual deviance: 9.1675e-03  on 2291291  degrees of freedom
AIC: 4.0092

Number of Fisher Scoring iterations: 25

Algoritmanın birleşmediği ne anlama geliyor? Çünkü olması düşünülen BigDelaydeğerleri TRUEve FALSEyerine 0ve 1, ama her şeyi dönüştürülür sonra aynı hata var. Herhangi bir fikir?


İlk düşünce: Kusursuz ayrılık , yordayıcının 'çok iyi' olduğu anlamına gelir, günlükler +/- sonsuzluğa gider ve her şey düşer. İkinci düşünce: Kod düşündüğünüzü yapar mı? Değişken isimleriniz açıklamanızla tam olarak eşleşmiyor gibi görünüyor. Verinin ne olduğunu daha net bir şekilde detaylandırabilirsiniz, çünkü görünüşe göre kendisiyle bir şeyler tahmin etmeye çalışıyor olabilirsiniz .
conjugateprior

1
"kabul et" e hak ettiğime emin değilim. @Conjugate Prior'in cevabı, modelinizde neyin yanlış olduğunu açıkladı. Algoritma açısından bahsettiğin uyarıyı açıklamaya değeceğini düşündüm.
Monica'yı eski durumuna getirme - G. Simpson,

3
Gerçek gecikme sürelerine sahipseniz, onları bir ikili değişkene indirgemek yerine, onları modelleyerek daha iyi bilgi edinmeniz olasıdır.
whuber

ilgili soru
user603

glm1 () işlevini deneyebilirsiniz. Sorun yakınsama üstesinden gelmek

Yanıtlar:


33

glm()yinelemeli yeniden ağırlıklı en küçük kareler algoritması kullanır. Algoritma, yakınsama sinyalini vermeden önce izin verilen azami yineleme sayısını vurdu. Varsayılan olarak belgelenen ?glm.control25'tir. Kontrol parametrelerini glmçağrıda liste halinde iletirsiniz :

delay.model <- glm(BigDelay ~ ArrDelay, data=flights, family=binomial,
                   control = list(maxit = 50))

@Conjugate Prior’in dediği gibi, onu oluşturmak için kullanılan verilerle yanıtı tahmin ediyor gibi görünüyorsunuz. Herhangi gibi tamamen ayrılmasını var ArrDelay < 10tahmin edecek FALSEve herhangi ArrDelay >= 10tahmin edecektir TRUE. Diğer uyarı mesajı, bazı gözlemler için uygun olasılıkların etkin bir şekilde 0 veya 1 olduğunu ve bu modelde bir sorun olduğunu gösteren iyi bir gösterge olduğunu söyler.

β^ben


Buradaki model yakınsaması ile tam olarak ne demek istediğinizi açıklayabilir misiniz?
Bach,

1
Yakınsama ile, modelde tahmin edilen parametrelerin yinelemeler arasında değişmediğini (veya sadece bazı küçük toleranslardan daha az değişmediğini) kastediyorum. Burada parametreler gittikçe genişlemekte ve yineleme sınırlaması nedeniyle montaj durmaktadır, ancak parametre tahminleri sondan bir önceki yineleme arasında değişmediği için değişmiştir.
Monica’yı eski

6

Firth’ın önyargı azaltmasının veri kümenizle çalışıp çalışmadığını kontrol etmeye çalışabilirsiniz. Standart glmpaketi kullanarak farklılıklar üreten veri kümeleri için yararlı olabilecek cezalandırılmış olabilirlik yaklaşımıdır . Bazen tam / neredeyse tamamen ayrılma üreten değişkeni ortadan kaldırmak yerine kullanılabilir.

Ö(n-1)

Firth’ın önyargısı azaltma, R-pakette uygulanmaktadır logistf: http://cran.r-project.org/web/packages/logistf/logistf.pdf

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.