我想知道是否可以将时间序列预测图保留在图形生成器中。这样我的主管就可以轻松地了解未来的趋势,然后立即采取计划。我已经制作的图已对 x 进行了分组,因此它应该在一个图中显示几条预测线。
以下脚本是时间序列预测图:
Time Series(
X( :date ),
Y( :CD ),
ARIMA( 0, 1, 0 ),
SendToReport(
Dispatch(
{"Model: I(1) ", "Forecast"},
"Time Series Predicted Graph",
FrameBox,
{Frame Size( 659, 144 )}
)
)
);
时间序列预测似乎不像其他平台那么简单。为了解决这个问题我:
- 从平台保存时间序列脚本,然后将其拆分为单独的 Time Series() 和 Seasonal Arima() 函数。
- 将预测保存到新表中
- 将脚本复制回原始表
- 制作图

Names default to here( 1 );
//Open sample data
dt = Open( "$Sample_data/time series/co2.jmp" );
//Add rows to the original table
dt << Add rows( 12 );
//Calculate date for future rows
dt << New Column( "Year&Month Future",
Numeric,
"Continuous",
Formula(
If( Is Missing( :Name( "Year&Month" ) ),
Lag( :Name( "Year&Month Future" ), 1 ) + 1 / 24,
:Name( "Year&Month" )
)
)
);
//Open time series
ts = dt << Time Series( Y( :CO2 ) );
//Add Arima
ar = ts << Seasonal Arima( 1, 1, 0, 0, 1, 1, 12 );
//Make a new table with predications
dtArima = ar << Save Prediction Formula;
//Graph with predictions in a separate data table
dtArima << Graph Builder(
Size( 493, 303 ),
Show Control Panel( 0 ),
Variables(
X( :Row ),
Y( :Actual CO2 ),
Y( :Predicted CO2, Position( 1 ) ) ),
Elements(
Points( X, Y( 1 ),
Legend( 19 ) ),
Line( X, Y( 2 ),
Legend( 20 ) ) )
);
//Or add predictions to original table:
//Copy the prediction formula and replace the column name, then save it to the original
//data table
Eval( Parse(
"dt << " ||
Substitute(
Char((Column(dtArima, "CO2 Prediction Formula" ) << Get Script ) ),
":Actual ",
":"
)
) );
/*
//Close temporary windows
ts << Close Window
dtArima << Close Window;
*/
//Graph with predictions in the original table
dt << Graph Builder(
Size( 493, 303 ),
Show Control Panel( 0 ),
Variables(
X( :Name("Year&Month Future") ),
Y( :CO2 ),
Y( :CO2 Prediction Formula, Position( 1 ) ) ),
Elements(
Points( X, Y( 1 ),
Legend( 19 ) ),
Line( X, Y( 2 ),
Legend( 20 ) ) )
);