2

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 () 
4

1 に答える 1

1

この行で:

data = df[cols_to_keep].join(dummy_ranks1.ix[:, 'c_2':]).join(dummy_ranks3.ix[:, 'd_2':]).join(dummy_ranks2.ix[:, 'f_2':])

column のみを選択してから、それらに含まれていない['a', 'b']他の s と結合しています。DataFramex

変更するだけ

cols_to_keep = ['a', 'b']

cols_to_keep = ['a', 'b', 'x']

このような 1 回限りのスクリプトの場合、サニティ チェックを使用し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:]
于 2013-08-28T12:45:56.843 に答える