'Poisson - ValueError: operands could not be broadcast together with shapes

Using the Poisson regression importing from statsmodels.api as sm.

I am doing something similar to this, but a different dataset. https://timeseriesreasoning.com/contents/poisson-regression-model/

In my model:

y_train.shape = (52, 52)

X_train.shape = (52, 503)

I get an error when I run:

poisson_training_results = sm.GLM(y_train, X_train, family = sm.families.Poisson()).fit()

"ValueError: operands could not be broadcast together with shapes (52,1,52) (52,503)"

It just looks like it randomly adds '1' to y_train shape.

Does anyone know why it is doing this?

Edit: CODE.

mask = np.random.rand(len(final_delta_df)) < 0.8
df_train = final_delta_df[mask]
df_test = final_delta_df[~mask]
print('Training data set length = '+str(len(df_train)))
print('Testing data set length = '+str(len(df_test)))

Training data set length=52 Testing data set length=12

expr = """deaths_sum ~ positive_auc + vax_pop + hospital_beds_avg + diabetes_prevalence + aged_70_older + stringency_avg + Avg_temp + Avg_UV_index + Avg_water_vapour + Delta_prop"""

y_train, X_train = dmatrices(expr, df_train, return_type = 'dataframe')
y_test, X_test = dmatrices(expr, df_test, return_type = 'dataframe')

poisson_training_results = sm.GLM(y_train, X_train, family = sm.families.Poisson()).fit()


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source