Como fazer análise de regressão bidimensional em Python?
Em primeiro lugar, não estou familiarizado com Python e ainda mal entendo o mecanismo do código Python. Mas preciso fazer algumas análises estatísticas através do Python.
Eu tentei muitas maneiras de descobrir, mas falhei.
Basicamente, tenho 3 matrizes de dados (suponha que essas matrizes sejamX
, Y
, Z
)Eu fiz algumas análises com (X
, Y
) e (Z
, Y
), criando o gráfico de dispersão e ajustando-se melhor aos dados para ver a correlação.№1 e №2 são bastante fáceis.Agora, preciso ver a aresta à vista do gráfico, que é a que combinaX
eZ
. Então, eu fiz a equação (veja abaixo).import pylab as pl
import numpy as np
from pylab import *
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
s = np.loadtxt('New_list3.txt')
s = s.T
x = s[1]
y = s[2]
z = s[4]
upper_error = s[5]
lower_error = s[6]
asymmetric_error = [lower_error, upper_error]
def func(X, a1, a2, a3):
x1, y1 = X
return a1 * x1 + a2 * y1 + a3
popt, pcov = curve_fit(func,(x,y),z)
new_x=func((x,y),popt[0],popt[1],0)
new_y=z
new_z = np.polyfit(new_x,new_y,1)
p = np.poly1d(new_z)
plt.plot(func((x, y), popt[0], popt[1], 0), z, '.k')
pl.plot(new_x, p(new_x), "r-")
plt.errorbar(new_x, z ,yerr=asymmetric_error, ecolor='b', capsize=3, marker ='o', fmt='none')
print popt
plt.show()
Agora não consigo descobrir os erros dessa equação que éy = a1 * x + a2 * z + a3
. Encontrei os melhores valores dea1
, a2
, a3
. No entanto, não os erros.
Como posso encontrar os "erros" dea1
, a2
, a3
?