Создание файла CSV из регрессий с использованием Statsmodels и Pandas

Я создавал различные регрессии, используя 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 ответов

Другие вопросы по тегам