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

2022-09-11  本文已影响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函数,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语言机器学习与临床预测模型

上一篇 下一篇

猜你喜欢

热点阅读