web-dev-qa-db-fra.com

AttributeError: le module 'statsmodels.formula.api' n'a pas d'attribut 'OLS'

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'
9
Shubham Trehan

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()
21
chefer

Utilisez cette importation.

import statsmodels.api as sm
7
Ankit Pal

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)
6
Matus Dubrava

Essayez ceci à la place, a fonctionné pour moi:

import statsmodels.regression.linear_model as sm
2
Tanish Kushwaha

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()
1
Subhashi

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
0
kv89