请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4581|回复: 4

[程序设计] 使用Matlab对数据进行去趋势(detrend)

[复制链接]

新浪微博达人勋

发表于 2021-11-25 15:10:10 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
使用Matlab对数据进行去趋势(detrend)
介绍
去趋势(detrend)处理可以消除传感器在获取数据时产生的偏移对后期计算产生的影响。从数据中删除趋势可以将分析集中在数据趋势本身的波动上。但是,去趋势的意义取决于自己的研究的目的。


方法
数据去趋势,就是对数据减去一条最优(最小二乘)的拟合直线、平面或曲面,使去趋势后的数据均值为零。


例子
例子,采用Matlab自带例子示范去趋势过程。


示例显示如何从每日收盘股价中消除线性趋势,以强调整体增长的价格波动。 如果数据确实有趋势,则将其趋势强制为零并减小总体变化。 该示例使用从库函数采用的分布模拟股票价格波动。


clc
clear all
close all


%创建一个模拟数据集并计算其平均值。 sdata表示股票的每日价格变化。
t = 0:300;
dailyFluct = gallery('normaldata',size(t),2);
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)


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)');



————————————————
版权声明:本文为CSDN博主「大作家佚名」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wokaowokao ... le/details/60138308
————————————————
版权声明:本文为CSDN博主「大作家佚名」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wokaowokao ... le/details/60138308

detrend.png

detredn.m

750 Bytes, 下载次数: 6, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-11-25 18:27:44 | 显示全部楼层
plot(t,zeros(size(t)),':k')
legend('Mean of Detrended Data')
?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-11-26 08:33:28 | 显示全部楼层
偶尔平凡Aspire 发表于 2021-11-25 18:27
plot(t,zeros(size(t)),':k')
legend('Mean of Detrended Data')
?

legend有自动对齐功能,按照第一个plot到最后一个,自动分配legend的内容。你可以自己分配句柄,例如:len_1=plot(1);len_2=plot(2);then;
legend([len_1,len_2],'legend1','legend2');
不知道有没有回答您的问题
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-11-30 19:19:31 | 显示全部楼层
miaobo 发表于 2021-11-26 08:33
legend有自动对齐功能,按照第一个plot到最后一个,自动分配legend的内容。你可以自己分配句柄,例如:le ...

我的意思是,你所画的Mean of Detrended Data,只是一条零线,并不是根据去趋势后的数据算出来的。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-12-1 19:21:06 | 显示全部楼层
偶尔平凡Aspire 发表于 2021-11-30 19:19
我的意思是,你所画的Mean of Detrended Data,只是一条零线,并不是根据去趋势后的数据算出来的。

是的呢,我认为算出来也是0,你觉得呢,所有的数字都减去了mean of data;
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表