2016-03-28 48 views
0

Veriler, python'da bir liste olarak saklanan x ve y değişkenleri olarak var. Bunu, statsmodels üzerinden çalıştırmak için python'a nasıl aktarabilirim?Açık ve model verilerini istatistik modellerinde GLM olarak güncelleştirin

from __future__ import print_function 
import statsmodels.api as sm 
import statsmodels.formula.api as smf 
import pandas as pd 

x = [1,1,2,3] 
y=[1,0,0,0] 
data = pd.DataFrame(x,y) #to merge the two side by side 

star98 = sm.datasets.star98.load_pandas().data 

formula = 'x ~ y' 


pd.options.mode.chained_assignment = None # default='warn' 


mod1 = smf.glm(formula=formula, data=data, family=sm.families.Binomial()).fit() 

x = mod1.summary() 

ValueError: Sapma işlevinin ilk tahmini bir nan döndürdü. Bu bir sınır sorunu olabilir ve bildirilmelidir.

cevap

5

Bir kaç küçük sorun yaşadınız. Öncelikle, verilerinizi inşa edildi yolu, y aslında dataframe endeksi olarak yorumlandı:

In [3]: 
    x = [1,1,2,3] 
    y=[1,0,0,0] 
    data = pd.DataFrame(x,y) #to merge the two side by side 
    data 
Out[3]: 
    0 
1 1 
0 1 
0 2 
0 3 

Bunun yerine, sütun olarak hem geçmek ve onlar sütun adlarını almak emin olmak için var; , Olması gerektiği (Sana x verilerden y sınıflandırmak için çalışıyoruz tahmin beri)

formula = 'y ~ x' 

ederse, formül yanlış, İkincisi

In [13]: 
    x = [1,1,2,3] 
    y = [1,0,0,0] 
    data = pd.DataFrame({'x' : x, 'y' : y}) #to merge the two side by side 
    data 
Out[13]: 
    x y 
0 1 1 
1 1 0 
2 2 0 
3 3 0 

: Daha kolay bir sözlükle muhtemelen Kodunuzun geri kalanıyla bu şekilde sığdırırsanız, daha iyi sonuçlar elde edersiniz.

In [21]: 
    x 
Out[21]: 
Generalized Linear Model Regression Results 
Dep. Variable: y No. Observations: 4 
Model: GLM Df Residuals: 2 
Model Family: Binomial Df Model: 1 
Link Function: logit Scale: 1.0 
Method: IRLS Log-Likelihood: -1.3863 
Date: Mon, 28 Mar 2016 Deviance: 2.7726 
Time: 15:34:32 Pearson chi2: 2.00 
No. Iterations: 22  
coef std err z P>|z| [95.0% Conf. Int.] 
Intercept 22.1423 3.9e+04 0.001 1.000 -7.64e+04 7.64e+04 
x -22.1423 3.9e+04 -0.001 1.000 -7.64e+04 7.64e+04 

Yardım edin.

+0

en iyi cevap hiç –

İlgili konular