L'analyse de régression a été mentionnée plus tôt dans The topic of linear regression.
Maintenant, écrivons le code et effectuons une analyse de régression. np.polyfit et np.polyval /reference/generated/numpy.polyval.html#numpy.polyval) peut être utilisé pour effectuer une analyse de régression de deux variables avec une équation d'ordre n.
Pour plus de détails, il est préférable de se référer au document à partir du lien ci-dessus, mais c'est comme suit.
import numpy as np
import matplotlib.pyplot as plt
x = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0])
y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0])
z = np.polyfit(x, y, 3)
p = np.poly1d(z)
p30 = np.poly1d(np.polyfit(x, y, 30))
xp = np.linspace(-2, 6, 100)
plt.plot(x, y, '.', xp, p(xp), '-', xp, p30(xp), '*')
plt.ylim(-2,2)
plt.show()
plt.savefig('image.png')
En ce moment Pour les équations linéaires, p [0]: inclinaison et p [1]: section. Pour l'équation d'ordre N, p [0] * t ** (N-1) + p [1] * t ** (N-2) + ... + p [N-2] * t + p [N-1] ] est.
En ce qui concerne la méthode des moindres carrés dont j'ai déjà parlé, les chaînes de données {(x_1, y_1), (x_2, y_2), ... (x_n ,, Déterminez le modèle qui minimise la somme des carrés des résidus pour y_n)}. A ce moment, on suppose que la dispersion de la distribution d'erreur des valeurs observées est constante.
L'analyse de régression avec m modèles avec des variables indépendantes est [Analyse de régression multiple](http://en.wikipedia.org/wiki/%E9%87%8D%E5%9B%9E%E5%B8%B0%E5% 88% 86% E6% 9E% 90).
z = ax + by + c
Je veux trouver la formule.
x = [9.83, -9.97, -3.91, -3.94, -13.67, -14.04, 4.81, 7.65, 5.50, -3.34]
y = [-5.50, -13.53, -1.23, 6.07, 1.94, 2.79, -5.43, 15.57, 7.26, 1.34]
z = [635.99, 163.78, 86.94, 245.35, 1132.88, 1239.55, 214.01, 67.94, -1.48, 104.18]
import numpy as np
from scipy import linalg as LA
N = len(x)
G = np.array([x, y, np.ones(N)]).T
result = LA.solve(G.T.dot(G), G.T.dot(z))
print(result)
Cette [ -30.02043308 3.55275314 322.33397214] Peut être obtenu
z = -30.0x + 3.55y + 322
Est obtenu, et c'est la solution.
Matériel du groupe d'étude des mathématiques 2013 pour les programmeurs http://nineties.github.io/math-seminar/
Recommended Posts