使用Statsmodels和Pandas从回归创建CSV文件

时间:2017-08-20 16:48:39

标签: python pandas statsmodels

我使用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时缺少一些基本的东西,因为回归的输出很少记录,但似乎必须从包中获得大量使用。

0 个答案:

没有答案