时间序列也称动态序列,是指将某种现象的指标数值按照时间顺序排列而成的数值序列。
时间序列分析大致可分成三大部分,分别是描述过去、分析规律和预测未来。
本文主要包含常用的三种模型:
| 数值变化规律 | 代表字母 | 特点 |
|---|---|---|
| 长期变动趋势 | T | 统计指标在相当长的一段时间内,受到长期趋势影响因素的影响,表现出持续上升或持续下降的趋势。 |
| 季节变动趋势 | S | 指由于季节的转变使得指标数值发生周期性变动。一般以月、季、周为时间单位,不能以年作单位。 |
| 周期变动规律(循环变动) | C | 循环变动通常以若干年为周期,在曲线图上表现为波浪式的周期变动。最典型的周期案例就是市场经济的商业周期和的整个国家的经济周期。 |
| 不规则变动(随机扰动项) | I | 由某些随机因素导致的数值变化,不可预知、没有规律(在回归中又被称为扰动项)。 |
一个时间序列往往是以上四类变化形式的叠加,四种变动与指标数值最终变动的关系可能是叠加关系,也可能是乘积关系。由于变动组合的不确定性,时间序列的数值变化才那么千变万化。

| 顺序 | 方法 | 步骤 |
|---|---|---|
| 1 | 处理时间序列中的缺失值 | 序列的中间位置:转换 —> 替换;缺失值序列两端:直接删除 |
| 2 | 定义时间变量 | 数据 —> 定义日期和时间 —> 在“个案是”中选择合适的格式,并设置好起始时间 |
| 3 | 绘制时间序列图(时序图) | 分析 —> 时间序列预测 —> 序列图(“差异”选项即为进行几阶差分) |



SPSS专家模拟器可以帮助我们寻找最佳的拟合模型(指数平滑模型或ARIMA模型)。
也即这部分如何选择,是由SPSS帮我们判断的。
| 名称 | 英文名称 | 使用条件 | 与之类似的ARIMA模型 |
|---|---|---|---|
| 简单指数平滑法 | Simple模型 | 不含趋势和季节成分 | ARIMA(0,0,1) |
| (霍特)线性趋势模型 | linear trend | 线性趋势、不含季节成分 | ARIMA(0,2,2) |
| 阻尼趋势模型 | Damped trend | 线性趋势逐渐减弱且不含季节成分 | ARIMA(1,1,2) |
| 简单季节性 | Simple seasonal | 含有稳定的季节成分、不含趋势 | SARIMA(0,1,1)×(0,1,1)s |
| 温特加法模型 | Winters’ additive | 含有线性趋势和稳定的季节成分 | SARIMA(0,1,0)×(0,1,1)s |
| 温特乘法模型 | Winters’ multiplicative | 含有线性趋势和不稳定的季节成分 | 不存在 |
| 模型 | 形式 | 说明 |
|---|---|---|
| ARIMA模型 | ARIMA(p,d,q) | 处理非季节性数据,亦称“差分自回归移动平均模型” |
| SARIMA模型 | SARIMA(p,d,q) (P,D,Q)m | 模型形式前半部分为非季节部分,后半部分为季节部分 |
ARIMA(p,d,q)模型 —— 差分自回归移动平均模型、SARIMA(Seasonal ARIMA)模型 ARIMA(p,d,q) (P,D,Q)m 前半部分为非季节部分,后半部分为季节部分。
注意:
模型选择:AIC和BIC准则(选小原则)
残差自相关函数(ACF)、残差偏自相关函数(PACF),用来确定残差是否是白噪音
Q检验的显著性用于判断残差是否为白噪声:如果显著,则残差为白噪声,说明我们选取的模型能完全识别出时间序列数据的规律,即模型可接受。否则,需要对模型进行修订。
例:
如果SPSS选择了温特加法模型,在论文中就可以把温特加法模型的这部分数据写上:

写入白噪声的输出图像,以及Q检验的结果,另外再加上右侧的文字。

我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何
我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah
我有一个表单,其中有很多字段取自数组(而不是模型或对象)。我如何验证这些字段的存在?solve_problem_pathdo|f|%>... 最佳答案 创建一个简单的类来包装请求参数并使用ActiveModel::Validations。#definedsomewhere,atthesimplest:require'ostruct'classSolvetrue#youcouldevencheckthesolutionwithavalidatorvalidatedoerrors.add(:base,"WRONG!!!")unlesss
我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢
我有一些非常大的模型,我必须将它们迁移到最新版本的Rails。这些模型有相当多的验证(User有大约50个验证)。是否可以将所有这些验证移动到另一个文件中?说app/models/validations/user_validations.rb。如果可以,有人可以提供示例吗? 最佳答案 您可以为此使用关注点:#app/models/validations/user_validations.rbrequire'active_support/concern'moduleUserValidationsextendActiveSupport:
对于Rails模型,是否可以/建议让一个类的成员不持久保存到数据库中?我想将用户最后选择的类型存储在session变量中。由于我无法从我的模型中设置session变量,我想将值存储在一个“虚拟”类成员中,该成员只是将值传递回Controller。你能有这样的类(class)成员吗? 最佳答案 将非持久属性添加到Rails模型就像任何其他Ruby类一样:classUser扩展解释:在Ruby中,所有实例变量都是私有(private)的,不需要在赋值前定义。attr_accessor创建一个setter和getter方法:classUs
我需要检查DateTime是否采用有效的ISO8601格式。喜欢:#iso8601?我检查了ruby是否有特定方法,但没有找到。目前我正在使用date.iso8601==date来检查这个。有什么好的方法吗?编辑解释我的环境,并改变问题的范围。因此,我的项目将使用jsapiFullCalendar,这就是我需要iso8601字符串格式的原因。我想知道更好或正确的方法是什么,以正确的格式将日期保存在数据库中,或者让ActiveRecord完成它们的工作并在我需要时间信息时对其进行操作。 最佳答案 我不太明白你的问题。我假设您想检查
我有一个正在构建的应用程序,我需要一个模型来创建另一个模型的实例。我希望每辆车都有4个轮胎。汽车模型classCar轮胎模型classTire但是,在make_tires内部有一个错误,如果我为Tire尝试它,则没有用于创建或新建的activerecord方法。当我检查轮胎时,它没有这些方法。我该如何补救?错误是这样的:未定义的方法'create'forActiveRecord::AttributeMethods::Serialization::Tire::Module我测试了两个环境:测试和开发,它们都因相同的错误而失败。 最佳答案
ruby如何管理内存。例如:如果我们在执行过程中采用C程序,则以下是内存模型。类似于这个ruby如何处理内存。C:__________________|||stack|||------------------||||------------------|||||Heap|||||__________________|||data|__________________|text|__________________Ruby:? 最佳答案 Ruby中没有“内存”这样的东西。Class#allocate分配一个对象并返回该对象。这就是程序