我被要求用以下步骤编写线性回归程序。


将R数据集mtcars加载为pandas数据框。
通过考虑自变量wt的对数和因变量mpg的对数来构建另一个线性回归模型。
用数据拟合模型,并显示R平方值


我是使用Statistics统计的初学者。

我尝试获取日志值而不转换为新的DataFrame,但是给出了错误消息“ TypeError:'OLS'对象不可下标”

import statsmodels.api as sa
import statsmodels.formula.api as sfa
import pandas as pd
import numpy as np

cars = sa.datasets.get_rdataset("mtcars")
cars_data = cars.data
lin_mod1 = sfa.ols("wt~mpg",cars_data)
lin_mod2 = pd.DataFrame(lin_mod1)
lin_mod2['wt'] = np.log(lin_mod2['wt'])
lin_mod2['mpg'] = np.log(lin_mod2['mpg'])
lin_res1 = lin_mod2.fit()
print(lin_res1.summary())


预期结果是线性回归后的表,但实际输出是错误的


[ValueError:未正确调用DataFrame构造函数!]

最佳答案

这可能对您有用。

import statsmodels.api as sm
import numpy as np
mtcars = sm.datasets.get_rdataset('mtcars')
mtcars_data = mtcars.data
liner_model = sm.formula.ols('np.log(wt) ~ np.log(mpg)',mtcars_data)
liner_result = liner_model.fit()
print(liner_result.rsquared)

关于python - 无法修复“ValueError:DataFrame构造函数未正确调用!”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58040979/

10-12 18:50