Bau von multi-regression-Modell wirft Fehler: `Pandas-Daten umgewandelt numpy dtype des Objekts. Check input-Daten mit np.asarray(Daten).`

Ich habe pandas dataframe mit einigen kategoriale Prädiktoren (d.h. Variablen) als 0 & 1, und einige numerische Variablen. Wenn ich so fit, dass zu einem stasmodel wie:

est = sm.OLS(y, X).fit()

Wirft:

Pandas data cast to numpy dtype of object. Check input data with np.asarray(data). 

Konvertierte ich alle dtypes der DataFrame mit df.convert_objects(convert_numeric=True)

Danach werden alle dtypes von dataframe Variablen werden als int32 oder int64. Aber am Ende, es zeigt immer noch dtype: object wie diese:

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

Hier 4516, 4523 sind variable Etiketten.

Irgendeine Idee? Ich brauche zum Aufbau einer multi-Regressions-Modell auf mehr als Hunderte von Variablen. Dafür habe ich verkettet 3 pandas DataFrames zu kommen mit der definitiven DataFrame verwendet werden im Modellbau.

  • Die Ausgabe, die Sie sehen, ist, wie erwartet. Die dtype am Ende aufgeführten Ausgabe der "dtype" der dtypes Serie (das Ergebnis des Aufrufs pd.DataFrame.dtypes) und hat nichts zu tun mit den Typen, die im inneren des dataframe. Versuchen Sie einfach pd.DataFrame(range(100)).dtypes
  • überprüfen Sie np.asarray(X).dtype werden sollte float64, oder int64, die, denke ich, wird umgewandelt werden float64 innen statsmodels. Am besten noch einmal überprüfen est.model.exog.dtype um sicherzustellen, float64 ist in den Berechnungen verwendet.
InformationsquelleAutor Sanoj | 2015-11-20
Schreibe einen Kommentar