2014-06-18 3 views
0
x=range(100) 
y=sin(x) 
result=sm.OLS(x,y).fit() 
result.predict(x) 

donne:statsmodels.predict python ne fonctionne pas

ValueError: matrices are not aligned 

Ceci est un code très simple, ne sais pas pourquoi cela ne fonctionne pas? J'ai cherché beaucoup de forums mais je n'ai pas trouvé de solution exacte.

Répondre

1

réponse rapide:

Je pense que vous voulez x et y result=sm.OLS(y, x).fit() inversé La variable dépendante (y) vient en premier, puis le tableau de variables explicatives (x).

L'appel à prévoir avec des œuvres maître de statsmodels, mais peut-être vous avez besoin d'un 2-D x dans une version plus ancienne:

result.predict(x[:,None])

pour rendre la variable explicative dans une column_array. Je ne me souviens pas quand cela a été changé pour 1-D x.)

Notez également qu'il n'y a aucune constante/interception ajouté automatiquement lorsque nous n'utilisons pas l'interface de formule.

La prédiction de l'échantillon ou des données d'apprentissage est également accessible via results.fittedvalues.