Wie man die regression intercept mit Statsmodels.api
Ich versuche berechnen Sie eine regression Ausgabe mit python-Bibliothek, aber ich bin unabl;e, um die intercept-Wert, wenn ich die Bibliothek verwenden:
import statsmodels.api as sm
Druckt er alle die Regressionsanalyse außer dem intercept.
aber wenn ich:
from pandas.stats.api import ols
Mein code für pandas:
Regression = ols(y= Sorted_Data3['net_realization_rate'],x = Sorted_Data3[['Cohort_2','Cohort_3']])
print Regression
Bekomme ich das abfangen mit einer Warnung, dass diese librabry werden veraltet in die Zukunft, so bin ich versucht zu verwenden Statsmodels.
die Warnung, die ich erhalten während der Verwendung pandas.stats.api:
Warnung (von Warnungen-Modul):
Datei "C:\Python27\lib\idlelib\run.py", line 325
exec code in sich selbst.die einheimischen
FutureWarning: Die pandas.stats.ols-Modul ist veraltet und wird in einer zukünftigen version entfernt. Wir verweisen auf fremde Pakete wie statsmodels, hier einige Beispiele: http://statsmodels.sourceforge.net/stable/regression.html
Mein code für Statsmodels:
import pandas as pd
import numpy as np
from pandas.stats.api import ols
import statsmodels.api as sm
Data1 = pd.read_csv('C:\Shank\Regression.csv') #Importing CSV
print Data1
laufen einige Reinigung code
sm_model = sm.OLS(Sorted_Data3['net_realization_rate'],Sorted_Data3[['Cohort_2','Cohort_3']])
results = sm_model.fit()
print '\n'
print results.summary()
Ich habe sogar versucht statsmodels.Formel.api:
als:
sm_model = sm.OLS(formula ="net_realization_rate ~ Cohort_2 + Cohort_3", data = Sorted_Data3)
results = sm_model.fit()
print '\n'
print result.params
print '\n'
print results.summary()
aber ich bekomme die Fehlermeldung:
TypeError: init() takes at least 2 arguments (1 given)
Letzten Ausgabe:
1. ist von pandas 2 ist von Stats.... Ich will das abfangen vaule von pandas aus Statistiken auch:
- Sie importiert
ols
aber habe es nicht verwenden. versuchen:sm_model = ols(...
- Ja, ich habe es ....die ols gibt mir das Ergebnis, sondern auch eine Warnung, dass die Zukunft von der Nutzung der Bibliothek..pandas.stats.api veraltet in die Zukunft, so bin ich versucht die " andere Bibliothek...statsmodels.api
Du musst angemeldet sein, um einen Kommentar abzugeben.
So,
statsmodels
hat eineadd_constant
Methode, die Sie verwenden müssen diese explizit hinzufügen intercept-Werte. IMHO, das ist besser als die R-alternative, bei der das abfangen wird standardmäßig Hinzugefügt.In Ihrem Fall, Sie brauchen, um dies zu tun:
Beachten Sie, dass Sie hinzufügen können, eine Konstante vor das array, oder, nachdem es durch die übergabe
True
(Standard) oderFalse
zu denprepend
kwag insm.add_constant
Oder-nicht empfohlen, aber Sie können Numpy explizit hinzufügen einer Konstanten Spalte etwa so:
Können Sie auch etwas wie das hier tun:
Hier sind Sie explizit erstellen Sie eine Spalte für die intercept.
Dann können Sie einfach die sm.OLS-Methode etwa so: