Я запускаю следующий код и получаю ошибку Pasty для первой зависимой переменной. Посмотрел все другие примеры Pasty, но ни один из них не помог мне
Ниже приведен пример кода:
import pandas as pd
import math, numpy as np
import statsmodels.api as sm
import statsmodels.formula.api as smf
Это функция:
def predict(required_data):
tot_data = pd.read_csv("file_path_here")
#home and away are two categorical variables
X = tot_data[['home', 'away', 'range', 'blocks']]
X = pd.get_dummies(X)
y = tot_data[['tot']]
data_formula = pd.concat([X,y], axis=1)
formula = 'tot ~ range + blocks + home_A + home_B + home_C + away_A + away_B + away_C'
model =smf.glm(formula=formula, data=data_formula, family=sm.families.Poisson()).fit()
required_data = pd.DataFrame(required_data)
test_data = required_data[['home', 'away']]
predict = model.predict(test_data[['home','away']])
return predict
This это часть вызова функции:
test_data = pd.read_csv(pd.read_csv("file_path_here")
required_data = test_data[:300][['home', 'away', 'date', 'Id']]
required_pred = predict(required_predictions, data_loader)
Это ошибка, которую я получаю:
PatsyError: Error evaluating factor: NameError: name 'range' is not defined
Если я поменяю местами диапазон с Tot и в качестве зависимой переменной будем иметь значение, то NameError будет для 'tot '
Датафрейм выглядит следующим образом:
d = {'home_A':[0,1,0,0,0],'home_B':[0,0,1,0,0],'home_C':
[0,0,0,1,0],'away_A':[0,0,0,0,1],
'away_B':[1,0,0,0,0],'away_C':[0,1,0,0,0],'range':
[15,-4,13,6,-12],'blocks':[6,12,4,8,9]}
print(pd.DataFrame(d))