直线方程拟合

a基本原理:

  1. 设一条直线为y=kx+b,使用最小二乘法(least square method)来拟合出最优的k(斜率)。
  2. 设定一个阈值k0(k0>0),若|k|>k0则认为趋势有明显变化。当k>k0时,则认为 有上升的趋势;当k<-k0时,则认为有下降的趋势。
  3. |k|<=k0时可以视情况考虑是否要进行趋势稳定性检测。

b拟合函数原理:

假设需要拟合的函数为y=kx+b

那么最小二乘法的本质是要使每一个点到y=kx+b的垂直距离平方和最小,从而算出k和b

具体实现步骤:

c方法优缺点:

优点:

该方法比较简单,易于理解解释。

缺点:

  1. 要求的趋势需要是线性的。
  2. 数据波动不能太大。

d算法入口:


e实例参考:

import numpy as np
from matplotlib import pyplot as plt# 生成100个时序坐标点(x,sinx)
x = np.linspace(0, 5 / 9 * np.pi, 100)
y = np.sin(x)
y +=np.random.randn(100) * 0.05  # 加上噪声def trendline(x, y, K):model = np.polyfit(x, y, deg=1)  # 拟合函数,输出参数print('斜率为', model[-2])if model[-2] > K:print('趋势上升')elif model[-2] < -K:print('趋势下降')else:print('趋势不明显')return np.poly1d(model)# 作图,其中y1为原始数据,y2为拟合出来的数据
def PLT(x, y1, y2):plt.scatter(x, y1, color='blue')plt.plot(x, y2, color='red')plt.show()if __name__ == '__main__':PLT(x, y, trendline(x, y, K=0.3)(x))  # 这里的K值自定

最后生成的结果如下

f参考文献:

知乎 线性回归之最小二乘法 https://zhuanlan.zhihu.com/p/90073632

知乎 时序数据常用趋势检测方法https://zhuanlan.zhihu.com/p/112703276

最小二乘法原理及在拟合函数实际应用https://www.cnblogs.com/mrtop/p/10242545.html

时间序列数据趋势分析 Cox-Stuart、Mann-Kendall、Dickey-Fuller

https://blog.csdn.net/qq_34356768/article/details/106559399

趋势检验方法(一)直线方程拟合相关推荐

  1. python数据趋势算法_Python数据拟合与广义线性回归算法学习

    机器学习中的预测问题通常分为2类:回归与分类. 简单的说回归就是预测数值,而分类是给数据打上标签归类. 本文讲述如何用Python进行基本的数据拟合,以及如何对拟合结果的误差进行分析. 本例中使用一个 ...

  2. 三维空间点的直线方程拟合(最小二乘法)

    本文要解决如下问题:给定一些三维空间点,要求用直线拟合这些点,求出直线方程. 一.直线方程的三种表示方法: 参考:空间直线的点向式方程 - 百度文库 (baidu.com) 空间直线方程 - 百度文库 ...

  3. matlab中多项式拟合如何给出r方,matlap拟合函数后r^2怎么求

    matlab拟合函数 求助 尝试用二次多项式拟合: clearall; x=2:2:20; y=[0.31.232.416.267.958.529.049.179.299.37]; scatter(x ...

  4. matlab中离开网格的流量,数学建模【数据处理方法(一维、二维插值方法;数据拟合方法;插值and拟合的MATLAB实现)】...

    [学习网址:MOOC---郑州轻工业大学---数学建模与实验]数学建模专栏 笔记01[第1.2章][概述.软件介绍] 笔记02[第3章][数据处理方法] 笔记03[第4章][规划模型] 笔记04[第5 ...

  5. matlab最小二乘法拟合参数,matlab最小二乘法拟合

    matlab最小二乘法拟合 数学建模与数学实验 拟 合 1 实验目的 实验内容 2. 掌握用数学软件求解拟合问题. 1. 直观了解拟合基本内容. 1. 拟合问题引例及基本原理. 4. 实验作业. 2. ...

  6. 辛普森悖论如何影响AB测试

    Simpson's paradox occurs when we observe a certain trend in the aggregate data but not in the underl ...

  7. spss入门——简单的数据预处理到时间序列分析系列(四)

    简单的数据预处理到时间序列分析 spss数据预处理到时间序列分析 (四)曲线拟合 在数据插补之前一定要找找数据的变化趋势,通常数据拟合就是一个较好的方案. 散点进行曲线拟合的方法 根据前面所画散点图, ...

  8. 机器学习 之 线性回归 选择题总结

    线性回归 1.多元线性回归中的"线性"是指什么是线性的 A.因变量 B.系数 C.因变量 D.误差 答案:A 2.欠拟合的产生原因有 A学习到数据的特征过少 B学习到数据的特征过多 ...

  9. python利用pymannkendall包进行MK(Mann-Kendall)趋势检验

    MK(Mann-Kendall)趋势检验 气象学中常用的Mann-Kendall趋势检验,是一种非参数统计检验方法.该方法可用于分析中心趋势不稳定的时间序列,基于数据的秩,而不是数据本身.Mann-K ...

最新文章

  1. MetagenoNets:在线宏基因组网络分析实操教程
  2. 【iOS报错】“this class is not key value coding-compliant for the key userPhoneNum”给字典设置键值对的时候报错...
  3. Java:抽象方法和抽象类,抽象类应用模板方法模式,接口及使用
  4. Python入门100题 | 第016题
  5. 曼哈顿距离最小生成树
  6. Maven依赖的是本地工程还是仓库jar包?
  7. 使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 默认配置与事件基础
  8. qprocess 最小化启动外部程序_安川机器人预约启动功能
  9. 商汤OCR文本检测+识别开源(FOTS),TF实现NBA记分牌识别
  10. Exception:must implement OnFragmentInteractionListener
  11. 基于 GMDSS 的电子海图定位仿真研究
  12. 西门子Smart 200 PLC 封装运动控制向导生成指令(脉冲)
  13. Xib中设置view的BorderColor 及 ShadowColor
  14. 谷歌浏览器登录不了账号_腾讯qq无故冻结账号什么情况?qq号为什么登录不了方法官方回应_海峡网...
  15. 网络安全绝地求生-面试题
  16. BP神经网络原理及Python实现
  17. 一位全加器 VHDL设计与实现
  18. FLStudio 四分音符八分音符 四四拍四二拍
  19. vlookup匹配的文字显示0_怪不得你学不好VLOOKUP函数,这6种错误用法你规避了吗?...
  20. Spark 场景题详解

热门文章

  1. Python个人学习小结
  2. SAP小磁带备份注意事项
  3. docker单主机网络类型
  4. Vue:自定义组件引入单页面+动态绑定图片
  5. open wrt 跟换主题_分享个openwrt主题 可以简单自定义的 主题
  6. 计算机丢失GetU,u盘启动引导文件丢失如何修复
  7. 【49.Auth2.0认证与授权过程-微博开放平台认证授权过程-百度开放平台认证授权过程-社交登录实现(微博授权)-分布式Session问题与解决方案-SpringSession整合-Redis】
  8. java超级计算器,jdk自带类
  9. 2019年3月菜鸟实习生电话面试题
  10. Python爬虫-网贷之家P2P机构排名查询