Mam pandasową ramkę danych z pewnymi predykatorami kategorycznymi (tj. Zmiennymi) jako 0 & 1 i niektórymi zmiennymi numerycznymi. Kiedy dopasować ją do a stasmodel jak:Model wieloregresowy budynku zgłasza błąd: `Dane Pand oddane do numpy dtype obiektu. Sprawdź dane wejściowe za pomocą np.asarray (danych). "
est = sm.OLS(y, X).fit()
to rzuca:
Pandas data cast to numpy dtype of object. Check input data with np.asarray(data).
konwertowane wszystkie dtypes z DataFrame stosując df.convert_objects(convert_numeric=True)
Po tym wszystkim dtypes zmiennych dataframe się jako Int32 lub int64. Ale w końcu to nadal pokazuje dtype: object
coś takiego:
4516 int32
4523 int32
4525 int32
4531 int32
4533 int32
4542 int32
4562 int32
sex int64
race int64
dispstd int64
age_days int64
dtype: object
Tu 4516, 4523 są zmienne etykiety.
Każdy pomysł? Muszę zbudować model wieloregresyjny na więcej niż setkach zmiennych. W tym celu złączyłem 3 pandy DataFrames, aby stworzyć ostateczną ramkę DataFrame do zastosowania w budowaniu modeli.
Dane wyjściowe, które widzisz, są zgodne z oczekiwaniami. Podany na końcu danych wynik jest typem dtypes (wynik wywołania pd.DataFrame.dtypes) i nie ma nic wspólnego z typami wewnątrz twojej ramki danych. Po prostu spróbuj 'pd.DataFrame (zakres (100)). Dtypes' – davidshinn
sprawdź' np.asarray (X) .dtype', który powinien być float64, lub int64, który, jak sądzę, zostanie przekonwertowany na float64 wewnątrz statsmodels. Najlepiej ponownie sprawdzić 'est.model.exog.dtype', aby upewnić się, że float64 jest używany w obliczeniach. – user333700