精华内容
下载资源
问答
  • 2021-02-20 17:24:51

    斜率法

    '''
    1.做最小二乘拟合,把序列拟合成一条直线;
    2.根据直线的斜率k可以得知序列的主要走势:
    例如:(1)k > 0.1763 上升  (2) k < -0.1763 下降 (3)其他
    3.然后计算序列各点到直线的距离(和方差一样)
    设定一个阈值L,统计超过L的点数目,点数目越多说明序列震荡越厉害
    '''
    import numpy as np
    import math
    def trendline(data):  # 拟合曲线
      order=1
      index=[i for i in range(1,len(data)+1)] # x轴坐标
      coeffs = np.polyfit(index, list(data), order) # 曲线拟合
      # k = coeffs[0] # 斜率
      return coeffs
    
    def judge_slope(coeffs, data, degree, shake=1):
      tan_k = math.tan(degree*math.pi/180)	# 注意弧度转化
      # print(coeffs[0])
      # print(tan_k)
      if coeffs[0] >= tan_k:
        return "上升"
      elif coeffs[0] <= -tan_k:
        return "下降"
      else:
        return get_shake(coeffs, data, shake)
    
    def get_shake(coeffs, data, shake):
      count = 0
      for i, d in enumerate(data): # i+1相当于横坐标,从1开始
        y = np.polyval(coeffs, i+1)
        count += (y-d)**2
      # print("count: ",count)
      if count > shake:
        return "波动"
      else:
        return "平稳"
    
    if __name__ == '__main__':
      data = [10,15,29,30,56,45,41,19,37,48,46]
      coeffs = trendline(data)
    
      res = judge_slope(coeffs, data, degree=1, shake=1)
      print(res)
    
    

    cox_stuart趋势检验

    '''
    判断一组数据的趋势是上升还是下降
    '''
    import scipy.stats as stats
    def cox_stuart(list_c,debug=False):
    	lst=list_c.copy()
    	raw_len=len(lst)
    	if raw_len%2==1:
    		del lst[int((raw_len-1)/2)]    # 删除中位数
    	c=int(len(lst)/2)
    	n_pos=n_neg=0
    	for i in range(c):
    		diff=lst[i+c]-lst[i]
    		if diff>0:
    			n_pos+=1
    		elif diff<0:
    			n_neg+=1
    		else:
    			continue
    	num=n_pos+n_neg
    	k=min(n_pos,n_neg)           #  双边检验
    	print("k: ",k)
    	print("num:",num)
    	p_value=2*stats.binom.cdf(k,num,0.5)  #  二项分布
    	if debug:
    		print('fall:%i, rise:%i, p-value:%f'%(n_neg, n_pos, p_value))
    	if n_pos>n_neg and p_value<0.05:   #  双边检验
    		return 'increasing'
    	elif n_neg>n_pos and p_value<0.05:  #  双边检验
    		return 'decreasing'
    	else:
    		return 'no trend'
    
    list_c = [10,15,29,30,56,45,41,19,37,48,46]	# 数据量太小,得不到有效结果
    res = cos_staut(list_c, True)
    print(res)
    

    参考链接
    https://wenku.baidu.com/view/cec731b981c758f5f61f6760.html
    https://zhuanlan.zhihu.com/p/112703276
    https://bbs.csdn.net/topics/350253275
    https://blog.csdn.net/speargod/article/details/79939798

    更多相关内容
  • 数据分析统计学基础之数据趋势

    千次阅读 2019-05-15 18:01:25
    数据的集中趋势就是一组数据向数据的中心值靠拢的程度。   集中趋势是统计学中的重要统计分析指标,常用的有平均数,中位数和众数等。 1.1平均数   平均数为集中趋势的最常用测度值,目的是确定一组数据的均衡点...

    数据的趋势

    一.数据的集中趋势

      集中趋势又称“数据的中心位置”、“集中量数”等。它是一组数据的代表值.数据的集中趋势就是一组数据向数据的中心值靠拢的程度。

      集中趋势是统计学中的重要统计分析指标,常用的有平均数中位数众数等。

    1.1平均数

      平均数为集中趋势的最常用测度值,目的是确定一组数据的均衡点。用平均数表示一组数据的情况,有直观、简明的特点,所以在日常生活中经常用到,如平均的速度、平均的身高、平均的产量、平均的成绩等。

      不是所有类型的资料都能使用平均数。平均数适合用于数值型数据,不能用于分类数据和顺序数据。

    1.1.1 算术平均数

    一组样本的和除以该样本的数量,记作
    x ˉ = x 1 + x 2 + ⋯ + x n n {\bar {x}}={\frac {x_{1}+x_{2}+\cdots +x_{n}}{n}} xˉ=nx1+x2++xn
      在实际工作中,很少使用算术平均数,因为并不准确,特别是有异常值存在的时候,受极值的影响较大.

    1.1.2 加权算术平均数

    是具有不同权重的数据的算术平均数,记作
    x ˉ = x 1 f 1 + x 2 f 2 + ⋅ ⋅ ⋅ + x n f n f 1 + f 2 + ⋅ ⋅ ⋅ + f n = ∑ x f ∑ f \bar{x}=\frac{x_1f_1+x_2f_2+···+x_nf_n}{f_1+f_2+···+f_n}=\frac{\sum xf}{\sum f} xˉ=f1+f2++fnx1f1+x2f2++xnfn=fxf
    式中f代表各做变量值出现的频数。
    例如,在一次分析城市出行路线的项目中,可以根据小区的户数或人数来赋予相对应的权重,根据权重可以在生成图时给于不同的颜色以区分哪条路出行人数较多。

    1.1.3 几何平均数

    n个数据相乘后开 n 次方。记作:
    ( ∏ i = 1 n x i ) 1 n = x 1 x 2 ⋯ x n n {\displaystyle \left(\prod _{i=1}^{n}x_{i}\right)^{\frac {1}{n}}={\sqrt[{n}]{x_{1}x_{2}\cdots x_{n}}}} (i=1nxi)n1=nx1x2xn
      几何平均数多用于计算平均比率和平均速度。如:平均利率、平均发展速度、平均合格率等。使用场合较少。

    1.2 众数

      众数是在一组数据样本中,出现次数最多的数。一组数据可以有多个众数,也可以没有众数。它主要用于定类(品质标志)数据的集中趋势

    特点:①不受极值影响 ;②只有在数据量大的时候才有意义

    1.3 分位数

      定义:分位数(Quantile),亦称分位点,是指将一个随机变量的概率分布范围分为几个等份的数值点,常用的有中位数(即二分位数)、四分位数、百分位数等。在箱型图中使用较多。
    在这里插入图片描述

    分位数意义:
      表示了在这个样本集中从小至大排列之后小于某值的样本子集占总样本集的比例,可以利用概率分布来为我们确定当数据有序分布后处于某个特殊位置的数值,再利用其为我们达到选择,筛选,修正等目标。(来自知乎回答:OrionTheStar)。

      人们经常会将数据划分为4个部分,每一个部分大约包含有1/4即25%的数据项。这种划分的临界点即为四分位数。它们定义如下:

    • Q1=第1四分位数,即第25百分位数;
    • Q2=第2四分位数,即第50百分位数;
    • Q3=第3四分位数,即第75百分位数。

    四分位数的计算:
    首先确定四分位数的位置:

    Q1的位置= (n+1) × 0.25
    Q2的位置= (n+1) × 0.5
    Q3的位置= (n+1) × 0.75
    n表示项数

    实例1
    数据总量: 6, 47, 49, 15, 42, 41, 7, 39, 43, 40, 36
    由小到大排列的结果: 6, 7, 15, 36, 39, 40, 41, 42, 43, 47, 49
    一共11项
    Q1 的位置=(11+1) × 0.25=3, Q2 的位置=(11+1)× 0.5=6, Q3的位置=(11+1) × 0.75=9
    则 Q1 = 15,Q2 = 40,Q3 = 43

    二、数据的离中趋势

    2.1 极差

    指一组数据中最大值与最小值之差。
    d = m a x − m i n d=max-min d=maxmin
      在实际中,极差常用来检查产品质量。在正常生产条件下,极差在一定范围内波动,若极差超过给定的范围,就说明有异常情况出现。

    2.2 四分位距

      四分位距是上四分位数与下四分位数之差。四分位距通常是用来构建箱形图,以及对概率分布的简要图表概述。
    公式:
    I Q R = Q 3 − Q 1 IQR = Q3 − Q1 IQR=Q3Q1
    意义:反应数据中间部分各变量值的最大值和最小值的差距。

    2.3 平均差

      平均差是总体各单位标志对其算术平均数的离差绝对值的算术平均数。它综合反映了总体各单位标志值的变动程度。平均差越大,则表示标志变动度越大,反之则表示标志变动度越小。

      平均差是反应各标志值与算术平均数之间的平均差异

    M D = ∑ ∣ x − x ˉ ∣ N MD=\frac{\sum|x-\bar{x}|}{N} MD=Nxxˉ

    2.4 方差

      方差是和中心偏离的程度,用来刻画数据的波动性和稳定性(即这批数据偏离平均数的大小)并把它叫做这组数据的方差,记作S².

    方差的計算公式为:

    s 2 = ∑ i = 1 N ( X i − X ˉ ) 2 N s^2=\frac{\sum_{i=1}^N(X_i-\bar{X})^2}{N} s2=Ni=1N(XiXˉ)2

      当数据分布比较分散(即数据在平均数附近波动较大)时,各个数据与平均数的差的平方和较大,方差就较大;当数据分布比较集中时,各个数据与平均数的差的平方和较小。因此方差越大,数据的波动越大;方差越小,数据的波动就越小。

    2.5 标准差

      标准差(Standard Deviation) ,中文环境中又常称均方差,是离均差平方的算术平均数的平方根,用σ表示。标准差是方差的算术平方根。标准差表示的就是样本数据的离散程度。平均数相同的两组数据,标准差未必相同。

      意义:由于方差是数据的平方,与检测值本身相差太大,人们难以直观的衡量,所以常用方差开根号换算回来这就是我们要说的标准差。

      方差是实际值与期望值之差平方的平均值,而标准差是方差的算术平方根。

    2.6 离散系数

      离散系数又称变异系数,是统计学当中的常用统计指标。离散系数是测度数据离散程度的相对统计量,主要是用于比较不同样本数据的离散程度。离散系数大,说明数据的离散程度也大;离散系数小,说明数据的离散程度也小。
    公式:

    V = S x ˉ × 100 V=\frac{S}{\bar{x}}\times 100% V=xˉS×100
      当进行多组数据进行比较时,如果度量单位与平均数相同,就可以直接利用标准差比较;但是单位或平均数不同是,而要采用标准差与平均数的比值,即离散系数来比较。
    意义:①.去量纲,消除单位的影响
       ②可以比较多组数据的波动程度,比如第一天抓取的数据和第二天抓取的数据做比较
       ③数值越小代表相对来说越稳定

    展开全文
  • 使用Matlab计算趋势

    千次阅读 2021-03-09 09:49:00
    1.数据格式:n行数据保存在txt里面 2.命令行窗口输入:a=load(‘E/filepath/filename’) 3.取第列做计算:b=a(:,n) 4.命令行输入:cftool 5.结果: 其中p1为趋势,若需要±则由括号内两数相减得到。

    1.数据格式:n行数据保存在txt里面
    2.命令行窗口输入:a=load(‘E/filepath/filename’)
    3.取第列做计算:b=a(:,n)
    4.命令行输入:cftool
    Matlab的cftool
    5.结果:在这里插入图片描述
    其中p1为趋势,若需要±则由括号内两数相减得到。

    致谢:
    金师兄Matlab指导

    展开全文
  • 数据的描述性统计欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入段漂亮的代码片生成个适合你的列表创建个表格设定内容居中、居左、居右...


    数据分析的对象主要是结构化数据,这些数据可能是连续性数据,也可能是离散型数据;可能是定类和定序数据,也可能是定距和定比数据。虽然数据的类型有很多,但是所有的结构化数据都可以从三个维度进行描述,它们分别是数据的集中趋势描述、数据的离散程度描述和数据的分布形态描述。

    1. 数据的集中趋势描述

    数据的集中趋势描述是寻找反映事物特征的数据集合的代表值或中心值,这个代表值或中心值可以很好地反映事物目前所处的位置和发展水平,通过对事物集中趋势指标的多次测量和比较,还能说明事物的发展和变化趋势。人均GDP就是一个集中趋势。

    1.1 算术平均值

    算术平均值是最常用的数据集中趋势指标,可以分为简单算术平均值和加权算术平均值。算术平均值主要用于定距数据,表示数据集合的集中趋势。

    1.1.1 简单算术平均值

    def:假设有一组包含 n n n个数值的数据集合,它们的数值分别为 x 1 x_1 x1 x 2 x_2 x2 . . . ... ... x n x_n xn,该数据集合的简单算术平均值的计算公式为:
    x ‾ = x 1 + x 2 + . . . + x n n \overline{x}=\frac{x_1+x_2+...+x_n}{n} x=nx1+x2+...+xn

    1.1.2 加权算术平均值

    def: 假设有一个数据集合,总共包括 k k k个不同类别的数据组,各组的简单算术平均值表示为 x 1 ‾ , x 2 ‾ , . . . , x k ‾ \overline{x_1},\overline{x_2},...,\overline{x_k} x1,x2,...,xk,每个数据组的数值个数分别为 f 1 , f 2 , . . . , f k f_1,f_2,...,f_k f1,f2,...,fk,每组的数值个数就是每个数据组的权重,则加权算术平均值的计算公式为:
    m = f 1 x 1 ‾ + f 2 x 2 ‾ + . . . + f k x k ‾ f 1 + f 2 + . . . + f k m=\frac{f_1\overline{x_1}+f_2\overline{x_2}+...+f_k\overline{x_k}}{f_1+f_2+...+f_k} m=f1+f2+...+fkf1x1+f2x2+...+fkxk

    1.1.3 算术平均值的利与弊

    :受样本数据波动的影响最小,具有一定的稳定性;
    :当数据集合中有极大值或极小值存在时,会对算术平均值产生很大的影响,其计算结果会掩盖数据集合的真实特征,失去了代表性;

    1.2 几何平均值

    def:假设有一个定比数据集合,集合中的数值分别为 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn,且所有的数值均大于0,那么改数据集合的几何平均值的计算公式为:
    x j ‾ = x 1 x 2 . . . x n n \overline{x_j}=\sqrt[n]{x_1x_2...x_n} xj=nx1x2...xn
    适用于:数据之间是乘除关系的,如银行的平均存款年利率、汽车工厂每条生产线的平均产品合格率、国家十年来的平均发展速度等;几何平均值被用于各种定比数据的平均值计算。

    1.3 众数

    def:数据集合中出现次数最多的数值被称为众数。
    如果在一个数据集合中,只有一个数值出现的次数最多,那么这个数值就是该数据集合的众数;如果有两个或多个数值的出现次数并列最多,那么这两个或多个数值都是该数据集合的众数;如果数据集合中所有数据值出现的次数相同,那么该数据集合没有众数。
    适用于:对定类数据、定序数据、定距数据和定比数据都适用,都能表示由它们组成的数据集合的数据集中趋势。

    1.4 中位数

    def:对于数据集合 ( x 1 , x 2 , . . . , x n ) (x_1,x_2,...,x_n) (x1,x2,...,xn),将所有的数值按照它们的大小,从高到低或从低到高进行排序,如果数据集合包含的数值个数是基数,那么排在最中间的数值就是该数据集合的中位数;如果数据集合的数值个数是偶数,那么取最中间两个数值的算术平均值作为中位数。
    好处:不受数据集合中个别极端值的影响,表现出稳定的特点。

    展开全文
  • 需求如下 1、数据库中有一张表名为alarm_data的表,有time(时间),address...2、我需要根据地址、日期,来查询当天时间内位移变化趋势 3、要求折线图的形式展现  折线图横坐标是时间0,1,2,3,4,5,6,7,8,9,10.........
  • 目前有某个产品每天的销量数据,想通过这些数据看这个产品的销量趋势 2. 原理3. 代码import numpy from scipy.optimize import leastsq import pylab def zuixiaoerchen(arrayY, picTitle): print(f"arrayY: {...
  • 数据分析项目“探索未来气候发展趋势、概览 概览 在这个项目中,我们将分析本地和全球的气温数据,并比较你居住地的气温走向与全球气温走向。作者位于云南昆明。 使用的工具 整个项目使用的工具包括SQL...
  • 数据的集中趋势描述是寻找反应事物特征的数据集合的代表值或中心值,这个代表值或中心值可以很好反映事物目前所处的位置和发展水平,通过对事物集中趋势指标的多次测量和比较,还能够说明事物的发展和变化趋势数据...
  • 浅述未来计算机的发展趋势论文篇《计算机技术的发展及未来趋势探讨》【摘 要】随着信息化技术时代的到来,计算机技术在社会各领域建设事业中的应用也越来越为广泛,在提升社会各领域生产力及生产效率的同时,也给...
  • 时序数据常用趋势检测方法

    千次阅读 2021-01-28 17:33:40
    方法 斜率法原理斜率法的原理就是使用最小二乘等方法对时序数据进行拟合,然后根据拟合成的直线的斜率k判断序列的数据走势,当k>0时,则代表趋势上升;当k<0时,则代表趋势下降。代码import numpy as npdef ...
  • 数据科学研究的现状与趋势全解

    千次阅读 2019-11-27 17:29:10
    大数据时代的到来催生了一门新的学科——数据科学。首先,本文探讨了数据科学的内涵、发展简史、学科地位及知识体系等基本问题,并提出了专业数据科学与专业中的数据科学之间的区别与联系;其次,分析现阶段数据科学...
  • 未来5-10年计算机视觉发展趋势

    千次阅读 多人点赞 2020-05-21 09:35:50
    未来5-10年计算机视觉发展趋势 来源:CCF计算机视觉专委会 ...计算机视觉是人工智能的...我们将研讨内容按专题实录整理,尽最大可能以原汁原味的形式还原观点争鸣现场,希望有助于激发头脑风暴,产生系列启...
  • 时序数据趋势检测斜率法Cox-Stuart检验Mann-Kendall检验稳定性检验滚动统计Dickey-Fuller(迪基-福勒检验、单根检验) 时序数据趋势检测 斜率法 原理: ...直接考虑数据变化趋势,若数据有上升趋势,.
  • MATLAB--对一组复数数据画图

    千次阅读 2020-07-26 20:23:47
    Xcoa Xcib 为一组复数 对两组数据画图: figure theta=angle(Xcib); rho=abs(Xcib); polarplot(theta,rho,'o'); hold on figure theta1=angle(Xc0a); rho1=abs(Xc0a); polarplot(theta1,rho1,'k')
  • tableau按年、月、日查看变化趋势

    千次阅读 2020-10-01 16:40:31
    目的:查看利润随时间的变化趋势,想要了解每个月或每年的盈利天数,尤其是在我们想了解季节影响时。 先创建字段:按日期聚合利润的数量。 对每日利润的大小按一定标准进行划分,分为三: 每日盈利状况: ...
  • 【Matlab】 多年NDVI数据的sen趋势分析

    千次阅读 多人点赞 2021-01-17 14:39:24
    最近老师在课上安排了个汇报作业,要求对某地区的多年NDVI数据进行趋势分析,对于小白的我来说,真是!唉!但是功夫不负有心人,在我充分利用百度搜索、谷歌搜索和Bing搜索后,终于让我找到了相关教程和知识。...
  • 有以下业务场景数据,为不同模型下某个线上... 现在需要做个比较不同模型的千人响应率的对比,并展示测试相对于对照的增长率。 企业 对照 测试 环比 A 1.13 1.73 53.10% B 0.25
  • 代谢数据分析的统计学方法综述

    万次阅读 多人点赞 2018-10-01 21:34:14
    代谢学研究产生大量的数据,这些数据具有高维、小样本、高噪声等复杂特征。如何从复杂的代谢数据中提取出有价值的信息,筛选出潜在的生物标志物成为近年来代谢学研究的热点和难点。据此,本文针对目前代谢...
  • 计算与推断思维 数据科学

    万次阅读 2017-11-11 21:30:35
    数据科学 原文:Data Science 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 什么是数据科学数据科学是通过探索,预测和推断,从大量不同的数据集中得出有用的结论。探索涉及识别信息中的规律...
  • GEE:趋势分析(一元线性回归)

    千次阅读 2021-04-15 23:39:09
    执行趋势分析,必须添加个日期时间戳,以便为Y值(雪盖频率)使用适当的X值(时间)。 要添加日期,到目前为止,我们还将涵盖所有其他功能,因为我们需要以正确的方式为linearFit归约器格式化新创建的图像集合。...
  • 数据挖掘——时间序列算法之趋势拟合法
  • 数据结构与算法学习笔记

    万次阅读 多人点赞 2018-09-25 13:55:49
    数据结构指的是“一组数据的存储结构”,算法指的是“操作数据的一组方法”。 数据结构是为算法服务的,算法是要作用再特定的数据结构上的。 最常用的数据结构预算法: 数据结构:数组、链表、栈、队列、散列表、...
  • 现有根据相同时间间隔采集的数据,一行为一组数据,每列为一类数据,需要针对某一类数据分析其变化趋势,比如,分析test_dirroad.txt第三列数据: test_dirroad.txt 实现 新建.m文件,将txt文件放在.m文件同级...
  • Aitchison认识到关于组成成分的每个陈述都可以用成分的比率来表述,并开发出一套基本原理、各种方法、操作和工具来进行成分数据分析。其中,对数比变换方法被地质学、生态学等领域的统计学家和研究人员广泛接受,...
  • 【时序列】时序列数据如何步步分解成趋势(trend)季节性(seasonality)和误差(residual)- 详细理解python sm.tsa.seasonal_decompose 在做时序列分析的时候,好多教程都告诉你要把时序列分解成趋势,季节性,...
  • 3.1 维插值方法 1、数据处理的应用背景 2、插值的基本原理 3、引例 3.1、引例演示 4、维插值定义 5、维插值原理 6、维插值方法 6.1、拉格朗日插值 6.2、分段线性插值 6.3、三次样条插值 3.2 二维插值方法 1...
  • 在很多工业领域中,很多工业...比如有这么一组数据:6.194, 6.199, 6.197, 6.191, 6.204, 6.194,6.194, 6.202, 6.197, 6.194, 6.199, 6.194,6.202, 6.197, 6.197, 6.199, 6.199 使用echarts折线图呈现,默认情况下...
  • 数据分析之数据预处理、分析建模、可视化

    万次阅读 多人点赞 2020-08-08 15:03:21
    数据预处理:数据清洗、数据集成、数据规约、数据变换; 数据分析模型:对比分析、漏斗分析、留存分析、A/B测试、用户行为路径分析、用户分群、用户画像分析等; 数据分析方法:描述统计、假设检验、信度分析、相关...
  • 数据需要个家,而数据湖是创建该家的首选解决方案。该术语由Pentaho的CTO James Dixon发明并首次描述,他在博客中写道:“如果您将数据集市视为瓶装水的存储库,经过清洗,包装和结构化以便于使用,那么数据湖就...
  • 【时间序列】时间序列数据的缺失填补方法总结

    万次阅读 多人点赞 2021-05-21 00:16:01
    在前几次分享中我们知道,很多时序算法都依赖完整的时序数据进行建模,许多业务也需要数据保持完整性,以更好地进行可视化与分析。然而在真实场景中,由于采集能力或网络传输的原因,时序数据常常会有缺...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 83,712
精华内容 33,484
关键字:

如何计算一组数据的变化趋势