精华内容
下载资源
问答
  • 周期性时间序列预测

    万次阅读 2018-08-17 18:00:00
    最近在研究时间序列的时候,发现很多序列具有很强的周期性,那如何对此类序列进行预测呢? 1 数据处理 挑选一个如下图的具有周期性时间序列。该序列是取得是过去7天的数据,每小时一个点,一共7*24个点。   2 ...

    女主宣言

    AIOps 从立项到现在已经半年有余,从最开始的 LVS 异常检测,到如今的实时关联分析,智能运维已经渗透到我们日常运维中的许多场景,之后我们会将积累的经验分享出来,供大家学习参考,本文最先发布于 OpsDev,转载已获取作者授权。

    PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦!

    640?wx_fmt=jpeg

    At Tranquility Base, 1969

    by NASA IOTD

    最近在研究时间序列的时候,发现很多序列具有很强的周期性,那如何对此类序列进行预测呢?


    1

    数据处理

    挑选一个如下图的具有周期性的时间序列。该序列是取得是过去7天的数据,每小时一个点,一共7*24个点。

    640?wx_fmt=png  

    2

    划分数据集

    我们取前六天的数据做训练,第七天做测试集。


    3

    平滑处理

    时间序列经常会出现毛刺的点,需要做平滑处理才能分析,类似上图中的数据。消除数据的毛刺,可以用移动平均法,但是移动平均有时候处理完后并不能使数据平滑,我这里采用的方法很简单,但效果还不错:把每个点与上一点的变化值作为一个新的序列,对这里边的异常值,也就是变化比较离谱的值剃掉,用前后数据的均值填充:

    640?wx_fmt=jpeg

    经过处理以后,上图的时间序列得到了平滑处理,效果如下图。

    640?wx_fmt=png  

    4

    周期性分解

    具有周期性特征的序列需要将周期性特征提取出来。python里面的statsmodels工具包里面有针对周期性分解的函数seasonal_decompose,我们可以将序列进行分解。seasonal_decompose这个函数里面有个two_sided的参数,默认是True。Trend处理的时候用到移动平均的方法,熟悉此方法的读者就会发现,经过该方法处理以后,序列收尾两段有一部分数据缺失了,但是如果该参数为FALSE,则只有开始的时候有一段缺失值。

    640?wx_fmt=jpeg
    640?wx_fmt=png

    图3中的第一张图是observed,体现的原始数据;第二张是trend,体现的是分解出来的趋势部分;第三张是seasonal,体现的是周期部分;最后是residual,体现的是残差部分。


    本文采用的是seasonal_decompose的加法模型进行的分解,即 observed = trend + seasonal + residual,另还有乘法模型。在建模的时候,只针对trend部分学习和预测,如何将trend的预测结果加工成合理的最终结果?后面会有介绍。


    5

    预测

    我们对trend部分进行预测,最后再加上seasonal部分。对trend的预测,我们采用ARIMA模型。熟悉该模型的都知道,需要确定三个参数p,q和d,可以使用aic和bic的方法进行定阶,可以查阅相关的文献。

    640?wx_fmt=jpeg


    得到模型以后,就可以进行预测。

    640?wx_fmt=jpeg


    下面是预测的结果,从图中可以看到预测的结果将周期性的特征完美地体现出来了。

    640?wx_fmt=png
     

    6

    评估

    对第七天作出预测,评估的指标为均方根误差rmse,本序列的rmse小于5,效果还是不错的。


    7

    总结

    本文介绍了周期性序列的预测方法,你可能会问并不是所有的序列都具有周期性,事实确实如此,接下来几篇博客,我会重点介绍周期性检测的一些方法。希望此博客对您研究时间序列有所帮助。

    HULK一线技术杂谈

    由360云平台团队打造的技术分享公众号,内容涉及云计算数据库大数据监控泛前端自动化测试等众多技术领域,通过夯实的技术积累和丰富的一线实战经验,为你带来最有料的技术分享

    640?wx_fmt=gif
    展开全文
  • 一、基于周期因子的时间序列预测 1、场景 很多数据都具有周期性,比如客流量、支付 需要确定周期长短, 比如一周,一个月,结合STL分解 观察周期变化 2、缺点 没有考虑到节假日、突发事件情况 3、STL分解介绍...

    一、基于周期因子的时间序列预测

    1、场景

    很多数据都具有周期性,比如客流量、支付

    需要确定周期长短, 比如一周,一个月,结合STL分解 观察周期变化

    2、缺点

       没有考虑到节假日、突发事件情况

    3、STL分解介绍

    将时序图拆解为Trend+Sensoinnal+Residual

    4、时间序列规则

    选择特征,可以用简单统计量来作为特征,从中提取出有用的信息

    a、中位数、均值

    b、临近数据,距离待测数据越近的数据对齐影响越大

    二、预测步骤

    假设给任务是根据前三周的数据预测第四周每天的客流量

    Step1,获得周期因子

    获得星期几的均值,再除以整体均值

    Step2,计算base

    Step3,使用base*周期因子进行预测

    假如base=100,可以得到第四周的客流量

    如果预测下个月每天的情况

    如果想预测下个月每天的流量情况,可以基于每个月的规则

    (1-30号平均流量)* 周期因子

    Step1,计算周期因子(weekday)

    Step2,计算每日(1-30号)均值,

    Step3,统计星期几(weekday)在每日(day)出现频次

    Step4,基于周期因子获得加权值,得到每日的base(去掉周期因子的影响)

    Step5,根据每日base和周期因子进行预测

    三、特殊日期处理

    清明节,2014年4月5-7日 五一,2014年5月1-3日 六一,2014年5月31-6月2日 中秋节:2014年9月6-8日 国庆节:2014年10月1-7日

    节假日工具包chinese_calendar

    pip install chinesecalendar

    import datetime
    from chinese_calendar import is_workday, is_holiday
    temp  =  datetime.date(2021,1,10)
    print(is_workday(temp))
    print(is_holiday(temp))

    异常情况修正

    1)不是真的工作日 => 假日

    2)不是真的假日 => 工作日True

    展开全文
  • 这是当初刚进公司时,leader给的一个独立练手小项目,关于时间序列预测,情景比较简单,整个过程实现下来代码也仅100多行,但完成过程中踩了很多坑,觉的有必要分(tu)享(cao)一下。完整代码和样例数据放到了我的...

    这是当初刚进公司时,leader给的一个独立练手小项目,关于时间序列预测,情景比较简单,整个过程实现下来代码也仅100多行,但完成过程中踩了很多坑,觉的有必要分(tu)享(cao)一下。完整代码和样例数据放到了我的github上(文章仅粘贴部分): https://github.com/scarlettgin/cyclical_series_predict

    1、背景

    公司平台上有不同的api,供内部或外部调用,这些api承担着不同的功能,如查询账号、发版、抢红包等等。日志会记录下每分钟某api被访问了多少次,即一个api每天会有1440条记录(1440分钟),将每天的数据连起来观察,有点类似于股票走势的意思。我想通过前N天的历史数据预测出第N+1天的流量访问情况,预测值即作为合理参考,供新一天与真实值做实时对比。当真实流量跟预测值有较大出入,则认为有异常访问,触发报警。

    2、数据探索

    我放了一份样例数据在data文件夹下, 看一下数据大小和结构

    data = pd.read_csv(filename)
    print('size: ',data.shape)
    print(data.head())
    复制代码

    数据大小: 共10080条记录,即10080分钟,七天的数据。 字段含义: date:时间,单位分钟 count:该分钟该api被访问的次数

    画图看一下序列的走势:(一些画图等探索类的方法放在了test_stationarity.py 文件中,包含时间序列图,移动平均图,有兴趣的可以自己尝试下)。

    def draw_ts(timeseries):
        timeseries.plot()
        plt.show()
    
    data = pd.read_csv(path)
    data = data.set_index('date')
    data.index = pd.to_datetime(data.index)
    ts = data['count']
    draw_ts(ts)
    复制代码

    看这糟心的图,那些骤降为0的点这就是我遇到的第一个坑,我当初一拿到这份数据就开始做了。后来折腾了好久才发现,那些骤降为0的点是由于数据缺失,ETL的同学自动补零造成的,沟通晚了(TДT)。

    把坑填上,用前后值的均值把缺失值补上,再看一眼:

    发现这份数据有这样几个特点,在模型设计和数据预处理的时候要考虑到:

    1、这是一个周期性的时间序列,数值有规律的以天为周期上下波动,图中这个api,在每天下午和晚上访问较为活跃,在早上和凌晨较为稀少。在建模之前需要做分解。

    2、我的第二个坑:数据本身并不平滑,骤突骤降较多,而这样是不利于预测的,毕竟模型需要学习好正常的序列才能对未知数据给出客观判断,否则会出现频繁的误报,令气氛变得十分尴尬( ´Д`),所以必须进行平滑处理。

    3、这只是一个api的序列图,而不同的api的形态差距是很大的,毕竟承担的功能不同,如何使模型适应不同形态的api也是需要考虑的问题。

    3、预处理

    3.1 划分训练测试集

    前六天的数据做训练,第七天做测试集。

    class ModelDecomp(object):
        def __init__(self, file, test_size=1440):
            self.ts = self.read_data(file)
            self.test_size = test_size
            self.train_size = len(self.ts) - self.test_size
            self.train = self.ts[:len(self.ts)-test_size]
            self.test = self.ts[-test_size:]
    复制代码

    3.2 对训练数据进行平滑处理

    消除数据的毛刺,可以用移动平均法,我这里没有采用,因为我试过发现对于我的数据来说,移动平均处理完后并不能使数据平滑,我这里采用的方法很简单,但效果还不错:把每个点与上一点的变化值作为一个新的序列,对这里边的异常值,也就是变化比较离谱的值剃掉,用前后数据的均值填充,注意可能会连续出现变化较大的点:

    def _diff_smooth(self, ts):
        dif = ts.diff().dropna() # 差分序列
        td = dif.describe() # 描述性统计得到:min,25%,50%,75%,max值
        high = td['75%'] + 1.5 * (td['75%'] - td['25%']) # 定义高点阈值,1.5倍四分位距之外
        low = td['25%'] - 1.5 * (td['75%'] - td['25%']) # 定义低点阈值,同上
    
        # 变化幅度超过阈值的点的索引
        forbid_index = dif[(dif > high) | (dif < low)].index 
        i = 0
        while i < len(forbid_index) - 1:
            n = 1 # 发现连续多少个点变化幅度过大,大部分只有单个点
            start = forbid_index[i] # 异常点的起始索引
            while forbid_index[i+n] == start + timedelta(minutes=n):
                n += 1
            i += n - 1
    
            end = forbid_index[i] # 异常点的结束索引
            # 用前后值的中间值均匀填充
            value = np.linspace(ts[start - timedelta(minutes=1)], ts[end + timedelta(minutes=1)], n)
            ts[start: end] = value
            i += 1
    
    self.train = self._diff_smooth(self.train)
    draw_ts(self.train)
    复制代码

    平滑后的训练数据:

    3.3 将训练数据进行周期性分解

    采用statsmodels工具包:

    from statsmodels.tsa.seasonal import seasonal_decompose
    
    decomposition = seasonal_decompose(self.ts, freq=freq, two_sided=False)
    # self.ts:时间序列,series类型; 
    # freq:周期,这里为1440分钟,即一天; 
    # two_sided:观察下图2、4行图,左边空了一段,如果设为True,则会出现左右两边都空出来的情况,False保证序列在最后的时间也有数据,方便预测。
    
    self.trend = decomposition.trend
    self.seasonal = decomposition.seasonal
    self.residual = decomposition.resid
    decomposition.plot()
    plt.show()
    复制代码

    第一行observed:原始数据;第二行trend:分解出来的趋势部分;第三行seasonal:周期部分;最后residual:残差部分。 我采用的是seasonal_decompose的加法模型进行的分解,即 observed = trend + seasonal + residual,另还有乘法模型。在建模的时候,只针对trend部分学习和预测,如何将trend的预测结果加工成合理的最终结果?当然是再做加法,后面会详细写。

    4、模型

    4.1 训练

    对分解出来的趋势部分单独用arima模型做训练:

    def trend_model(self, order):
        self.trend.dropna(inplace=True)
        train = self.trend[:len(self.trend)-self.test_size]
        #arima的训练参数order =(p,d,q),具体意义查看官方文档,调参过程略。
        self.trend_model = ARIMA(train, order).fit(disp=-1, method='css')
    复制代码

    4.2 预测

    预测出趋势数据后,加上周期数据即作为最终的预测结果,但更重要的是,我们要得到的不是具体的值,而是一个合理区间,当真实数据超过了这个区间,则触发报警,误差高低区间的设定来自刚刚分解出来的残差residual数据:

    d = self.residual.describe()
    delta = d['75%'] - d['25%']
    self.low_error, self.high_error = (d['25%'] - 1 * delta, d['75%'] + 1 * delta)
    复制代码

    预测并完成最后的加法处理,得到第七天的预测值即高低置信区间:

            def predict_new(self):
                '''
                预测新数据
                '''
                #续接train,生成长度为n的时间索引,赋给预测序列
                n = self.test_size
                self.pred_time_index= pd.date_range(start=self.train.index[-1], periods=n+1, freq='1min')[1:]
                self.trend_pred= self.trend_model.forecast(n)[0]
                self.add_season()
    
    
            def add_season(self):
                '''
                为预测出的趋势数据添加周期数据和残差数据
                '''
                self.train_season = self.seasonal[:self.train_size]
                values = []
                low_conf_values = []
                high_conf_values = []
                
                for i, t in enumerate(self.pred_time_index):
                    trend_part = self.trend_pred[i]
                    
                    # 相同时间点的周期数据均值
                    season_part = self.train_season[
                    	self.train_season.index.time == t.time()
                    	].mean()
        
                    # 趋势 + 周期 + 误差界限
                    predict = trend_part + season_part
                    low_bound = trend_part + season_part + self.low_error
                    high_bound = trend_part + season_part + self.high_error
                    
                    values.append(predict)
                    low_conf_values.append(low_bound)
                    high_conf_values.append(high_bound)
    
                # 得到预测值,误差上界和下界
                self.final_pred = pd.Series(values, index=self.pred_time_index, name='predict')
                self.low_conf = pd.Series(low_conf_values, index=self.pred_time_index, name='low_conf')
                self.high_conf = pd.Series(high_conf_values, index=self.pred_time_index, name='high_conf')
    复制代码

    4.3 评估:

    对第七天作出预测,评估的指标为均方根误差rmse,画图对比和真实值的差距:

    	md = ModelDecomp(file=filename, test_size=1440)
    	md.decomp(freq=1440)
    	md.trend_model(order=(1, 1, 3)) # arima模型的参数order
    	md.predict_new() 
    	pred = md.final_pred
    	test = md.test
    
    	plt.subplot(211)
    	plt.plot(md.ts) # 平滑过的训练数据加未做处理的测试数据
    	plt.title(filename.split('.')[0])
    
    	plt.subplot(212)
    	pred.plot(color='blue', label='Predict') # 预测值
    	test.plot(color='red', label='Original') # 真实值
    	md.low_conf.plot(color='grey', label='low') # 低置信区间
    	md.high_conf.plot(color='grey', label='high') # 高置信区间
    
    	plt.legend(loc='best')
    	plt.title('RMSE: %.4f' % np.sqrt(sum((pred.values - test.values) ** 2) / test.size))
    	plt.tight_layout()
    	plt.show()
    复制代码

    可以看到,均方根误差462.8,相对于原始数据几千的量级,还是可以的。测试数据中的两个突变的点,也超过了置信区间,能准确报出来。

    5、结语

    前文提到不同的api形态差异巨大,本文只展示了一个,我在该项目中还接触了其他形态的序列,有的有明显的上升或下降趋势;有的开始比较平缓,后面开始增长... ... ,但是都属于典型的周期性时间序列,它的核心思想很简单:做好分解,做好预测结果的还原,和置信区间的设置,具体操作可根据具体业务逻辑做调整,祝大家建模愉快:-D。

    展开全文
  • Matlab实现时间序列预测

    千次阅读 2021-07-28 16:41:36
    在之前的版本做时间预测是比较麻烦操作的,MathWorks公司对时间序列预测做了详细的解决,跑模型非常简便。 当前网络是非常的非线性网络,增加神经元个数,同时增加delays到4。 利用以上模型和NAR模型进行训练,误差...


    Matlab从2010b版本以后,神经网络工具箱已经升级为7.0,功能大大加强。在之前的版本做时间预测是比较麻烦操作的,MathWorks公司对时间序列预测做了详细的解决,跑模型非常简便。

    下面通过一个例子演示在Matlab实现时间序列预测。

    一、数据准备

    极客范儿在夏天吹电扇的体温变化

    时间风速温度
    0137.21405
    0.124571.0137.26016
    0.249151.0237.26324
    0.373731.0337.31242
    0.49831.0437.3155
    0.622581.0537.36468
    0.747451.0637.36776
    0.872031.0737.41694
    0.996611.0837.42002
    % 原始数据读入到Matlab中
    rawData=xlsread('time_series_data.xlsx','sheet1','A2:C52);
    % 第一列时间,第二列风速,第三列温度
    % yt第三列
    y_t=rawData(:,3);
    % xt第二列
    x_t=rawData(:,2);
    
    

    二、时间序列预测分类

    时间序列预测分为三类:

    1、输入为xt,输出是yt

    即有过去的输入xt,也有过去的输出yt,同时当前的输出不仅依赖于过去的输入,也同时依赖于过去的输出
    过去时间段温度的变化,预测将来某个时间温度的变化,这种情况就是只有过去的输出

    %   x_t - 时间序列输入
    %   y_t - 反馈时间序列
    
    X = tonndata(x_t,false,false);
    T = tonndata(y_t,false,false);
    
    % 选择训练功能
    % 'trainlm'通常是最快
    % 'trainbr'耗时较长,但可能更适合解决挑战性的问题
    % 'trainscg'使用更少的内存。适用于低内存情况
    trainFcn = 'trainlm';  % Levenberg-Marquardt反向传播
    
    % 创建一个非线性自回归网络
    feedbackDelays = 1:6;
    hiddenLayerSize = 20;
    net = narnet(feedbackDelays,hiddenLayerSize,'open',trainFcn);
    
    % 为训练和模拟准备数据
    % PREPARETS函数为特定网络准备时间序列数据
    % 移动时间的最小量,以声明填充输入状态和层
    % 使用PREPARETS允许保留原始的时间序列数据不变,同时轻松定制它的网络与不同
    % 具有开环或闭环反馈模式的延迟数
    [x,xi,ai,t] = preparets(net,{},{},T);
    
    % 建立训练,验证,测试的数据
    net.divideParam.trainRatio = 70/100;
    net.divideParam.valRatio = 15/100;
    net.divideParam.testRatio = 15/100;
    
    % 训练静态神经网络 
    [net,tr] = train(net,x,t,xi,ai);
    
    % 测试神经网络
    y = net(x,xi,ai);
    e = gsubtract(t,y);
    performance = perform(net,t,y)
    
    % 查看神经网络
    view(net)
    
    % Plots
    % Uncomment these lines to enable various plots.
    %figure, plotperform(tr)
    %figure, plottrainstate(tr)
    %figure, ploterrhist(e)
    %figure, plotregression(t,y)
    %figure, plotresponse(t,y)
    %figure, ploterrcorr(e)
    %figure, plotinerrcorr(x,e)
    
    % 提前预测网络
    % 利用该网络进行多步预测
    % CLOSELOOP函数将反馈输入替换为直接输入
    % 从外部层连接
    nets = removedelay(net);
    nets.name = [net.name ' - Predict One Step Ahead'];
    view(netc)
    [xs,xis,ais,ts] = preparets(nets,X,{},T);
    ys = nets(xs,xis,ais);
    stepAheadPerformance = perform(nets,ts,ys)
    
    

    2、有x值,有y值:NARX

    只有过去的输出
    如果给环境加一个风扇,这时候有了风速,过去时间风速在改变,同时也在影响温度的改变
    Matlab现在提供时间序列预测工具箱,可以在图形界面上进行调参选择,使用命令ntstool打开时间序列预测工具箱

    类似股票的模型,只知道早上9:30开市到11:30的股票行情,预测11:30之后的股票行情,不考虑任何的输入

    (1)选择模型类型

    tool-001

    (2)选择输出,只有y_t

    tool-002

    (3)选择70%用来作为训练数据,15%用来作为验证使用,15%用来测试

    tool-003

    (4)选择delay

    tool-004

    (5)开始训练

    tool-005

    (6)得到参数

    tool-006
    tool-007

    (7)将神经网络导出代码

    tool-008

    3、无x,有y值:NAR

    没有线性的输入输出,很少遇到这种情况

    三、总结

    Matlab从2010b版本以后,使用图形界面训练网络调参,生成的代码与手敲的功能无异,Matlab时间序列预测工具箱实用而且好用。

    展开全文
  • 浅谈LSTM对于周期时间序列数据的预测

    万次阅读 多人点赞 2019-03-06 12:33:40
    注:本文章主要针对的是长周期时间序列数据(10000-40000条为一个周期的数据)预测 产生训练和测试数据 我们需要做的是产生周期为20000条/周期的sin函数时间序列(用于训练) 以及周期为40000条/周期的sin...
  • 季节性时间序列建模与预测 ,孟玲清,王晓雨,所谓所谓时间序列,就是各种社会、经济、自然现象的数量指标按照时间次序排列起来的统计数据,其有多种构成因素,每种因素对系统
  • 时间序列预测算法总结

    万次阅读 多人点赞 2018-10-18 10:30:48
    time series data mining 主要包括decompose(分析数据的各个成分,例如趋势,周期性),prediction(预测未来的值),classification(对有序数据序列的feature提取与分类),clustering(相似数列聚类)等。...
  • 在我们的研究中,我们考虑了对印度旁遮普省降雨数据进行统计分析的季节性和周期性时间序列模型。 在本研究论文中,我们应用季节性自回归综合移动平均和周期自回归模型来分析旁遮普省的降雨数据。 为了评估模型识别...
  • 时序预测 | MATLAB实现SARIMA时间序列预测(arima函数) 经常还会遇到一种情况,即某些时间序列中存在明显的周期性变化,这种周期是由于季节性变化(季度、月度等)引起的,ARIMA的扩展支持SARIMA,它支持对该系列的...
  • 我想通过前N天的历史数据预测出第N+1天的流量访问情况,预测值即作为合理参考,供新一天与真实值做实时对比。当真实流量跟预测值有较大出入,则认为有异常访问,触发报警。 数据探索 我放了一份样例数据在data文件夹...
  • 时间序列是按时间顺序排列的、随时间变化且相互关联的数据序列。分析时间序列的方法构成数据分析的一个重要领域,即时间序列分析。代码
  • 时间序列预测方法最全总结!

    万次阅读 多人点赞 2021-03-12 00:15:38
    时间序列预测就是利用过去一段时间的数据来预测未来一段时间内的信息,包括连续型预测(数值预测,范围估计)与离散型预测(事件预测)等,具有非常高的商业价值。需要明确一点的是,与回归分析预测模型...
  • 然而,目前的相关研究对伪周期时间序列的关注度不足,一些已有的时间序列预测方法在应用到伪周期时间序列上时,会造成误差的累积,使得预测效果很差。为了解决这些问题,总结了伪周期时间序列的特征,并提出了SPG-...
  • 时间序列预测分析就是利用过去一段时间内某事件时间的特征来预测未来一段时间内该事件的特征。这是一类相对比较复杂的预测建模问题,和回归分析模型的预测不同,时间序列模型是依赖于事件发生的先后顺序的,同样大小...
  • 在matlab中实现ARIMA时间序列预测。函数形式如下: function [result] = ARIMA_algorithm(data, Periodicity, ACF_P, PACF_Q, n) 其中data为预测所用的数据,为一维列向量;Periodicity为数据的周期;ACF_P和PACF_Q...
  • 时间序列预测/相似搜索/异常检测

    千次阅读 2020-10-19 19:43:55
    时间序列预测 时间序列预测方法总结 #22 知识分享:时间序列深度学习综述 时许异常检测 时间序列异常检测(一)—— 算法综述 时间序列异常检测(二)—— 基于KDD99数据集的实战 【论文分享】–多维时间序列异常...
  • 转载自BINGO Hong:时间序列预测方法总结​zhuanlan.zhihu.com看了时间序列规则法快速入门这篇简书的介绍像支付数据、客流量数据、交通数据等,具有明显的周期性,针对时间序列预测问题,找到周期性是关键.文章举的...
  • 统计学——时间序列预测

    万次阅读 2019-02-15 10:43:12
    第13章 时间序列分析和预测 时间序列是同一现象在不同时间上的相继观测值排列而成的序列。本书中用t表示所观察的时间,Y表示观察值,则Yi( i =1, 2, …, n)为时间ti上的观察值。 时间序列可以分为平稳序列和非平稳...
  • 时间序列预测

    千次阅读 2020-12-29 23:10:04
    时间序列预测就是利用过去一段时间的数据来预测未来一段时间内的信息,包括连续型预测(数值预测,范围估计)与离散型预测(事件预测)等,具有非常高的商业价值。
  • 季节ARIMA:时间序列预测

    万次阅读 2019-02-17 15:22:36
    SARIMAX (seasonal autoregressive integrated moving average with exogenous regressor)是一种常见的时间序列预测方法,可以分为趋势部分和周期性部分;每个部分又可以分为自回归、差分和平滑部分。 趋势稳定性...
  • 背景任何事物在两个不同时刻都不可能保持完全相同的状态,但很多变化往往存在着一定的规律,例如 24 小时日出日落,潮起潮落,这些现象通常称为「周期」。周期性,指时间序列中呈现出来的围绕长期趋...
  • 时间序列预测 预测时间段Notwithstanding the time series analysis is widely implemented for the business and sociology, it is still considered as one of the areas where most of the data scientists and ...
  • 针对传统的时间序列线性预测算法对时间序列的线性程度要求高,而非线性方法一般建模复杂且计算量大,提出了一种基于趋势点状态模型...通过模拟实验,结果表明该算法性能良好,尤其对具有周期性时间序列预测精度很高。
  • LSTM多变量时间序列预测

    千次阅读 2021-03-27 20:40:42
    基于LSTM多变量的时间序列预测
  • 一、统计术语时间序列法是一种统计分析方法,根据时间的数据序列预测未来发展趋势。时间序列分为平稳序列和非平稳序列两大类。平稳序列是不存在趋势只存在随机的序列,非平稳序列则是...时间序列预测的步骤是:...
  • 时间序列预测性度量

    千次阅读 2020-10-10 14:04:31
    时间序列预测性度量,讲解从序列长度到平稳,排序熵等指标
  • 混沌模型时间序列预测

    千次阅读 2020-02-01 21:57:44
    混沌是确定系统中由于随机行为而产生的一种外在的、复杂的、貌似无规则的运动。对于确定的非线性系统出现的具有内在随机的解,称为混沌解。 混沌系统分为两类:(1)保守系统中不可积系统的混沌,如庞加莱...
  • SPSS(十九)SPSS之时间序列模型(图文+数据集)

    万次阅读 多人点赞 2019-06-17 22:32:38
    时间序列分析试图通过研究过去来预测未来。 时间序列分析在工程、金融、科技等众多领域有着广泛的应用。在大数据时代,时间序列分析已经成为 AI 技术的一个分支,通过将时间序列分析与分类模型相结合,更好...
  • python 时间序列预测——多序列预测

    千次阅读 2019-11-26 22:06:40
    多个时间序列同时预测
  • 时间序列预测常见模型总结

    千次阅读 2019-09-08 09:59:29
    按照连续可分为离散时间序列、连续时间序列; 按照统计特性分为平稳时间序列、非平稳时间序列。其中,序列概率分布与时间无关,则称该序列为狭义平稳时间序列;如果序列的一二阶矩存在,且对任意时刻满足:1.均值...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,701
精华内容 8,680
关键字:

周期性时间序列预测