Python 我如何预测我的变量

Python 我如何预测我的变量,python,numpy,pandas,prediction,statsmodels,Python,Numpy,Pandas,Prediction,Statsmodels,我编写了一个与PATSY和FORMULA一起使用的代码,但现在我想用“预测”来验证我在summary中找到的结果。那么我如何预测我的变量呢 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, ol

我编写了一个与PATSY和FORMULA一起使用的代码,但现在我想用“预测”来验证我在summary中找到的结果。那么我如何预测我的变量呢

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 () 
在这方面:

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']
,然后与其他
数据帧
中没有
x
的列合并

简单地改变

cols_to_keep = ['a', 'b']

对于像这样的一次性脚本,使用
assert
的健全性检查来确保它执行了您期望的操作,这不是一个坏主意,例如

assert 'x' in data, 'x is not a column in data'
由于
x
已添加回
数据中
,因此您还需要将
列库
更改为

cols = data.columns
train_cols = cols[cols != 'x'][1:]

是的,我添加了x,但我有一个错误:raise linalgeror,'Singular matrix'numpy.linalg.linalg.linalg.linalgeror:Singular matrix自从您将
x
添加回
数据后,显然,您必须确保“x”不在列中。我在列中添加了x以保留。因为我试图找到变量的预测值。。。为此,我正在开发这段代码,并尝试应用我在这个链接中找到的内容。在进入逻辑回归之前,回顾一下可能会有帮助。你为什么这么说?在开始逻辑回归之前,我学习了Python的基础知识,现在我在逻辑回归方面遇到了一个问题。另外,我正在尝试发出您的命令,但我总是有错误。您能给我看一下完整的代码吗?因为您下面的一些评论表明,您不明白当您直接运行
train\u cols=train\u cols[train\u cols!='x'][1:]
。如果我给你完整的代码,你什么也学不到。Stack Overflow并不是一个真正的“给我一个实现”的站点。我编写了代码,只是有一个错误。好的,谢谢
cols = data.columns
train_cols = cols[cols != 'x'][1:]