Создание файла 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, так как вывод регрессий редко документирован, но, кажется, очень важен, чтобы получить много пользы от пакета.