Anche se la soluzione da Alexander sta lavorando, in alcune situazioni non è molto conveniente. Ad esempio, ogni volta che si desidera predire il risultato del modello per nuovi valori, è necessario ricordare di passare entrambi i valori b ** 2 e b che è macchinoso e non dovrebbe essere necessario. Sebbene patsy non riconosca la notazione "b ** 2", riconosce le funzioni numpy. Così, è possibile utilizzare
import statsmodels.formula.api as sm
import numpy as np
data = {"a":[2, 3, 5], "b":[2, 3, 5], "c":[2, 3, 5]}
model = sm.ols(formula = 'a ~ np.power(b, 2) + b + c', data = data).fit()
In questo modo, quest'ultimo, è possibile riutilizzare questo modello, senza la necessità di specificare un valore per B ** 2
model.predict({"a":[1, 2], "b":[5, 2], "c":[2, 4]})
fonte
2015-08-24 20:44:28
sai se questo dipende da una determinata versione? per me il termine b ** 2 è appena saltato – datavoredan
statsmodels aggiornati a 0.6.1 e ancora non va bene – datavoredan
Creare una matrice di design dalle formule è fatto da patsy e sarà indipendente dalla versione statsmodels. (Non so come patsy tratta l'operazione di potere in una formula.) – user333700