2016-09-14 1 views
0

J'essaie de tracer la régression ad odr. J'ai utilisé le code de ce poste à titre d'exemple: sample code ceci est mon code:scipy.odr sortie interception et pente

# regressione ODR 
import scipy.odr as odr 
def funzione(B,x): 
    return B[0]*x+B[1] 
linear= odr.Model(funzione) 
variabili=odr.Data(database.valore_rut,database.valore_cap) 
regressione_ortogonale=odr.ODR(variabili,linear,beta0=[1., 2.]) 
output=regressione_ortogonale.run()  
output.pprint() 

la sortie est la

Beta: [ 1.00088365 1.78267543] 
Beta Std Error: [ 0.04851125 0.41899546] 
Beta Covariance: [[ 0.00043625 -0.00154797] 
[-0.00154797 0.03254372]] 
Residual Variance: 5.39450361153 
Inverse Condition #: 0.109803542662 
Reason(s) for Halting: 
Sum of squares convergence 

où puis-je trouver l'interception et la pente de tracer la ligne ?

Merci

Répondre

0

L'attribut output.beta détient les coefficients, que vous traitiez B dans votre code. Donc, la pente est output.beta[0] et l'interception est output.beta[1].

Pour dessiner une ligne, vous pouvez faire quelque chose comme:

# xx holds the x limits of the line to draw. The graph is a straight line, 
# so we only need the endpoints to draw it. 
xx = np.array([start, stop]) 
yy = funzione(output.beta, xx) 
plot(xx, yy)