jjzjj

python - 使用 Pandas 数据框运行 OLS 回归

我有一个pandas数据框,我希望能够根据B列和C列中的值预测A列的值。这是一个玩具示例:importpandasaspddf=pd.DataFrame({"A":[10,20,30,40,50],"B":[20,30,10,40,50],"C":[32,234,23,23,42523]})理想情况下,我会有类似ols(A~B+C,data=df)但是当我查看examples时从像scikit-learn这样的算法库中,它似乎使用行列表而不是列将数据提供给模型。这将需要我将数据重新格式化为列表中的列表,这似乎首先违背了使用pandas的目的。在pandas数据框中的数据上运行OLS回归

python - 使用 Pandas 数据框运行 OLS 回归

我有一个pandas数据框,我希望能够根据B列和C列中的值预测A列的值。这是一个玩具示例:importpandasaspddf=pd.DataFrame({"A":[10,20,30,40,50],"B":[20,30,10,40,50],"C":[32,234,23,23,42523]})理想情况下,我会有类似ols(A~B+C,data=df)但是当我查看examples时从像scikit-learn这样的算法库中,它似乎使用行列表而不是列将数据提供给模型。这将需要我将数据重新格式化为列表中的列表,这似乎首先违背了使用pandas的目的。在pandas数据框中的数据上运行OLS回归

使用具有特定数据的 OLS 代码的 Python 多元线性回归?

我正在使用在scipyCookbook下载的ols.py代码(下载在第一段中,带有粗体OLS)但我需要理解而不是使用ols函数的随机数据来进行多元线性回归。我有一个特定的因变量y和三个解释变量。每次我尝试用我的变量代替随机变量时,它都会给我错误:TypeError:thisconstructortakesnoarguments.有人可以帮忙吗?这可能吗?这是我尝试使用的ols代码的副本以及我尝试输入的变量from__future__importdivisionfromscipyimportc_,ones,dot,stats,difffromscipy.linalgimportinv,s

python - Pandas 滚动 OLS 被弃用

当我运行旧代码时,我收到以下警告:“pandas.stats.ols模块已弃用,将在未来版本中删除。我们引用外部包,如statsmodels”。我不明白statsmodel中是否有一个用户友好的滚动OLS模块。pandas.stats.ols模块的优点在于,您可以轻松说明是否需要拦截、窗口类型(滚动、扩展)和窗口长度。有没有完全相同的模块?例如:YY=DataFrame(np.log(np.linspace(1,10,10)),columns=['Y'])XX=DataFrame(np.transpose([np.linspace(1,10,10),np.linspace(‌​2,10

python - 将 OLS 回归摘要打印到文本文件

我正在使用pandas.stats.api.ols使用groupby和以下代码运行OLS回归:frompandas.stats.apiimportolsdf=pd.read_csv(r'F:\file.csv')result=df.groupby(['FID']).apply(lambdad:ols(y=d.loc[:,'MEAN'],x=d.loc[:,['Accum_Prcp','Accum_HDD']]))foriinresult:x=pd.DataFrame({'FID':i.index,'delete':i.values})frame=pd.concat([x,DataFra

Python - StatsModels,OLS 置信区间

在Statsmodels中,我可以使用importstatsmodels.apiassmX=np.array([22000,13400,47600,7400,12000,32000,28000,31000,69000,48600])y=np.array([0.62,0.24,0.89,0.11,0.18,0.75,0.54,0.61,0.92,0.88])X2=sm.add_constant(X)est=sm.OLS(y,X2)est2=est.fit()然后使用打印一个漂亮的摘要print(est2.summary())并使用提取诸如p值之类的东西est2.pvalues可在此页面上

python - 使用 statsmodel.formula.api 与 statsmodel.api 的 OLS

谁能给我解释一下statsmodel.formula.api中的ols和statsmodel.api中的ols之间的区别?使用ISLR文本中的广告数据,我使用两者运行了一个ols,得到了不同的结果。然后我与scikit-learn的LinearRegression进行了比较。importnumpyasnpimportpandasaspdimportstatsmodels.formula.apiassmfimportstatsmodels.apiassmfromsklearn.linear_modelimportLinearRegressiondf=pd.read_csv("C:\...

python - 为什么 OLS 回归的 `sklearn` 和 `statsmodels` 实现给出不同的 R^2?

无意中我注意到,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

python - OLS 与 Pandas : datetime index as predictor

我想使用pandasOLS函数为我的数据系列拟合趋势线。有谁知道如何使用pandas系列中的日期时间索引作为OLS中的预测变量?例如,假设我有一个简单的时间序列:>>>ts2001-12-3119.8287632002-12-3120.1121912003-12-3119.5091162004-12-3119.9136562005-12-3119.7016492006-12-3120.0228192007-12-3120.1030242008-12-3120.1327122009-12-3119.8506092010-12-3119.2906402011-12-3119.9362102

python - scipy.stats.linregress、numpy.polynomial.polynomial.polyfit 和 statsmodels.api.OLS 之间的差异

这三个函数似乎都可以做简单的线性回归,例如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