【发布时间】:2016-12-14 15:46:19
【问题描述】:
我正在尝试使用 python 库计算回归输出,但使用该库时无法获得截距值:
import statsmodels.api as sm
它打印除截距之外的所有回归分析。
但是当我使用时:
from pandas.stats.api import ols
我的熊猫代码:
Regression = ols(y= Sorted_Data3['net_realization_rate'],x = Sorted_Data3[['Cohort_2','Cohort_3']])
print Regression
我收到拦截并警告说这个库将来会被弃用,所以我正在尝试使用 Statsmodels。
我在使用 pandas.stats.api 时收到的警告:
警告(来自警告模块): 文件“C:\Python27\lib\idlelib\run.py”,第 325 行 self.locals 中的执行代码 FutureWarning:pandas.stats.ols 模块已弃用,将在未来版本中删除。我们指的是像 statsmodels 这样的外部包,这里有一些例子:http://statsmodels.sourceforge.net/stable/regression.html
我的 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
运行一些清理代码
sm_model = sm.OLS(Sorted_Data3['net_realization_rate'],Sorted_Data3[['Cohort_2','Cohort_3']])
results = sm_model.fit()
print '\n'
print results.summary()
我什至尝试过 statsmodels.formula.api: 如:
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()
但我得到了错误:
TypeError: init() 至少需要 2 个参数(给定 1 个)
最终输出: 第一个来自 pandas 第二个来自 Stats.... 我希望拦截值也是来自 stats 的 pandas 的一个:
【问题讨论】:
-
您导入了
ols,但没有使用它。试试:sm_model = ols(... -
是的,我用过它...... ols 给了我结果,但也警告说将来使用该库..pandas.stats.api 将被弃用,所以我正在尝试使用其他库...statsmodels.api
标签: python statsmodels