Используя панд ПД.вырезать, чтобы сгенерировать категориальную переменную с помощью statsmodels


Я пытался использовать pd.вырезать, чтобы создать категориальную переменную из непрерывной переменной. Я хотел бы использовать это в последующей регрессии, определенной statsmodel, включая эту фиктивную переменную. Когда я создаю категориальную переменную, созданную таким образом, я получаю ошибку

TypeError: data type not understood.    

Ниже приводится тестовый случай.

import numpy as np
import pandas as pd
import statsmodels as sm
import statsmodels.formula.api as smf
df = pd.DataFrame(np.random.randn(6,4))
df.columns = ['A', 'B', 'C', 'D']
df['ttt']=pd.cut(df['D'], bins=2)
test = smf.ols('A ~ B + ttt', data=df).fit()
Я уверен, что сделал что-то явно неправильное. Любая помощь будет оценена по достоинству.
1 3

1 ответ:

Я точно не знаю, где находится statsmodels с точки зрения включения поддержки нового типа Categorical в pandas. На данный момент вам, возможно, придется преобразовать категориальный тип обратно в тип объекта, чтобы он работал (пожалуйста, проверьте, что полученный ols подходит разумно, я не знаю всех деталей того, что вы пытаетесь сделать):

df['ttt_fixed'] = df.ttt.astype(np.object)
test = smf.ols('A ~ B + ttt_fixed', data=df).fit()
test.summary()