如何在 OLS 模型中快速获得预测值?
How to get a quick predict value in OLS model?
如何从我的 ols 模型中快速获得预测值。例如
import statsmodels.formula.api as sm
model = sm.ols(formula="price ~ size + year", data=df_c).fit()
model.predict([25,1990]) #(should return predicted price value)
当我 运行 model.predict([25,1990]) 时如何获得预测值,其中 25 是大小,1990 是年份?
编辑:
我收到的错误是“PatsyError:预测要求您在从模型进行预测时使用 DataFrame
这是使用公式 api.
创建的
patsy返回的原始错误信息是:
错误评估因素:TypeError:列表索引必须是整数或切片,而不是 str'
有没有办法只 运行 model.predict([25,1990])
的简单代码
提前致谢!
您不能使用您提供的代码执行此操作,因为您正在使用 statsmodels.formula.api
。我能提供的最简单的解决方案是使用快速字典:
import statsmodels.formula.api as sm
import pandas as pd
import numpy as np
df_c = pd.DataFrame(np.random.randn(10, 3))
df_c.columns = ['price','size','year']
model = sm.ols(formula='price ~ size + year', data=df_c).fit()
model.predict({'size':25,'year':1990})[0]
-165.2345445772976
我创建了一个模拟数据框来证明它有效,但你只需要最后一行:model.predict({'size':25,'year':1990})[0]
如何从我的 ols 模型中快速获得预测值。例如
import statsmodels.formula.api as sm
model = sm.ols(formula="price ~ size + year", data=df_c).fit()
model.predict([25,1990]) #(should return predicted price value)
当我 运行 model.predict([25,1990]) 时如何获得预测值,其中 25 是大小,1990 是年份?
编辑:
我收到的错误是“PatsyError:预测要求您在从模型进行预测时使用 DataFrame 这是使用公式 api.
创建的patsy返回的原始错误信息是: 错误评估因素:TypeError:列表索引必须是整数或切片,而不是 str'
有没有办法只 运行 model.predict([25,1990])
的简单代码提前致谢!
您不能使用您提供的代码执行此操作,因为您正在使用 statsmodels.formula.api
。我能提供的最简单的解决方案是使用快速字典:
import statsmodels.formula.api as sm
import pandas as pd
import numpy as np
df_c = pd.DataFrame(np.random.randn(10, 3))
df_c.columns = ['price','size','year']
model = sm.ols(formula='price ~ size + year', data=df_c).fit()
model.predict({'size':25,'year':1990})[0]
-165.2345445772976
我创建了一个模拟数据框来证明它有效,但你只需要最后一行:model.predict({'size':25,'year':1990})[0]