Page 156 - 6734
P. 156

ya=f(xa, *popt) # масив значень f з параметрами
           a=popt[0], b=popt[1]
           plt.plot(x, y, 'ko--') # нарисувати емпіричну
           залежність
           plt.plot(xa, ya, 'k-') # нарисувати апроксимовану
           залежність
           plt.xlabel('x'); plt.ylabel('y'); plt.show()
           print "Рисунок - Лінійна регресія"

           # або за допомогою scipy.optimize.leastsq:
           def residuals_(p,x,y): # p - кортеж параметрів
               return y - f(x, p[0], p[1]) # повертає відхилення
           ans=leastsq(func=residuals_,x0=(1,1),args=(x,y),full_
           output=True) # мінімізує суму квадратів
           print ans[0] # знайдені значення параметрів `a` і `b`

           # або за допомогою scipy.stats.linregress (тільки
           лінійна регресія):
           from scipy.stats import linregress
           slope, intercept, r_value, p_value,
           std_err=linregress(x, y)
           print slope, intercept # знайдені значення параметрів
           лінійної залежності
           print "R^2:", r_value**2 # коефіцієнт детермінації
           (R-квадрат)

           [ 1.05  0.8 ]
           [[ 0.0175  -0.02625]
            [-0.02625  0.06125]]
           [ 0.13228757  0.24748738]
           RMSE 0.295803989155
           R^2: 0.969230769231
           R^2: 0.969230769231




                                         155
   151   152   153   154   155   156   157   158   159   160   161