运行statsmodels.formula.api.ols
得到了一些回归结果。下面是一个玩具示例:
import pandas as pd
import numpy as np
import statsmodels.formula.api as smf
example_df = pd.DataFrame(np.random.randn(10, 3))
example_df.columns = ["a", "b", "c"]
fit = smf.ols('a ~ b', example_df).fit()
我想将模型应用于列c
,但天真的尝试是行不通的:
fit.predict(example_df["c"])
我得到一个例外:
PatsyError: Error evaluating factor: NameError: name 'b' is not defined
a ~ b
^
我可以做一些粗制滥造的事情,创建一个新的、临时的DataFrame
,其中我重命名了感兴趣的列:
example_df2 = pd.DataFrame(example_df["c"])
example_df2.columns = ["b"]
fit.predict(example_df2)