我使用Statsmodels创建了各种回归。我获取数据,将其整形为Pandas数据帧,然后在数据上运行多个模型。我现在正努力将所有这些回归输出为CSV文件。我的目标是拥有所有我的回归数据" (即每个控制/变量的系数,截距,标准误差等,以及一个轴上的观测数和一些其他数据点),每个回归的标题形成另一个轴。
到目前为止,我尝试了多种方法,其中一种方法看起来最有希望。该方法一直在使用
results = FoodPriceReg(PriceChange, RightHandVars)
regexport = RegToCSV(results)
return regexport
将打印的摘要转换为CSV文件。然后我用
for com in commodity:
RegOut = RegLoop(com)
regressions = pd.DataFrame(RegOut)
name = 'regressions/' + com[2]
SaveFrame(regressions, name)
将回归输出为每个食品类别的CSV + .dta文件。
我还尝试将这些CSV文件排序到嵌套列表中,然后将它们转换为数据帧并尝试使用它们。我遇到的最大问题是CSV输出非常粗糙且难以使用。它没有像其他Pandas数据框那样组织起来,我也无法提出一个相当简单的解决方案来将CSV中的所有数据排序,这样如果你在Excel中打开它,每条信息都是如此最终会进入它自己的牢房。
为了澄清,现在我的最终CSV输出的每个单元格都是
Dep. Variable: ,ParboiledCoarseRice2014, R-squared: , 0.010
Model: ,OLS , Adj. R-squared: , -0.000
Method: ,Least Squares , F-statistic: , 0.9711
, coef , std err , t ,P>|t| , [0.025 , 0.975]
Intercept , 28.5204, 0.216, 131.855, 0.000, 28.095, 28.945
Cash , 4.5696, 0.501, 9.112, 0.000, 3.584, 5.555
Food , 4.1321, 0.501, 8.240, 0.000, 3.147, 5.117
FoodCash , 4.2496, 0.501, 8.474, 0.000, 3.264, 5.235
CashTraining, 5.2596, 0.675, 7.787, 0.000, 3.933, 6.587
FoodTraining, 5.8696, 0.675, 8.691, 0.000, 4.543, 7.197
Control , 4.4396, 0.501, 8.853, 0.000, 3.454, 5.425
虽然我希望每条信息都是它自己的行,例如:
Model: ParboiledCoarseRice2014 ~ Treatment Dummies
R-squared: 0.010
Cash Coef: 4.5696
Cash Std Err: 0.501
我认为我在使用Statsmodels时缺少一些基本的东西,因为回归的输出很少记录,但似乎必须从包中获得大量使用。