美文网首页
R语言机器学习与临床预测模型84--趋势分析

R语言机器学习与临床预测模型84--趋势分析

作者: 科研私家菜 | 来源:发表于2022-09-11 21:07 被阅读0次

    R小盐准备介绍R语言机器学习与预测模型的学习笔记

    你想要的R语言学习资料都在这里, 快来收藏关注【科研私家菜】


    01 什么是趋势分析

    对于同时存在趋势、周期、波动成分的时间序列曲线,直接分析其趋势特性显然是不合适的。
    在R语言中,通过使用TTR包中的SMA和EMA函数,来对时序数据进行平滑处理,从而提取时序数据的趋势成分。

    Moving Averages
    Description
    Calculate various moving averages (MA) of a series.
    
    Usage
    SMA(x, n = 10, ...)
    
    EMA(x, n = 10, wilder = FALSE, ratio = NULL, ...)
    
    DEMA(x, n = 10, v = 1, wilder = FALSE, ratio = NULL)
    
    WMA(x, n = 10, wts = 1:n, ...)
    
    EVWMA(price, volume, n = 10, ...)
    
    ZLEMA(x, n = 10, ratio = NULL, ...)
    
    VWAP(price, volume, n = 10, ...)
    
    VMA(x, w, ratio = 1, ...)
    
    HMA(x, n = 20, ...)
    
    ALMA(x, n = 9, offset = 0.85, sigma = 6, ...)
    
    • SMA计算过去n个观测值的算术平均值。
    • EMA计算指数加权平均值,给予近期观测更多权重。参见下面的警告部分。
    • WMA类似于EMA,但如果wts的长度等于n,则采用线性加权。如果wts的长度等于x的长度,则WMA将使用wts的值作为权重。
    • DEMA的计算方法为:DEMA = (1 + v) * EMA(x,n) - EMA(EMA(x,n),n) * v(带有相应的wilder和ratio参数)。
    • EVWMA使用体积来定义MA的周期。
    • ZLEMA类似于EMA,因为它给予最近的观测更多的权重,但试图通过减去(n-1)/2周期(默认)之前的数据来消除滞后,以最小化累积效应。
    • VWMA和VWAP计算成交量加权移动平均价格。
    • VMA根据w的绝对值计算变长移动平均值。w值越高(越低),VMA反应越快(越慢)。
    • HMA是另两个WMA的差值,使其反应非常灵敏。
    • ALMA受高斯滤波器启发,倾向于减少对最近观察的权重,减少过度的倾向。


    除了SMA函数,EMA函数也通常用来做平滑,它与SMA函数的区别在于,SMA函数是使用
    最近n个观测值的算术平均值来平滑,而EMA函数使用的是指数加权平均,离当前位置越近,权重越大。



    02 R语言实现

    library(TTR)
    plot(AirPassengers)
    ap.sma=SMA(AirPassengers,n=10)
    lines(ts(ap.sma,start=1949,end=1961,frequency = 12),col='red',lwd=2)
    
    ap.ema=EMA(AirPassengers,n=10,ratio=0.15)
    lines(ts(ap.ema,start=1949,end=1961,frequency = 12),col='blue',lwd=2,lty=2)
    

    效果如下:

    如图所示,红色线就是经过平滑处理的曲线,与原始曲线相比,没有那么明显的周期性和 波动性了,趋势性表现得更强。 如图所示,蓝色线即为通过指数平滑得到的曲线,可以根据实际业务需要或根据数据的波动性来确定合适的ratio,使得平滑效果更好。

    关注R小盐,关注科研私家菜,有问题请联系R小盐。让我们一起来学习 R语言机器学习与临床预测模型

    相关文章

      网友评论

          本文标题:R语言机器学习与临床预测模型84--趋势分析

          本文链接:https://www.haomeiwen.com/subject/hltqwrtx.html