TimeSeriesModelFit[data]
从自动选择的模型系列中构建 data 的时间序列模型.
TimeSeriesModelFit[data,mspec]
从由 mspec 指定的模型系列中构建 data 的时间序列.
TimeSeriesModelFit
TimeSeriesModelFit[data]
从自动选择的模型系列中构建 data 的时间序列模型.
TimeSeriesModelFit[data,mspec]
从由 mspec 指定的模型系列中构建 data 的时间序列.
更多信息和选项
- TimeSeriesModelFit 用于时间序列分析. 它从一大类可能的模型中自动选择时间序列模型.
- TimeSeriesModelFit 返回符号 TimeSeriesModel 对象,表示它构建的时间序列模型. 模型的属性和诊断可以从 model[property] 中获得.
- 可以使用 model["Properties"] 获得可用模型属性列表.
- data 可以是数值 {x1,x2,…} 的列表,时间-值对 {{t1,x1},{t2,x2},…} 的列表,一个 TimeSeries 或 TemporalData.
- 在时间 t 的模型值可以通过给定 model[t] 获得. 如果 t 在输入数据的范围,那么会返回在时间 t 的数据;否则会给出预测值.
- 在时间 t 的预报预测极限可以使用 model["PredictionLimits"][t] 获得.
- 模型规范 mspec 可以采取以下形式:
-
Automatic 自动选择要使用的模型 "family" 从给定系列中选择一个模型 {"family",params} 从给定系列的子集中选择一个模型 - 可以使用以下系列和参数:
-
"AR" {p} 自回归模型系列 "MA" {q} 移动平均模型系列 "ARMA" {p,q} 自回归移动平均模型系列 "ARIMA" {p,d,q} 整合 ARMA 模型系列 "SARMA" {{p,q},{sp,sq},s} 季节性 ARMA 模型系列 "SARIMA" {{p,d,q},{sp,sd,sq},s} 季节性 ARIMA 模型系列 "ARCH" {q} ARCH 模型系列 "GARCH" {q,p} GARCH 模型系列 - 自回归和移动平均阶数 p 和 q 以及它们的季节性的相对物 sp 和 sq 可被赋值为 Automatic、非负整数、非负整数列表或一个 Span 表示的这样的一份列表.
- 非季节和季节积分阶数 d 和 sd 可被赋值为 Automatic、非负整数、非负整数列表或一个 Span 表示的这样的一份列表.
- 对于季节性模型,季节参数 s 可以是 Automatic 或一个正整数.
- 其他模型系列参数在范例中给出.
- 下列模型属性可用 model["property"] 获得:
-
"BestFit" 拟合模型 "BestFitParameters" 系数估计 "ErrorVariance" 模型误差方差 "FitResiduals" 拟合模型的残差 "StandardizedResiduals" 标准化模型的残差 "TemporalData" 作为 TemporalData 的输入数据 - 与模型选择有关的属性包括:
-
"CandidateModels" 按选择标准排序的候选模型集合 "CandidateModelSelectionValues" 每个候选模型的选择标准值 "CandidateSelectionTable" 包含模型和选择标准值的表格 "CandidateSelectionTableEntries" 候选选择表格的条目 "ModelFamily" 选择的模型系列 "SelectionCriterion" 选择最好模型的标准 - 衡量拟合优度的属性包括:
-
"AIC" Akaike 信息量准则 "AICc" 有限样本修正的 AIC "BIC" Bayesian 信息量准则 "SBC" Schwartz–Bayes 信息量准则 - 以下属性可用于估计模型残差的白噪声:
-
"ACFPlot" 残差自相关的图线 "ACFValues" "ACFPlot" 的值 "PACFPlot" 残差偏自相关的图线 "PACFValues" "PACFPlot" 的值 "LjungBoxPlot" Ljung–Box 残差自相关检验
值的图线"LjungBoxValues" "LjungBoxPlot" 的值 - 残差白噪声属性 "wprop" 包括的最大滞后数通过 model["wprop","LagMax"->max] 进行控制,其中 max 是正整数.
- 系数估计的属性和诊断包括:
-
"CovarianceMatrix" 模型系数的协方差估计 "InformationMatrix" 模型系数的信息矩阵 "ParameterConfidenceIntervals" 系数估计的置信区间 "ParameterStandardErrors" 模型系数的标准误差 "ParameterTable" 拟合系数信息表格 "ParameterTableEntries" 参数表格中的条目 - TimeSeriesModelFit 接受以下选项:
-
ConfidenceLevel 95/100 选择的置信水平 » IncludeConstantBasis Automatic » Method Automatic 选择模型时使用的方法 » WorkingPrecision Automatic 内部计算使用的精度 » - 如果非季节性和季节性积分阶数为零,默认设置 IncludeConstantBasis->Automatic 会在模型中包含一个常数;否则的话,不会包含常数.
- Method->m 中的方法 m 可以是 "Stepwise" 或 "GridSearch". 对于逐步选择,Automatic 参数阶数递增直到找到一个最优化的选择标准. 使用网格搜索在指定网格彻底尝试所有模型.
- 根据选择标准 crit 选择最佳模型,它可以在 Method->{m,"SelectionCriterion"->crit} 中设置. 有效的选择标准范例包括 "AIC"(默认)、"AICc"、"SBC" 和 "BIC".
范例
打开所有单元 关闭所有单元基本范例 (1)
data = {5., 9., 8., 10., 6.1, 10.4, 9.1, 11.6, 7.5, 12.1, 10.4, 13.5, 9., 14.1, 11.9, 15.7, 10.8, 16.4, 13.7, 18.3, 12.9, 19., 15.8, 21.2,
15.3, 22.1, 18.3, 24.6};tsm = TimeSeriesModelFit[data]Normal[tsm]tsm[35]tsm["PredictionLimits"][35]ListLinePlot[{tsm["TemporalData"], TimeSeriesForecast[tsm, {10}]}]范围 (22)
基本用途 (5)
ts = Accumulate[RandomVariate[NormalDistribution[], 10 ^ 4]];ListLinePlot[ts]tsm = TimeSeriesModelFit[ts]Normal[tsm]tsm = TimeSeriesModelFit[TemporalData[TimeSeries, {{{-1.16, -0.98, 2.7, 12.08, 16.83, 20.78, 24.32, 24.92, 19.28, 13.34,
11.19, 3.3, 1.91, 2.02, 2.36, 10.27, 13.16, 22.26, 26.67, 24.55, 22.07, 11.81, 5.49, 0.88,
-3.71, -2.51, 4.42, 9.55, 13.82, 19.35, 23.29, 24.0 ... ation[{2001, 1, 1, 0, 0, 0.}, {2012, 1, 1, 0, 0, 0.}, {1, "Month"}]},
1, {"Discrete", 1}, {"Discrete", 1}, 1,
{MetaInformation -> {"Caller" :> TemporalData[WeatherData["Chicago", "Temperature", dates][[All,
2]], dates]}}}, True, 10.]]DateListPlot[{tsm["TemporalData"], TimeSeriesForecast[tsm, {24}]}, Joined -> True]tsm["June 1, 2014"]tsm["PredictionLimits"]["June 1, 2014"]ts = TimeSeries[TimeEventSeries`TimestampData[Association["UniformlySpacedQ" -> True, "Count" -> 3362,
"Endpoints" -> TabularColumn[Association["Data" -> {{0, 3361}, {}, None},
"ElementType" -> "Integer64"]], "MinimumTimeIncrement" -> 1, "Cal ... 28697962798989,
0.014550264550264647, -0.009995654063450599, 0.005267778753292207, -0.0021834061135369565,
0.0070021881838073785, 0.009995654063450488, 0.001290877796902068}, {}, None},
"ElementType" -> "Real64"]], Association[]];ListLinePlot[ts, PlotRange -> All]tsm = TimeSeriesModelFit[ts, {"GARCH", {1, 1}}]tsm["ParameterTable"]data = TimeSeries[RandomFunction[ARIMAProcess[{.1}, 2, {.1, .2}, 2], {1, 10 ^ 2}]["Values"], {Automatic, Today, "BusinessDay"}]p1 = DateListPlot[data]tsm = TimeSeriesModelFit[data, {"ARIMA", {1, 2, 2}}]Show[p1, DateListPlot[RandomFunction[tsm, {1, 30}, 50], Joined -> True], PlotRange -> All]使用原始数据用 TimeSeriesModel 模拟未来观察:
data = TemporalData[RandomFunction[ARProcess[{.8}, 1], {100}]["Values"], {"January 24 1982", Automatic, "Month"}]model = TimeSeriesModelFit[data]process = model["Process"]时间戳或初始值的信息不会传给 RandomFunction:
SeedRandom["TSM"];BlockRandom[sim1 = RandomFunction[process, {10}, 4]]使用 TimeSeriesModel 的模拟会使用由原始数据给出的信息:
SeedRandom["TSM"];BlockRandom[sim2 = RandomFunction[model, {10}, 4]]{ListLinePlot[sim1], DateListPlot[sim2]}模型规范 (6)
ts = RandomFunction[ARMAProcess[{.1, -.3}, {.1}, 1], {0, 10 ^ 4}];tsm = TimeSeriesModelFit[ts]等价于指定 Automatic:
TimeSeriesModelFit[ts, Automatic]SeedRandom[235];
ts = RandomFunction[ARProcess[{.1, .2}, 1], {0, 10 ^ 4}];tsm = TimeSeriesModelFit[ts, "AR"]SeedRandom[203371];
ts = RandomFunction[ARMAProcess[{.1}, {.2, -.3}, 1], {0, 10 ^ 4}];TimeSeriesModelFit[ts, {"ARMA", {0 ;; 2, 0 ;; 2}}]%["CandidateSelectionTable"]ts = RandomFunction[ARIMAProcess[{.2, -.1}, 1, {.5, -.3, .4}, 2], {0, 10 ^ 4}];ListLinePlot[ts]tsm1 = TimeSeriesModelFit[ts, {"ARIMA", {2, 1, 3}}]tsm2 = TimeSeriesModelFit[ts, {"ARIMA", {Automatic, 1, Automatic}}]ts = TemporalData[Automatic, {{{-0.6234770849029923, -0.43353873731436093, -1.4384562423305023,
-0.6121753077532655, -1.6377557914754912, -0.965769312027555, 0.11900665884869621,
1.7632213409033033, 2.595842448714646, 3.511220729322236, 3.4379 ... 13.320609605604798, -12.854481578284084, -10.497526742053997, -10.370034746782753,
-10.688808347192714, -9.898759741498635, -8.080916162954333, -7.919847928681525}},
{{0, 1000, 1}}, 1, {"Continuous", 1}, {"Discrete", 1}, 1, {}}, False, 9.];TimeSeriesModelFit[ts, "ARIMA"]或者,对所有参数阶数使用 Automatic:
p = d = q = Automatic;TimeSeriesModelFit[ts, {"ARIMA", {p, d, q}}]相同的方法,固定积分阶数
,其中,
和
为 Automatic:
TimeSeriesModelFit[ts, {"ARIMA", {p, 1, q}}]TimeSeriesModelFit[ts, {"ARIMA", 1}]相同的方法,固定
和
,其中设积分阶数
为 Automatic:
TimeSeriesModelFit[ts, {"ARIMA", {1, d, 2}}]TimeSeriesModelFit[ts, {"ARIMA", {1, 2}}]ts = RandomFunction[SARIMAProcess[{.3}, 1, {.2}, {12, {.2}, 2, {}}, 1], {1, 10 ^ 4}];tsm = TimeSeriesModelFit[ts, "SARIMA"]或者,对所有参数阶数使用 Automatic:
p = d = q = sp = sd = sq = s = Automatic;TimeSeriesModelFit[ts, {"SARIMA", {{p, d, q}, {sp, sd, sq}, s}}]同样,固定季节性参数
,其他为 Automatic:
TimeSeriesModelFit[ts, {"SARIMA", {{p, d, q}, {sp, sd, sq}, 12}}]TimeSeriesModelFit[ts, {"SARIMA", 12}]TimeSeriesModelFit[ts, {"SARIMA", {{p, 1, q}, {sp, 2, sq}, 12}}]TimeSeriesModelFit[ts, {"SARIMA", {1, 2, 12}}]模型属性 (11)
tsm = TimeSeriesModelFit[TemporalData[TimeSeries, {{{-0.7935061667730144, 4.3778286773763035, 2.922958541001586,
1.9853580784609617, 1.147308854130249, 1.698080426822207, 0.008331318340714766,
0.10200160157297689, 2.2513707375476235, 0.8328655174414309, -2.378076 ... 761350230830915, 2.4578396008405163,
-0.9273117800247228, 0.3871528084319487, 1.0557919551990362, 1.8934299378382737,
3.913518335425615, 1.3010389634021429}}, {{1, 10000, 1}}, 1, {"Continuous", 1},
{"Discrete", 1}, 1, {}}, False, 10.]];tsm["Properties"]tsm = TimeSeriesModelFit[TemporalData[TimeSeries, {{{-0.7935061667730144, 4.3778286773763035, 2.922958541001586,
1.9853580784609617, 1.147308854130249, 1.698080426822207, 0.008331318340714766,
0.10200160157297689, 2.2513707375476235, 0.8328655174414309, -2.378076 ... 761350230830915, 2.4578396008405163,
-0.9273117800247228, 0.3871528084319487, 1.0557919551990362, 1.8934299378382737,
3.913518335425615, 1.3010389634021429}}, {{1, 10000, 1}}, 1, {"Continuous", 1},
{"Discrete", 1}, 1, {}}, False, 10.]];tsm["BestFit"]使用 Normal 得到同等的结果:
Normal[tsm]tsm = TimeSeriesModelFit[TemporalData[TimeSeries, {{{-0.7935061667730144, 4.3778286773763035, 2.922958541001586,
1.9853580784609617, 1.147308854130249, 1.698080426822207, 0.008331318340714766,
0.10200160157297689, 2.2513707375476235, 0.8328655174414309, -2.378076 ... 761350230830915, 2.4578396008405163,
-0.9273117800247228, 0.3871528084319487, 1.0557919551990362, 1.8934299378382737,
3.913518335425615, 1.3010389634021429}}, {{1, 10000, 1}}, 1, {"Continuous", 1},
{"Discrete", 1}, 1, {}}, False, 10.]];sc = {"AIC", "AICc", "BIC", "SBC"};TableForm[{#, tsm[#]}& /@ sc]tsm["SelectionCriterion"]tsm = TimeSeriesModelFit[TemporalData[TimeSeries, {{{-0.7935061667730144, 4.3778286773763035, 2.922958541001586,
1.9853580784609617, 1.147308854130249, 1.698080426822207, 0.008331318340714766,
0.10200160157297689, 2.2513707375476235, 0.8328655174414309, -2.378076 ... 761350230830915, 2.4578396008405163,
-0.9273117800247228, 0.3871528084319487, 1.0557919551990362, 1.8934299378382737,
3.913518335425615, 1.3010389634021429}}, {{1, 10000, 1}}, 1, {"Continuous", 1},
{"Discrete", 1}, 1, {}}, False, 10.]];tsm["CandidateSelectionTable"]tsm["CandidateSelectionTableEntries"]//Shallowtsm = TimeSeriesModelFit[TemporalData[TimeSeries, {{{-0.7935061667730144, 4.3778286773763035, 2.922958541001586,
1.9853580784609617, 1.147308854130249, 1.698080426822207, 0.008331318340714766,
0.10200160157297689, 2.2513707375476235, 0.8328655174414309, -2.378076 ... 761350230830915, 2.4578396008405163,
-0.9273117800247228, 0.3871528084319487, 1.0557919551990362, 1.8934299378382737,
3.913518335425615, 1.3010389634021429}}, {{1, 10000, 1}}, 1, {"Continuous", 1},
{"Discrete", 1}, 1, {}}, False, 10.], Method -> {"GridSearch", "SelectionCriterion" -> "AICc"}];Shallow[mod = tsm["CandidateModels"]]ListPlot[MapThread[Tooltip, {tsm["CandidateModelSelectionValues"], mod}], PlotRange -> All, PlotStyle -> PointSize[Large], Filling -> Axis]ts = TemporalData[TimeSeries, {{{-0.7935061667730144, 4.3778286773763035, 2.922958541001586,
1.9853580784609617, 1.147308854130249, 1.698080426822207, 0.008331318340714766,
0.10200160157297689, 2.2513707375476235, 0.8328655174414309, -2.378076 ... 761350230830915, 2.4578396008405163,
-0.9273117800247228, 0.3871528084319487, 1.0557919551990362, 1.8934299378382737,
3.913518335425615, 1.3010389634021429}}, {{1, 10000, 1}}, 1, {"Continuous", 1},
{"Discrete", 1}, 1, {}}, False, 10.];tsm1 = TimeSeriesModelFit[ts, {"ARMA", {2, 0}}];tsm1["ACFPlot"]tsm2 = TimeSeriesModelFit[ts, {"ARMA", {2, 1}}];tsm2["ACFPlot"]ts = TemporalData[TimeSeries, {{{-0.7935061667730144, 4.3778286773763035, 2.922958541001586,
1.9853580784609617, 1.147308854130249, 1.698080426822207, 0.008331318340714766,
0.10200160157297689, 2.2513707375476235, 0.8328655174414309, -2.378076 ... 761350230830915, 2.4578396008405163,
-0.9273117800247228, 0.3871528084319487, 1.0557919551990362, 1.8934299378382737,
3.913518335425615, 1.3010389634021429}}, {{1, 10000, 1}}, 1, {"Continuous", 1},
{"Discrete", 1}, 1, {}}, False, 10.];tsm1 = TimeSeriesModelFit[ts, {"ARMA", {2, 0}}];tsm1["PACFPlot"]tsm2 = TimeSeriesModelFit[ts, {"ARMA", {2, 1}}];tsm2["PACFPlot"]ts = TemporalData[TimeSeries, {{{-0.7935061667730144, 4.3778286773763035, 2.922958541001586,
1.9853580784609617, 1.147308854130249, 1.698080426822207, 0.008331318340714766,
0.10200160157297689, 2.2513707375476235, 0.8328655174414309, -2.378076 ... 761350230830915, 2.4578396008405163,
-0.9273117800247228, 0.3871528084319487, 1.0557919551990362, 1.8934299378382737,
3.913518335425615, 1.3010389634021429}}, {{1, 10000, 1}}, 1, {"Continuous", 1},
{"Discrete", 1}, 1, {}}, False, 10.];tsm1 = TimeSeriesModelFit[ts, {"ARMA", {2, 0}}];tsm1["LjungBoxPlot"]tsm2 = TimeSeriesModelFit[ts, {"ARMA", {2, 1}}];tsm2["LjungBoxPlot"]mod = TimeSeriesModelFit[TemporalData[TimeSeries, {{{-0.7935061667730144, 4.3778286773763035, 2.922958541001586,
1.9853580784609617, 1.147308854130249, 1.698080426822207, 0.008331318340714766,
0.10200160157297689, 2.2513707375476235, 0.8328655174414309, -2.378076 ... 761350230830915, 2.4578396008405163,
-0.9273117800247228, 0.3871528084319487, 1.0557919551990362, 1.8934299378382737,
3.913518335425615, 1.3010389634021429}}, {{1, 10000, 1}}, 1, {"Continuous", 1},
{"Discrete", 1}, 1, {}}, False, 10.], {"ARMA", {2, 1}}];mod /@ {"ACFPlot", "PACFPlot", "LjungBoxPlot"}//GraphicsRow在 "ACFPlot" 中使用了前5个自相关值和95%的置信区域:
mod["ACFValues", "LagMax" -> 5]在 "PACFPlot" 中使用了前5个偏自相关值和95%的置信区域:
mod["PACFValues", "LagMax" -> 5]滞后1到12的 Ljung–Box
值和标准值被用在图线中:
mod["LjungBoxValues", "LagMax" -> 12]tsm = TimeSeriesModelFit[TemporalData[TimeSeries, {{{-1.16, -0.98, 2.7, 12.08, 16.83, 20.78, 24.32, 24.92, 19.28, 13.34,
11.19, 3.3, 1.91, 2.02, 2.36, 10.27, 13.16, 22.26, 26.67, 24.55, 22.07, 11.81, 5.49, 0.88,
-3.71, -2.51, 4.42, 9.55, 13.82, 19.35, 23.29, 24.0 ... ation[{2001, 1, 1, 0, 0, 0.}, {2012, 1, 1, 0, 0, 0.}, {1, "Month"}]},
1, {"Discrete", 1}, {"Discrete", 1}, 1,
{MetaInformation -> {"Caller" :> TemporalData[WeatherData["Chicago", "Temperature", dates][[All,
2]], dates]}}}, True, 10.]]tsm["ParameterTable"]tsm["ParameterTableEntries"]tsm = TimeSeriesModelFit[d = TemporalData[TimeSeries, {{{-1.16, -0.98, 2.7, 12.08, 16.83, 20.78, 24.32, 24.92, 19.28, 13.34,
11.19, 3.3, 1.91, 2.02, 2.36, 10.27, 13.16, 22.26, 26.67, 24.55, 22.07, 11.81, 5.49, 0.88,
-3.71, -2.51, 4.42, 9.55, 13.82, 19.35, 23.29, 24.0 ... ation[{2001, 1, 1, 0, 0, 0.}, {2012, 1, 1, 0, 0, 0.}, {1, "Month"}]},
1, {"Discrete", 1}, {"Discrete", 1}, 1,
{MetaInformation -> {"Caller" :> TemporalData[WeatherData["Chicago", "Temperature", dates][[All,
2]], dates]}}}, True, 10.]]Sqrt[Diagonal[tsm["CovarianceMatrix"]] / d["PathLength"]]tsm["ParameterStandardErrors"]选项 (9)
ConfidenceLevel (2)
ts = RandomFunction[ARIMAProcess[{.1}, 2, {.2}, 1], {1, 150}];ListLinePlot[ts]tsm = TimeSeriesModelFit[ts, ConfidenceLevel -> .9]t = tsm["PredictionLimits"][155]tsm["PredictionLimits", ConfidenceLevel -> .99][155]ConfidenceLevel 设置影响特征检测的阈值:
SeedRandom[11];
data = RandomFunction[GARCHProcess[2, {.5}, {.3}], {1, 10 ^ 4}];TimeSeriesModelFit[data, ConfidenceLevel -> .9]Normal[%]TimeSeriesModelFit[data, ConfidenceLevel -> .99]Normal[%]IncludeConstantBasis (1)
data = TemporalData[Automatic, {{{-0.14119052344221666, -1.596907640266988, -2.2582073671446694,
-1.9319420528595548, -1.1478947661154448, -0.3674878918612522, 0.6590713786839412,
-1.102826183727665, -1.674076427012788, -3.9969894719586714, -6.1 ... -27.10459273737598, -28.088716540543274, -29.740726054951963, -29.922334674607573,
-30.038824585257633, -32.389230950434325, -32.06299441006345, -32.95643499312959}},
{{0, 999, 1}}, 1, {"Discrete", 1}, {"Discrete", 1}, 1, {}}, False, 9.];TimeSeriesModelFit[data, "ARMA", IncludeConstantBasis -> True]//NormalTimeSeriesModelFit[data, "ARMA", IncludeConstantBasis -> False]//NormalMethod (5)
data = RandomFunction[ARMAProcess[{.1}, {.2}, 1], {1, 10 ^ 4}];tsm1 = TimeSeriesModelFit[data, "ARMA", Method -> Automatic]//Normaltsm2 = TimeSeriesModelFit[data, "ARMA", Method -> "Stepwise"]//Normaltsm1 == tsm2TimeSeriesModelFit[data, "ARMA", Method -> "GridSearch"]//NormalTimeSeriesModelFit[data, {"ARMA", {Automatic, 0 ;; 10}}, Method -> "Stepwise"]//Normaldata = RandomFunction[ARMAProcess[{.1}, {.2}, 1], {1, 10 ^ 4}];TimeSeriesModelFit[data, "ARMA"]["CandidateSelectionTable"]TimeSeriesModelFit[data, "ARMA", Method -> {Automatic, "SelectionCriterion" -> "BIC"}]["CandidateSelectionTable"]temp = TemporalData[Automatic, {{{-1.16, -0.98, 2.7, 12.08, 16.83, 20.78, 24.32, 24.92, 19.28, 13.34,
11.19, 3.3, 1.91, 2.02, 2.36, 10.27, 13.16, 22.26, 26.67, 24.55, 22.07, 11.81, 5.49, 0.88,
-3.71, -2.51, 4.42, 9.55, 13.82, 19.35, 23.29, 24.09 ... cation[{2001, 1, 1, 0, 0, 0.}, {2012, 1, 1, 0, 0, 0.}, {1, "Month"}]},
1, {"Discrete", 1}, {"Discrete", 1}, 1,
{MetaInformation -> {"Caller" :> TemporalData[WeatherData["Chicago", "Temperature", dates][[All,
2]], dates]}}}, True, 9.];TimeSeriesModelFit[temp, Method -> {Automatic, "MaxCandidates" -> 15}]["CandidateModels"]//LengthTimeSeriesModelFit[temp, Method -> {Automatic, "MaxCandidates" -> Infinity}]["CandidateModels"]//LengthTimeSeriesModelFit[temp]["CandidateModels"]//Lengthtemp = TemporalData[Automatic, {{{-1.16, -0.98, 2.7, 12.08, 16.83, 20.78, 24.32, 24.92, 19.28, 13.34,
11.19, 3.3, 1.91, 2.02, 2.36, 10.27, 13.16, 22.26, 26.67, 24.55, 22.07, 11.81, 5.49, 0.88,
-3.71, -2.51, 4.42, 9.55, 13.82, 19.35, 23.29, 24.09 ... cation[{2001, 1, 1, 0, 0, 0.}, {2012, 1, 1, 0, 0, 0.}, {1, "Month"}]},
1, {"Discrete", 1}, {"Discrete", 1}, 1,
{MetaInformation -> {"Caller" :> TemporalData[WeatherData["Chicago", "Temperature", dates][[All,
2]], dates]}}}, True, 9.];TimeSeriesModelFit[temp, Method -> {Automatic, "MaxAROrder" -> 1, "MaxMAOrder" -> 1, "MaxSeasonalAROrder" -> 1, "MaxSeasonalMAOrder" -> 1}]TimeSeriesModelFit[temp, Method -> {"GridSearch", "MaxCandidates" -> Infinity, "MaxAROrder" -> 2, "MaxMAOrder" -> 2, "MaxSeasonalAROrder" -> 2, "MaxSeasonalMAOrder" -> 2}]["CandidateModels"]//LengthTimeSeriesModelFit[temp, Method -> {"GridSearch", "MaxCandidates" -> Infinity, "MaxAROrder" -> 1, "MaxMAOrder" -> 1, "MaxSeasonalAROrder" -> 1, "MaxSeasonalMAOrder" -> 1}]["CandidateModels"]//Length逐步方法拟合模型在当前最佳模型的 "MaxStepSize" 阶数中:
data = TemporalData[Automatic, {{{0.48567872304876314, 0.554843335241101, 0.5934652242460972,
0.760477909565011, 1.7297685613735987, 1.212965224485393, 0.7565266649282496,
0.9400845884689406, -0.34817802196504266, -1.3246407289324051, -0.9286445 ... 646355753, 1.8935789572854922,
-0.002929238988200883, -0.771594065167061, -2.3867138941136625, -0.8945349352440608,
-2.3615995758210637, -0.5623814423867756}}, {{1, 10000, 1}}, 1, {"Continuous", 1},
{"Discrete", 1}, 1, {}}, False, 9.];AbsoluteTiming[tsmDefault = TimeSeriesModelFit[data, Method -> {Automatic, "MaxStepSize" -> 1}]]AbsoluteTiming[tsmBigStep = TimeSeriesModelFit[data, Method -> {"Stepwise", "MaxStepSize" -> 5}]]AbsoluteTiming[tsmGrid = TimeSeriesModelFit[data, "ARMA", Method -> "GridSearch"]]WorkingPrecision (1)
使用 WorkingPrecision 获取更高精度的估计:
ts = Accumulate[RandomChoice[{-1, 1}, 10 ^ 4]];TimeSeriesModelFit[ts, {"ARIMA", {1, 1, 1}}, WorkingPrecision -> 50]//Normal应用 (8)
本地温度 (1)
today = DateValue[Today, {"Year", "Month"}];
start = DateValue[DatePlus[Today, {-10, "Year"}], {"Year", "Month"}];
tspec = {start, today, "Month"};temp = TimeSeries[WeatherData[FindGeoLocation[], "Temperature", tspec, "NonMetricValue"], {start, Automatic, "Month"}]DateListPlot[temp, Joined -> True, FrameLabel -> Automatic]tsm = TimeSeriesModelFit[temp]tsm[DatePlus[today, {1, "Month"}]]fdates = DateRange[today, DatePlus[today, {1, "Year"}], "Month"];forecast = tsm /@ fdates;
bands = tsm["PredictionLimits"][#]& /@ fdates;DateListPlot[{bands[[All, 1]], forecast, bands[[All, 2]]}, {today, Automatic, "Month"}, Joined -> True, PlotStyle -> {Gray, Automatic}]飞机上的乘客 (2)
以下数据包括1949年1月到1960年12月美国国际航空乘客(按千计)的月总人数:
passengers = TemporalData[TimeSeries, {{{112, 118, 132, 129, 121, 135, 148, 148, 136, 119, 104, 118, 115, 126,
141, 135, 125, 149, 170, 170, 158, 133, 114, 140, 145, 150, 178, 163, 172, 178, 199, 199, 184,
162, 146, 166, 171, 180, 193, 181, 183, 218, ... . (1994) Time \
Series Analysis, Forecasting and\nControl. Second Edition. New York: Prentice-Hall.",
"Description" -> "International Airline Passengers: Monthly Totals (Thousands of Passengers) \
January 1949 - December 1960"}}}, True, 10.];before1958 = TimeSeriesWindow[passengers, {Automatic, "December 1957"}];
since1958 = TimeSeriesWindow[passengers, {"January 1958", Automatic}];p = DateListPlot[{before1958, since1958}, Joined -> True, PlotLegends -> {"Before 1958", "After 1958"}]tsm = TimeSeriesModelFit[before1958]tsm["June 1959"] * 1000//Round1000since1958["June 1959"]DateListPlot[{before1958, since1958, Table[{t, tsm[t]}, {t, DateRange["January 1958", "December 1960", "Month"]}]}, Joined -> True, PlotLegends -> {"Before 1958", "After 1958", "Forecast"}]passengers = TemporalData[TimeSeries, {{{112, 118, 132, 129, 121, 135, 148, 148, 136, 119, 104, 118, 115, 126,
141, 135, 125, 149, 170, 170, 158, 133, 114, 140, 145, 150, 178, 163, 172, 178, 199, 199, 184,
162, 146, 166, 171, 180, 193, 181, 183, 218, ... . (1994) Time \
Series Analysis, Forecasting and\nControl. Second Edition. New York: Prentice-Hall.",
"Description" -> "International Airline Passengers: Monthly Totals (Thousands of Passengers) \
January 1949 - December 1960"}}}, True, 10.];tsm = TimeSeriesModelFit[passengers]k = 7;
start = "December 1st, 1960";tsm["TemporalData"]["DateFunction"] /@ tsm["TemporalData"]["FirstTimes"]forecastDates = DateRange[start, DatePlus[start, {k, "Year"}], "Month"];forecast = tsm /@ forecastDates;
bands = tsm["PredictionLimits"][#]& /@ forecastDates;pforecast = DateListPlot[{bands[[All, 1]], forecast, bands[[All, 2]]}, {start, Automatic, "Month"}, Joined -> True, Filling -> {1 -> {3}}, PlotStyle -> {Directive[Dashed, StandardGray], Directive[Thick, Green]}]sim = RandomFunction[tsm, {0, 12 * k}, 100];psim = DateListPlot[sim, PlotStyle -> Directive[Opacity[.25]], Joined -> True, PlotRange -> All]Show[psim, pforecast, PlotRange -> All]质数 (1)
primeEstimator[n_] := n Log[n]primeDiff[n_] := Prime[n] - primeEstimator[n]diffs = Table[primeDiff[n], {n, 1, 250}];ListLinePlot[diffs, PlotRange -> All]tsm = TimeSeriesModelFit[diffs]Show[Plot[tsm["PredictionLimits"][t], {t, 251, 350}, PlotRange -> {100, 400}, AxesOrigin -> {251, 100}, PlotStyle -> {Gray, Dashed}], DiscretePlot[primeDiff[n], {n, 251, 350}, Filling -> None]]primeEstimator[300]//NprimeEstimator[300] + tsm[300]Prime[300]ListLinePlot[Transpose@Table[Join[{Prime[n], primeEstimator[n], primeEstimator[n] + tsm[n]}, primeEstimator[n] + tsm["PredictionLimits"][n]], {n, 251, 350}], PlotStyle -> {Automatic, Automatic, Automatic, Directive[Dashed, Gray], Directive[Dashed, Gray]}, PlotLegends -> {"primes", "original prime estimator", "improved prime estimator"}]意外死亡 (1)
deaths = ExampleData[{"Statistics", "USAccidentalDeaths"}, "EventSeries"]n = deaths["PathLength"]DateListPlot[deaths]对数据进行 ARProcess 拟合:
tsm1 = TimeSeriesModelFit[deaths, "AR"]Table[Pane[tsm1[plot], ImageSize -> Medium], {plot, {"ACFPlot", "PACFPlot"}}]tsm12 = TimeSeriesModelFit[deaths, {"SARIMA", 12}](#[{"AIC", "AICc", "BIC", "SBC"}]& /@ {tsm1, tsm12})//GridTable[Pane[tsm12[plot], ImageSize -> Medium], {plot, {"ACFPlot", "PACFPlot"}}]sixM = RandomFunction[tsm12, {0, 1}, 10 ^ 4];α = 0.9;Quantile[sixM["28 Feb 1979"], {(1 - α/2), (1 + α/2)}]tsm12["PredictionLimits", ConfidenceLevel -> α]["28 Feb 1979"]山猫毛皮 (1)
加拿大哈德逊湾公司在1850年到1911年每年销售的水貂皮草数:
sales = TemporalData[TimeSeries, {{{29619, 21151, 24859, 25152, 42375, 50839, 61581, 61951, 76231, 63264,
44730, 31094, 49452, 43961, 61727, 60334, 51404, 58451, 73575, 74343, 27708, 31985, 39266,
44740, 60429, 72273, 79214, 79060, 84244, 62590, ... 7813, 57620, 66549, 54673, 55996, 60053, 39169, 21534, 17857, 21788, 33008}},
{{1850, 1911, 1}}, 1, {"Continuous", 1}, {"Discrete", 1}, 1,
{ValueDimensions -> 1, ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}}}, False,
10.];ListPlot[sales, Joined -> True, PlotRange -> All]saleModel = TimeSeriesModelFit[sales]sim = RandomFunction[saleModel, {0, 10}, 150]forecast = TimeSeriesThread[Mean, sim];Min[forecast]Show[ListLinePlot[sales], ListLinePlot[sim, PlotStyle -> Directive[Opacity[.2]]],
ListLinePlot[forecast, PlotStyle -> Green], PlotRange -> All]零售销售 (1)
raw = WolframAlpha["usa retail sales", {{"History:RetailSales:EconomicData", 1}, "TimeSeriesData"}];raw[[1]]根据选择创建 TimeSeries:
data = TimeSeries[QuantityMagnitude[raw[[-12 * 15 ;; , 2]]], {Automatic, raw[[-1, 1]], "Month"}]grids = Table[{1992, 12 i}, {i, 1, data["PathLength"]}];
DateListPlot[data, GridLines -> {grids, None}, AspectRatio -> 1 / 3]model = TimeSeriesModelFit[data, {"SARIMA", 12}]proc = model["BestFit"]forecast = TimeSeriesForecast[model, {0, 7 * 12}]α = .95;
q = Quantile[NormalDistribution[], 1 - (1 - α) / 2];
err = forecast["MeanSquaredErrors"];
bands = TimeSeriesThread[{{1, -q}.#, {1, q}.#}&, {forecast, Sqrt[err]}]bands["ValueDimensions"]grids = Table[{1992, 12 i}, {i, data["PathLength"] + forecast["PathLength"]}];DateListPlot[{data, forecast, bands["PathComponent", 1], bands["PathComponent", 2]}, Filling -> {3 -> {4}}, AspectRatio -> 1 / 3, PlotStyle -> {Automatic, Automatic, Gray, Gray}, GridLines -> {grids, None}]医药销售和广告 (1)
以下的时间序列是美国医药专利所有人丽迪亚·平克汉姆的双季度的销售和广告. 平克汉姆开始制作蔬菜合剂作为家庭药物,并与她的邻居共享. 她的合剂是磨碎的药草混合,含有18%的酒精. 1875年平克汉姆家庭决定从商卖药,她声称她的药可医治从神经衰弱到子宫下垂的任何妇女疾病. 很快就获得认可,一年净收入将近39万美元. 直到20世纪20年代,当联邦药品和广告法规增加时,Lydia E. Pinkham Medicine Co. 同时降低医药的酒精含量和其疗效的声明:
sales = TemporalData[Automatic, {{{608, 451, 529, 543, 525, 549, 525, 578, 609, 504, 752, 613, 862, 866,
1016, 1360, 1482, 1608, 1800, 1941, 1229, 1373, 1611, 1568, 983, 1046, 1453, 1504, 807, 339,
562, 745, 749, 862, 1034, 1054, 1164, 1102, 1145 ... domestic sales and advertising of Lydia E,Pinkham Medicine,1907 to 1960",
"Source" -> "http://datamarket.com/data/set/22rf/annual-domestic-sales-and-advertising-of-lydi\
a-e-pinkham-medicine-1907-to-1960#!display=line&ds=22rf"}}}, True, 9.];sales["Source"]DateListPlot[sales, Filling -> Axis]salesModel = TimeSeriesModelFit[sales]Normal[salesModel]forecast = TimeSeriesForecast[salesModel, {2 * 5}]DateListPlot[{sales, forecast}, Filling -> Axis]可能存在的问题 (2)
data = TemporalData[TimeSeries, {{{Quantity[1.46376*^11, "USDollars"/"Months"],
Quantity[1.47079*^11, "USDollars"/"Months"], Quantity[1.59336*^11, "USDollars"/"Months"],
Quantity[1.63669*^11, "USDollars"/"Months"], Quantity[1.70068*^11, "USDolla ... 00, 3550089600, 3552768000, 3555446400, 3558038400, 3560716800, 3563308800,
3565987200, 3568665600, 3571084800, 3573763200, 3576355200, 3579033600, 3581625600}}}, 1,
{"Discrete", 1}, {"Discrete", 1}, 1, {ValueDimensions -> 1}}, True, 10.];data["Dates"] === TimeSeriesResample[data, "Month"]["Dates"]DateListPlot[data, Joined -> True]TemporalData 不知道数据是按月等间隔的:
RegularlySampledQ[data]按 28 天的最小时间增量自动重采样会导致季节参数变为 13:
MinimumTimeIncrement[data]TimeSeriesModelFit[data]告诉 TemporalData 对数据按常规处理:
dataR = TimeSeries[data, TemporalRegularity -> True];RegularlySampledQ[dataR]TimeSeriesModelFit[dataR]TimeSeriesModelFit 使用时刻方法估计候选过程的参数. 不同估计器的使用会导致不同的排名:
data = RandomFunction[MAProcess[{4 / 5, -4 / 5}, 1], {0, 1000}];tsm = TimeSeriesModelFit[data, {"MA", 2}, "IncludeConstantBasis" -> False]tsm["BestFit"]mle = EstimatedProcess[data, MAProcess[{b1, b2}, v], ProcessEstimator -> "MaximumLikelihood"]criteria = {"AIC", "BIC", "SBC", "AICc"};mleCrits = TimeSeriesModelFit[data, mle][criteria];
bestFitCrits = tsm[criteria];TableForm[{Style[#, Gray]& /@ bestFitCrits, Style[#, StandardGray]& /@ mleCrits}, TableHeadings -> {{"BestFit", "MLE"}, criteria}]文本
Wolfram Research (2014),TimeSeriesModelFit,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TimeSeriesModelFit.html.
CMS
Wolfram 语言. 2014. "TimeSeriesModelFit." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/TimeSeriesModelFit.html.
APA
Wolfram 语言. (2014). TimeSeriesModelFit. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/TimeSeriesModelFit.html 年
BibTeX
@misc{reference.wolfram_2026_timeseriesmodelfit, author="Wolfram Research", title="{TimeSeriesModelFit}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/TimeSeriesModelFit.html}", note=[Accessed: 31-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_timeseriesmodelfit, organization={Wolfram Research}, title={TimeSeriesModelFit}, year={2014}, url={https://reference.wolfram.com/language/ref/TimeSeriesModelFit.html}, note=[Accessed: 31-October-2026]}