OLS回归:Scikit与Statsmodels?

OLS回归:Scikit与Statsmodels?,第1张

OLS回归:Scikit与Statsmodels?

听起来您没有

X
两个过程提供相同的回归矩阵(但请参见下文)。这是一个示例,向您显示需要为sklearn和statsmodel使用哪些选项才能产生相同的结果。

import numpy as npimport statsmodels.api as smfrom sklearn.linear_model import LinearRegression# Generate artificial data (2 regressors + constant)nobs = 100 X = np.random.random((nobs, 2)) X = sm.add_constant(X)beta = [1, .1, .5] e = np.random.random(nobs)y = np.dot(X, beta) + e# Fit regression modelsm.OLS(y, X).fit().params>> array([ 1.4507724 ,  0.08612654,  0.60129898])LinearRegression(fit_intercept=False).fit(X, y).coef_>> array([ 1.4507724 ,  0.08612654,  0.60129898])

正如评论者所建议的那样,即使您给两个程序相同的X,X可能也没有完整的列排名,并且它们的sm /
sk可能在后台采取了(不同的)动作来使OLS计算得以通过(即删除不同的列)。

我建议您使用

pandas
patsy
注意以下事项:

import pandas as pdfrom patsy import dmatricesdat = pd.read_csv('wow.csv')y, X = dmatrices('levels ~ week + character + guild', data=dat)

或者,可以使用

statsmodels
公式界面:

import statsmodels.formula.api as smfdat = pd.read_csv('wow.csv')mod = smf.ols('levels ~ week + character + guild', data=dat).fit()

编辑:此示例可能有用:http
:
//statsmodels.sourceforge.net/devel/example_formulas.html



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5647734.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存