无意中我注意到,sklearn和statsmodels实现的OLS模型在不拟合截距时会产生不同的R^2值。否则他们似乎工作正常。以下代码产生:importnumpyasnpimportsklearnimportstatsmodelsimportsklearn.linear_modelasslimportstatsmodels.apiassmnp.random.seed(42)N=1000X=np.random.normal(loc=1,size=(N,1))Y=2*X.flatten()+4+np.random.normal(size=N)sklernIntercept=sl.Line
我一直在研究statsmodels.regression.linear_model.RegressionResults的API并找到了如何检索不同类型的异方差校正标准误差(通过HC0_se等属性)但是,我不太清楚如何获得t-测试系数以使用这些校正后的标准误差。有没有办法在API中执行此操作,还是必须手动执行?如果是后者,您能否就如何使用statsmodels结果执行此操作提出任何指导? 最佳答案 线性模型、离散模型和GLM的fit方法采用cov_type和cov_kwds参数来指定稳健的协方差矩阵。这将附加到结果实例,并用于汇总表中
这三个函数似乎都可以做简单的线性回归,例如scipy.stats.linregress(x,y)numpy.polynomial.polynomial.polyfit(x,y,1)x=statsmodels.api.add_constant(x)statsmodels.api.OLS(y,x)我想知道这三种方法之间是否有任何真正的区别?我知道statsmodels是建立在scipy之上的,而scipy在很多方面都依赖于numpy,所以我希望它们不会有太大差异,但细节决定成败。更具体地说,如果我们使用上面的numpy方法,我们如何获得其他两种方法默认给出的斜率的p-value?我在Pyt
我正在尝试分析星星的数据。我有星星的光时间序列,我想预测它们属于哪一类(在4种不同类型中)。我有这些恒星的光时间序列,我想通过去季节化、频率分析和其他可能相关的研究来分析这些时间序列。对象time_series是一个PandasDataFrame,包括10列:time_points_b、light_points_b(b代表蓝色)等...我首先要研究蓝光时间序列。importstatsmodels.apiassm;importpandasaspdimportmatplotlib.pyplotaspltpd.options.display.mpl_style='default'%matpl
我正在研究逻辑回归模型,但我无法理解如何将训练集中的模型拟合到测试集中。抱歉,我是python的新手,也是statsmodels的新手..importpandasaspdimportstatsmodels.apiassmfromsklearnimportcross_validationindependent_vars=phy_train.columns[3:]X_train,X_test,y_train,y_test=cross_validation.train_test_split(phy_train[independent_vars],phy_train['target'],tes
我正在尝试使用statsmodels和pandas数据框运行多重OLS回归。不同行的不同列中存在缺失值,我不断收到错误消息:ValueError:数组不能包含infs或NaNs我看到了这个SO问题,它很相似但没有完全回答我的问题:statsmodel.api.Logit:valueerrorarraymustnotcontaininfsornans我想做的是运行回归并忽略所有缺少我在此回归中使用的变量的行。现在我有:importpandasaspdimportnumpyasnpimportstatsmodels.formula.apiassmdf=pd.read_csv('cl_030
如题所示,Pandas中ols命令中的滚动功能选项迁移到了statsmodels中的哪里?我好像找不到。Pandas告诉我厄运即将来临:FutureWarning:Thepandas.stats.olsmoduleisdeprecatedandwillberemovedinafutureversion.Werefertoexternalpackageslikestatsmodels,seesomeexampleshere:http://statsmodels.sourceforge.net/stable/regression.htmlmodel=pd.ols(y=series_1,x=
我有以下线性回归:importstatsmodels.formula.apiassmmodel=sm.ols(formula='a~b+c',data=data).fit()我想在这个模型中为b添加一个二次项。statsmodels.ols有简单的方法吗?我应该使用更好的软件包来实现这一目标吗? 最佳答案 最简单的方法是model=sm.ols(formula='a~b+c+I(b**2)',data=data).fit()I(...)基本上是在说“patsy,请不要在这里自作多情,让Python处理kthx中的所有内容”。(Mor
是否有现有函数可以从Pandas或Statsmodels估计固定效应(单向或双向)。Statsmodels中曾经有一个功能,但它似乎已停止使用。在Pandas中,有一个名为plm的东西,但我无法导入它或使用pd.plm()运行它。 最佳答案 如评论中所述,从0.20.0版开始,PanelOLS已从Pandas中删除。所以你真的有三个选择:如果您使用Python3,您可以使用linearmodels,如最近的答案中所指定:https://stackoverflow.com/a/44836199/3435183只需在您的statsmod
(很抱歉,http://statsmodels.sourceforge.net/目前已关闭,我无法访问文档)我正在使用statsmodels进行线性回归,基本上:importstatsmodels.apiassmmodel=sm.OLS(y,x)results=model.fit()我知道我可以打印出完整的结果集:printresults.summary()输出如下:OLSRegressionResults==============================================================================Dep.Variable: