美文网首页
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