我制作了一个与PATSY和FORMULA一起使用的代码,但现在我想做'预测'以验证我在摘要中找到的结果。那我怎么能预测我的变量呢?
import numpy as np
from scipy import stats
import scipy
import matplotlib.pyplot as plt
import statsmodels.api as sm
from statsmodels.formula.api import logit, probit, poisson, ols
FNAME ="C:/Users/lenovo/Desktop/table.csv"
my_data = np.genfromtxt (FNAME, delimiter = ',')
x = my_data [:,1]
d = my_data [:,4]
f=my_data[:,6]
c= my_data[:,3]
#crée un masque pour les valeurs nans
masque = ~ (np.isnan (x) | np.isnan (d) | np.isnan (f) | np.isnan (c))
x = my_data[masque, 1] - 1
d = my_data[masque, 4]
f = my_data[masque, 6]
c = my_data[masque, 3]
my_data_dict = dict (
x = x,
d = d,
f = f,
c=c
)
form = 'x ~ C(c)+C(d)+C(f)'
affair_model = logit (form, my_data_dict, manquant = 'drop')
affair_result = affair_model.fit ()
print affair_result.summary ()
答案 0 :(得分:1)
在这一行:
data = df[cols_to_keep].join(dummy_ranks1.ix[:, 'c_2':]).join(dummy_ranks3.ix[:, 'd_2':]).join(dummy_ranks2.ix[:, 'f_2':])
您只选择了['a', 'b']
列,然后加入其中没有DataFrame
的其他x
。
只需更改
cols_to_keep = ['a', 'b']
到
cols_to_keep = ['a', 'b', 'x']
对于像这样的一次性脚本,使用assert
进行完整性检查以确保它能够按照您的预期进行操作并不是一个坏主意,例如,
assert 'x' in data, 'x is not a column in data'
由于x
已添加回data
,您还需要将train_cols
更改为
cols = data.columns
train_cols = cols[cols != 'x'][1:]