Я сломал твой код, и я запускал его построчно.Проблема здесь:
lin_mod1 = sfa.ols("wt~mpg",cars_data)
Если вы попытаетесь распечатать его, вы получите:
statsmodels.regression.linear_model.OLS object at 0x7f1c64273eb8
И это не может быть правильно интерпретировано для построения фрейма данных.
Решение состоит в том, чтобы получить результат первой линейной модели в таблицу и, наконец, поместить ее во фрейм данных:
results = lin_mod1.fit()
results_summary = results.summary()
Если вы напечатаете result_summary, вы увидите, что переменные: Interceptи миль на галлон.Я не знаю, является ли это ошибкой концепции или чего-то другого, поскольку это не пара «wt» - «mpg».
# summary as a html table
results_as_html = results_summary.tables[1].as_html()
# dataframe from the html table
lin_mod2 = pd.read_html(results_as_html, header=0, index_col=0)[0]
Печать lin_mod2:
coef std err t P>|t| [0.025 0.975]
Intercept 6.0473 0.309 19.590 0.0 5.417 6.678
mpg -0.1409 0.015 -9.559 0.0 -0.171 -0.111