J'essaie d'utiliser les moindres carrés ordinaires pour la régression multivariable. Mais il dit qu'il n'y a pas d'attribut "OLS" dans les modèles de statistiques. formule. bibliothèque api. Je suis le code d'une conférence sur Udemy Le code est le suivant:
import statsmodels.formula.api as sm
X_opt = X[:,[0,1,2,3,4,5]]
#OrdinaryLeastSquares
regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit(
L'erreur est la suivante:
AttributeError Traceback (most recent call last)
<ipython-input-19-3bdb0bc861c6> in <module>()
2 X_opt = X[:,[0,1,2,3,4,5]]
3 #OrdinaryLeatSquares
----> 4 regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit()
AttributeError: module 'statsmodels.formula.api' has no attribute 'OLS'
Juste pour être complet, le code devrait ressembler à ceci si statsmodels .version est 0.10.0:
import statsmodels.api as sm
X_opt = X[:,[0,1,2,3,4,5]]
#OrdinaryLeastSquares
regressor_OLS = sm.OLS(endog=y, exog=X_opt).fit()
Utilisez cette importation.
import statsmodels.api as sm
J'ai essayé les méthodes mentionnées ci-dessus et tout en
import statsmodels.api as sm
l'importation fonctionne pour moi. Quand je lance le prochain morceau de code
X_opt = X[:, [0, 1, 2, 3, 4, 5]]
regressor_OLS = sm.OLS(endog=y, exog=X_opt).fit()
cela me donne cette erreur.
TypeError: ufunc 'isfinite' n'est pas pris en charge pour les types d'entrée, et les entrées n'ont pas pu être forcées en toute sécurité à tous les types pris en charge selon la règle de transtypage '' sûr ''
Si vous obtenez l'erreur mentionnée ci-dessus, vous pouvez la résoudre en spécifiant dtype
pour le np.array
.
Remplacer
X_opt = X[:, [0, 1, 2, 3, 4, 5]]
avec
X_opt = np.array(X[:, [0, 1, 2, 3, 4, 5]], dtype=float)
Essayez ceci à la place, a fonctionné pour moi:
import statsmodels.regression.linear_model as sm
J'utilise statsmodels 0.11.1 et c'est ce qui a fonctionné pour moi.
import statsmodels.api as sm
X_opt = np.array(X[:, [0, 1, 2, 3, 4, 5]], dtype=float)
regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit()
Tout a l'air bien, sauf la façon dont la bibliothèque de modèles de statistiques est importée. C'est comme ci-dessous:
import statsmodels.api as sm
Au lieu de,
import statsmodels.formula.api as sm