MATLAB数据预处理:提取趋势数据的波动信息‌

关注微信公众号:数学建模BOOM,后台回复“detrend”,获取本文演示的MATLAB代码文件。

cut-off

函数  从数据中减去均值或最佳拟合线(以最小二乘方式)。如果您的数据包含多个数据列, 会分别处理每个数据列。

通过从数据中去除线性趋势,能够将分析集中在趋势数据的波动上。线性趋势通常表示数据的系统性增加或减少。

此示例说明如何从股票每日收盘价中去除线性趋势,以重点观察整体涨幅的价格波动。如果数据确实有趋势,则去除线性趋势会强制其均值为零并减少总体变化。

该示例使用从  函数获取的分布来模拟股价波动。

创建一个模拟数据集并计算其均值。 表示股票的每日价格变动。

%rng(20)
t = 0:300;
dailyFluct = randn(size(t));
sdata = cumsum(dailyFluct) + 20 + t/100;

求出数据的平均值。

mean(sdata)

绘制和标记数据。可以看到,数据显示股价呈系统性增长。

figure
plot(t,sdata);
legend('Original Data','Location','northwest');
xlabel('Time (days)');
ylabel('Stock Price (dollars)');

应用 ,它对  执行线性拟合,然后对其进行去除线性趋势处理。从输入中减去输出,得出计算所得的趋势线。

detrend_sdata = detrend(sdata);
trend = sdata - detrend_sdata;

求出去除线性趋势后的数据的平均值。

mean(detrend_sdata)

去除线性趋势后,数据均值非常接近 0,与预期相符。

将趋势线、去除线性趋势后的数据及其均值添加到图中,以显示结果。

hold on
plot(t,trend,':r')
plot(t,detrend_sdata,'m')
plot(t,zeros(size(t)),':k')
legend('Original Data','Trend','Detrended Data',...
       'Mean of Detrended Data','Location','northwest')
xlabel('Time (days)');
ylabel('Stock Price (dollars)');

本文转自mathwork帮助中心

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空