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üfenest.model.exog.dtype
um sicherzustellen, float64 ist in den Berechnungen verwendet.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn X die dataframe, versuchen Sie es mit der
.astype
Methode zum konvertieren von float beim ausführen des Modells:wenn beide y(abhängige) und X sind aus der einen Daten-frame, dann Typumwandlung beide:-