TimeSeries
TimeSeries[{{t1,v1},{t2,v2}…}]
表示由时间数值对 {ti,vi} 指定的时间序列.
TimeSeries[{v1,v2,…},tspec]
表示在由 tspec 指定的时间处具有数值 vi 的时间序列.
更多信息和选项
- TimeSeries 表示由时间数值对 {ti,vi} 组成的序列.
- 数值 vi 可以是标量或者任意维度的数组,但是必须全部具有相等的维度.
- 可以给出下列时间 tspec:
-
Automatic 使用从 0 开始的均匀间隔的时间 {tmin} 使用从 tmin 开始的均匀间隔的时间 {tmin,tmax} 使用从 tmin 到 tmax 的均匀间隔的时间 {tmin,tmax,dt} 使用时间 tmin 至 tmax,步长为 dt {{t1,t2,…}} 使用显式时间 {t1,t2,…} - ti 可以是数字或者 AbsoluteTime 的任意有效输入.
- 数值 tmin、tmax 和 dt 可以以数字、日期或者 Automatic 的形式给出.
- 指定 ts[t] 就是给出了时间 t 处的时间序列数值.
- TimeSeries 是 TemporalData 的一种特殊情形,仅允许单个路径并始终在时间戳之间进行插值.
- 具有相等维度 {ts1,ts2,…} 的 TimeSeries 对象可以使用 TemporalData[{ts1,ts2,…}] 合并为 TemporalData 对象.
- TimeSeries 对象 ts 的属性可以从 ts["property"] 得到.
- 可用属性列表可以用 ts["Properties"] 取得.
- 时间序列的某些属性包括:
-
"Path" 时间-数值对 {{t1,v1},…} "PathComponents" 将多变量路径分成单变量分量 "PathFunction" 插值路径函数 "PathLength" 路径长度 "Values" 数值 {v1,…} "ValueDimensions" vi 的维度 "Times" 时间 {t1,…} "Dates" 以日期表现的时间 {t1,…} "DatePath" 日期-数值对 {{date1,v1},…} "FirstTime" 初始时间 t1 "FirstDate" 以日期表现的初始时间 t1 "LastTime" 终止时间 "LastDate" 以日期表现的终止时间 "FirstValue" 初始时间的数值 v1 "LastValue" 终止时间的数值 - 指定 ts["PathComponent",p] 会给出由 p 指定的值的向量分量的 TimeSeries.
- 如果日期以输入给出,ts["Times"] 在 AbsoluteTime 中返回它们.
- Normal[ts] 等价于 ts["Path"].
- TimeSeries 具有下列选项:
-
CalendarType "Gregorian" 使用的日历类型 HolidayCalendar {"UnitedStates","Default"} 使用的假期日历 TimeZone $TimeZone 使用的时区 MetaInformation None 包含额外的元信息 MissingDataMethod None 用于缺失数值的方法 ResamplingMethod "Interpolation" 用于重采样路径的方法 TemporalRegularity Automatic 是否假定数据是规则的 DateFunction Automatic 如何将数据转化为标准形式 ValueDimensions Automatic 值的维数 - 默认情况下,一阶插值用于重采样. 可以给出设置 ResamplingMethod->{"Interpolation",opts},其中 opts 是传递给 Interpolation 的选项.
- 设置 MissingDataMethod->Automatic 将自动根据 ResamplingMethod 设置对头部为 Missing 的数值进行插值. 默认情况下,具有头部 Missing 的数值视为缺失值.
- 设置 ValueDimensions->dim 指定值 vij 是维数 dim. 设置 ValueDimensions->Automatic 尝试自动根据数据确定值得维数.
范例
打开所有单元关闭所有单元基本范例 (2)
范围 (33)
基本用法 (10)
使用 TimeSeriesWindow 提取时间序列的一部分:
使用 TimeSeriesInsert 替换缺失值:
使用 TimeSeriesRescale 缩放从 0 到 20 的时间序列:
使用 TimeSeriesShift 把时间序列往前移 2:
使用 TimeSeriesMap 求向量值时间序列的分量之和:
求时间序列的 Mean:
计算时间序列的 MovingAverage:
使用 MovingMap 计算移动最大值:
使用 TimeSeriesAggregate 计算时间序列的周总计值:
使用 TimeSeriesModelFit 来拟合时间序列的参数模型:
使用 TimeSeriesForecast 预测时间序列中未来10个数值:
使用 TimeSeriesThread 计算两个时间序列之间的差值:
创建时间序列 (14)
给出具有 Automatic 时间戳的数值列表:
日期可以以 AbsoluteTime 的任意有效输入给出:
指定 Automatic 端点:
使用 Automatic 端点和固定步长:
使用一个 Automatic 起点并给定频率:
提取属性和数值 (5)
值被给定为 QuantityArray:
时间序列算术 (4)
与 TimeSeriesMap 的结果相比较:
选项 (12)
CalendarType (1)
DateFunction (2)
HolidayCalendar (1)
用 HolidayCalendar 可视化给定国家的营业日:
MetaInformation (3)
MissingDataMethod (1)
ResamplingMethod (1)
TimeZone (1)
指定 TimeSeries 的时区:
时间戳是在 $TimeZone 中创建的,但日期按选项指定的时区显示:
应用 (13)
天文 (2)
使用 SunPosition 产生一定日期范围内芝加哥的太阳位置:
使用 MoonPosition 产生一定日期范围内月亮的位置:
人口统计学 (1)
使用 CountryData 产生英国和德国的国内生产总值:
能量 (1)
用 NuclearReactorData 可视化切尔诺贝利反应堆的能量生产:
气象学 (2)
设备 (2)
以下时间序列是通过从一个 TinkerForge 气象站读取照度数据(每0.1秒一次,持续5秒,期间不停改变设备方向)而生成的:
用 Fourier 验证周期性:
过滤 (1)
用 MeanFilter 过滤时间序列:
销售 (2)
用 LinearModelFit 对数据拟和一个线性模型:
用 TimeSeriesModelFit 对数据建一个时间序列模型:
属性和关系 (3)
TimeSeries 在两个时间戳之间进行插值:
用 EventSeries 代表离散的时间:
然而,EventSeries 在时间戳之间不进行插值:
TimeSeries 只能包含一条路径:
对每一行数据,建立单独的 TimeSeries:
使用 TemporalData 包含多条路径:
某点处的 TimeSeries 返回一个数值或者插值:
用 TemporalData 存放多条路径以及获得在某个点的值的分布:
可能存在的问题 (4)
指定 ValueDimensions 将数据视为向量值:
Accumulate 将重新抽样以产生规则抽样的时间序列:
为了恢复该形式,假设 TemporalRegularity:
TimeSeries 始终在时间戳之间进行插值:
要在时间戳之间仍然存在 Missing,将其用作值:
如果 ResamplingMethod 规范不是已实现的规范,则假设值为 Automatic:
文本
Wolfram Research (2014),TimeSeries,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TimeSeries.html (更新于 2015 年).
CMS
Wolfram 语言. 2014. "TimeSeries." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2015. https://reference.wolfram.com/language/ref/TimeSeries.html.
APA
Wolfram 语言. (2014). TimeSeries. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/TimeSeries.html 年