讲解线性函数的定义 非线性函数的性质( 三 )


scipy.stats.linregress(x, y=None, alternative=‘two-sided’)
主要参数:
x, y:x, y 是长度相同的一维数组 。或者 x 是二维数组,且 y=none,则二维数组 x 相当于 长度相同的一维数组 x, y 。返回值:
slope:斜率,直线 f ( x ) = p 0p 1 ? x中的 p 1 。intercept:截距,直线 f ( x ) = p 0p 1 ? x中的 p 0。rvalue:r^2 值,统计量 。pvalue:p 值,P检验的统计量 。stderr:标准差,统计量 。2.2 Python 例程:单变量线性拟合 程序说明:

    scipy.optimize.leastsq() 与 scipy.stats.linregress() 都可以进行单变量线性拟合 。leastsq() 既可以用于单变量也可以用于多变量问题;linregress() 只能用于单变量问题,但可以给出很多参数估计的统计结果 。leastsq() 要以子函数来定义观测值与拟合函数值的误差函数,例程中分别定义了拟合函数 fitfunc1(p, x) 与误差函数error1(p, x, y) ,是为了方便调用拟合函数计算拟合曲线在数据点的函数值 。注意 p 为数组。leastsq() 中误差函数的函数名可以任意定义,但误差函数的参数必须按照 (p,x,y) 的顺序排列,不能改变次序 。leastsq() 中观测数据 (x, yObs) 是以动态参数 args 的方式进行传递的 。这种处理方式非常独特,没有为什么,leastsq() 就是这样定义的 。linregress() 只要将观测数据 (x,yObs) 作为参数,默认单变量线性拟合,不需要定义子函数 。leastsq() 与 linregress() 进行线性拟合,得到的参数估计结果是相同的 。
Python 例程:
# mathmodel25_v1.py# Demo25 of mathematical modeling algorithm# Demo of curve fitting with Scipy# Copyright 2021 YouCans, XUPT# Crated:2021-08-03# 1. 单变量线性拟合:最小二乘法 scipy.optimize.leastsqim

猜你喜欢