Explained: ISlSerie;
Explained: Prognoz.Platform.Interop.Stat.ISlSerie;
The Explained property determines an explained series.
Use the ISmRedundantVariablesTest.Explanatories property to set explanatory series.
Add a link to the Stat system assembly.
Sub UserProc;
Var
rtest: SmRedundantVariablesTest;
d0: Double;
y, x, y1, y2: Array[43] Of Double;
ARMA: ISlARMA;
OrderList, redlist: Array[ 1] Of Integer;
res, i: Integer;
Begin
// Set values fornbsp;variables
y[00] := 6209; x[00] := 4110; y1[00] := 3415; y2[00] := 2822;
y[01] := 6385; x[01] := 4280; y1[01] := 3673; y2[01] := 3023;
y[02] := 6752; x[02] := 4459; y1[02] := 4013; y2[02] := 3131;
y[03] := 6837; x[03] := 4545; y1[03] := 4278; y2[03] := 3351;
y[ 04] := 6495; x[04] := 4664; y1[04] := 4577; y2[04] := 3463 ;
y[ 05] := 6907; x[05] := 4861; y1[05] := 5135; y2[05] := 3686 ;
y[ 06] := 7349; x[06] := 5195; y1[06] := 5388; y2[06] := 3815 ;
y[07] := 7213; x[07] := 5389; y1[07] := 5610; y2[07] := 3960;
y[ 08] := 7061; x[08] := 5463; y1[08] := 5787; y2[08] := 4119 ;
y[09] := 7180; x[09] := 5610; y1[09] := 6181; y2[09] := 4351;
y[10] := 7132; x[10] := 5948; y1[10] := 6633; y2[10] := 4641;
y[ 11] := 7137; x[11] := 6218; y1[11] := 6910; y2[11] := 5008 ;
y[ 12] := 7473; x[12] := 6521; y1[12] := 7146; y2[12] := 5305 ;
y[ 13] := 7722; x[13] := 6788; y1[13] := 7248; y2[13] := 5611 ;
y[ 14] := 8088; x[14] := 7222; y1[14] := 7689; y2[14] := 5693 ;
y[ 15] := 8516; x[15] := 7486; y1[15] := 8046; y2[15] := 5804 ;
y[ 16] := 8941; x[16] := 7832; y1[16] := 8143; y2[16] := 6121 ;
y[ 17] := 9064; x[17] := 8153; y1[17] := 8064; y2[17] := 6546 ;
y[ 18] := 9380; x[18] := 8468; y1[18] := 8556; y2[18] := 6918 ;
y[ 19] := Double.Nan; x[19] := 9054; y1[19] := 9177; y2[19] := 7349 ;
y[ 20] := 9907; x[20] := 9499; y1[20] := 9705; y2[20] := 7769 ;
y[ 21] := 10333; x[21] := 9866; y1[21] := 9923; y2[21] := 7809 ;
y[22] := 10863; x[22] := 10217; y1[22] := 10268; y2[22] := 7951;
y[ 23] := 11693; x[23] := 10763; y1[23] := 10681; y2[23] := 8395 ;
y[ 24] := 12242; x[24] := 10683; y1[24] := 10448; y2[24] := 8653 ;
y[ 25] := 12227; x[25] := 10494; y1[25] := 10366; y2[25] := 8304 ;
y[ 26] := 12910; x[26] := 10938; y1[26] := 10958; y2[26] := 8809 ;
y[ 27] := 13049; x[27] := 11198; y1[27] := 11292; y2[27] := 9028 ;
y[28] := 13384; x[28] := 11546; y1[28] := 11726; y2[28] := 9314;
y[ 29] := 14036; x[29] := 11865; y1[29] := 12172; y2[29] := 9820 ;
y[ 30] := Double.Nan; x[30] := 11781; y1[30] := 12058; y2[30] := 10246 ;
y[ 31] := 14704; x[31] := 11681; y1[31] := 11804; y2[31] := 10153 ;
y[ 32] := 13802; x[32] := 11903; y1[32] := 11682; y2[32] := 10197 ;
y[ 33] := 14197; x[33] := 11900; y1[33] := 12001; y2[33] := 10294 ;
y[ 34] := 15010; x[34] := 11986; y1[34] := 12300; y2[34] := 10555 ;
y[ 35] := 15589; x[35] := 12206; y1[35] := 12535; y2[35] := 10808 ;
y[ 36] := 15932; x[36] := 12734; y1[36] := 13173; y2[36] := 11318 ;
y[ 37] := 16631; x[37] := 12990; y1[37] := 13482; y2[37] := 11683 ;
y[ 38] := 17394; x[38] := 13516; y1[38] := 13945; y2[38] := 12153 ;
y[ 39] := 17758; x[39] := 13866; y1[39] := 14278; y2[39] := 12464 ;
y[ 40] := 17308; x[40] := 14141; y1[40] := 14840; y2[40] := 12782 ;
y[ 41] := Double.Nan; x[41] := 14141; y1[41] := 15263; y2[41] := 13066 ;
y[42] := 16413; x[42] := 14237; y1[42] := 15357; y2[42] := 13113;
rtest := New SmRedundantVariablesTest.Create;
// Set explained and explanatory variables
rtest.Explained.Value := y;
rtest.Explanatories.Add.Value := x;
rtest.Explanatories.Add.Value := y1;
rtest.Explanatories.Add.Value := y2;
// Set method of constant determination
rtest.ModelCoefficients.Intercept.Mode := InterceptMode.AutoEstimate;
// Set calculation periods
rtest.ModelPeriod.FirstPoint := 1 ;
rtest.ModelPeriod.LastPoint := 43 ;
// Set missing data treatment method
rtest.MissingData.Method := MissingDataMethod.LinTrend;
// Set moving average parameters
ARMA := rtest.ARMA;
OrderList[ 0] := 1 ;
ARMA.OrderMA := OrderList;
ARMA.CalcInitMode := ARMAInitType.Auto;
// Set redundant regressors
redlist[0] := 0 ;
rtest.RedundantExplanatories := redlist;
// Execute calculation and display results
res := rtest.Execute;
If res <> 0 Then
Debug.WriteLine(rtest.Errors);
Else
Debug.Indent;
Debug.WriteLine("Fisher test");
Debug.Unindent;
d0 := rtest.FTest.Statistic;
Debug.WriteLine("value: " + d0.ToString);
d0 := rtest.FTest.Probability;
Debug.WriteLine("probability: " + d0.ToString);
Debug.Indent;
Debug.WriteLine("Chi-square test");
Debug.Unindent;
d0 := rtest.ChiTest.Statistic;
Debug.WriteLine("value: " + d0.ToString);
d0 := rtest.ChiTest.Probability;
Debug.WriteLine("probability: " + d0.ToString);
Debug.Indent;
Debug.WriteLine("Modeling series");
Debug.Unindent;
For i := 0 To rtest.Fitted.Length - 1 Do
Debug.Write(i.ToString + ", " );
Debug.WriteLine(rtest.Fitted[i]);
End For;
Debug.Indent;
Debug.WriteLine("Residuals");
Debug.Unindent;
For i := 0 To rtest.Residuals.Length - 1 Do
Debug.Write(i.ToString + ", ");
Debug.WriteLine(rtest.Residuals[i]);
End For;
Debug.Indent;
Debug.WriteLine("Summary statistics");
Debug.Unindent;
d0 := rtest.SummaryStatistics.AIC;
Debug.WriteLine("Akaike criterion: " + d0.ToString);
d0 := rtest.SummaryStatistics.DW;
Debug.WriteLine("Durbin-Watson statistic: " + d0.ToString);
End If;
End Sub UserProc;
After executing the example the console window displays Fisher test and chi-square test calculation results, the modeling series, the residual series, and summary statistics.
The requirements and result of the Fore.NET example execution match with those in the Fore example.
Imports Prognoz.Platform.Interop.Stat;
…
Public Shared Sub Main(Params: StartParams);
Var
rtest: SmRedundantVariablesTest;
d0: Double;
y, x, y1, y2: Array[43] Of Double;
ARMA: ISlARMA;
OrderList, redlist: Array[1] Of Integer;
res, i: Integer;
Begin
// Set variable values
y[00] := 6209; x[00] := 4110; y1[00] := 3415; y2[00] := 2822;
y[01] := 6385; x[01] := 4280; y1[01] := 3673; y2[01] := 3023;
y[02] := 6752; x[02] := 4459; y1[02] := 4013; y2[02] := 3131;
y[03] := 6837; x[03] := 4545; y1[03] := 4278; y2[03] := 3351;
y[ 04] := 6495; x[04] := 4664; y1[04] := 4577; y2[04] := 3463 ;
y[ 05] := 6907; x[05] := 4861; y1[05] := 5135; y2[05] := 3686 ;
y[ 06] := 7349; x[06] := 5195; y1[06] := 5388; y2[06] := 3815 ;
y[07] := 7213; x[07] := 5389; y1[07] := 5610; y2[07] := 3960;
y[ 08] := 7061; x[08] := 5463; y1[08] := 5787; y2[08] := 4119 ;
y[09] := 7180; x[09] := 5610; y1[09] := 6181; y2[09] := 4351;
y[10] := 7132; x[10] := 5948; y1[10] := 6633; y2[10] := 4641;
y[ 11] := 7137; x[11] := 6218; y1[11] := 6910; y2[11] := 5008 ;
y[ 12] := 7473; x[12] := 6521; y1[12] := 7146; y2[12] := 5305 ;
y[ 13] := 7722; x[13] := 6788; y1[13] := 7248; y2[13] := 5611 ;
y[ 14] := 8088; x[14] := 7222; y1[14] := 7689; y2[14] := 5693 ;
y[ 15] := 8516; x[15] := 7486; y1[15] := 8046; y2[15] := 5804 ;
y[ 16] := 8941; x[16] := 7832; y1[16] := 8143; y2[16] := 6121 ;
y[ 17] := 9064; x[17] := 8153; y1[17] := 8064; y2[17] := 6546 ;
y[ 18] := 9380; x[18] := 8468; y1[18] := 8556; y2[18] := 6918 ;
y[ 19] := Double.Nan; x[19] := 9054; y1[19] := 9177; y2[19] := 7349 ;
y[ 20] := 9907; x[20] := 9499; y1[20] := 9705; y2[20] := 7769 ;
y[ 21] := 10333; x[21] := 9866; y1[21] := 9923; y2[21] := 7809 ;
y[22] := 10863; x[22] := 10217; y1[22] := 10268; y2[22] := 7951;
y[ 23] := 11693; x[23] := 10763; y1[23] := 10681; y2[23] := 8395 ;
y[ 24] := 12242; x[24] := 10683; y1[24] := 10448; y2[24] := 8653 ;
y[ 25] := 12227; x[25] := 10494; y1[25] := 10366; y2[25] := 8304 ;
y[ 26] := 12910; x[26] := 10938; y1[26] := 10958; y2[26] := 8809 ;
y[ 27] := 13049; x[27] := 11198; y1[27] := 11292; y2[27] := 9028 ;
y[28] := 13384; x[28] := 11546; y1[28] := 11726; y2[28] := 9314;
y[ 29] := 14036; x[29] := 11865; y1[29] := 12172; y2[29] := 9820 ;
y[ 30] := Double.Nan; x[30] := 11781; y1[30] := 12058; y2[30] := 10246 ;
y[ 31] := 14704; x[31] := 11681; y1[31] := 11804; y2[31] := 10153 ;
y[ 32] := 13802; x[32] := 11903; y1[32] := 11682; y2[32] := 10197 ;
y[ 33] := 14197; x[33] := 11900; y1[33] := 12001; y2[33] := 10294 ;
y[ 34] := 15010; x[34] := 11986; y1[34] := 12300; y2[34] := 10555 ;
y[ 35] := 15589; x[35] := 12206; y1[35] := 12535; y2[35] := 10808 ;
y[ 36] := 15932; x[36] := 12734; y1[36] := 13173; y2[36] := 11318 ;
y[ 37] := 16631; x[37] := 12990; y1[37] := 13482; y2[37] := 11683 ;
y[ 38] := 17394; x[38] := 13516; y1[38] := 13945; y2[38] := 12153 ;
y[ 39] := 17758; x[39] := 13866; y1[39] := 14278; y2[39] := 12464 ;
y[ 40] := 17308; x[40] := 14141; y1[40] := 14840; y2[40] := 12782 ;
y[ 41] := Double.Nan; x[41] := 14141; y1[41] := 15263; y2[41] := 13066 ;
y[42] := 16413; x[42] := 14237; y1[42] := 15357; y2[42] := 13113;
rtest := New SmRedundantVariablesTest.Create();
// Set explained and explanatory variables
rtest.Explained.Value := y;
rtest.Explanatories.Add().Value := x;
rtest.Explanatories.Add().Value := y1;
rtest.Explanatories.Add().Value := y2;
// Set method of constant determination
rtest.ModelCoefficients.Intercept.Mode := InterceptMode.imAutoEstimate;
// Set calculation periods
rtest.ModelPeriod.FirstPoint := 1;
rtest.ModelPeriod.LastPoint := 43;
// Select missing data treatment method
rtest.MissingData.Method := MissingDataMethod.mdmLinTrend;
// Set moving average parameters
ARMA := rtest.ARMA;
OrderList[0] := 1;
ARMA.OrderMA := OrderList;
ARMA.CalcInitMode := ARMAInitType.armaitAuto;
// Set redundant regressors
redlist[0] := 0;
rtest.RedundantExplanatories := redlist;
// Execute calculation and display results
res := rtest.Execute();
If res <> 0 Then
System.Diagnostics.Debug.WriteLine(rtest.Errors);
Else
System.Diagnostics.Debug.Indent();
System.Diagnostics.Debug.WriteLine("Fisher test");
System.Diagnostics.Debug.Unindent();
d0 := rtest.FTest.Statistic;
System.Diagnostics.Debug.WriteLine("value: " + d0.ToString());
d0 := rtest.FTest.Probability;
System.Diagnostics.Debug.WriteLine("probability: " + d0.ToString());
System.Diagnostics.Debug.Indent();
System.Diagnostics.Debug.WriteLine("Chi-square test");
System.Diagnostics.Debug.Unindent();
d0 := rtest.ChiTest.Statistic;
System.Diagnostics.Debug.WriteLine("value: " + d0.ToString());
d0 := rtest.ChiTest.Probability;
System.Diagnostics.Debug.WriteLine("probability: " + d0.ToString());
System.Diagnostics.Debug.Indent();
System.Diagnostics.Debug.WriteLine("Modeling series");
System.Diagnostics.Debug.Unindent();
For i := 0 To rtest.Fitted.Length - 1 Do
System.Diagnostics.Debug.Write(i.ToString() + ", ");
System.Diagnostics.Debug.WriteLine(rtest.Fitted.GetValue(i));
End For;
System.Diagnostics.Debug.Indent();
System.Diagnostics.Debug.WriteLine("Residuals");
System.Diagnostics.Debug.Unindent();
For i := 0 To rtest.Fitted.Length - 1 Do
System.Diagnostics.Debug.Write(i.ToString() + ", ");
System.Diagnostics.Debug.WriteLine(rtest.Residuals.GetValue(i));
End For;
System.Diagnostics.Debug.Indent();
System.Diagnostics.Debug.WriteLine("Summary statistics");
System.Diagnostics.Debug.Unindent();
d0 := rtest.SummaryStatistics.AIC;
System.Diagnostics.Debug.WriteLine("Akaike criterion: " + d0.ToString());
d0 := rtest.SummaryStatistics.DW;
System.Diagnostics.Debug.WriteLine("Durbin-Watson statistic: " + d0.ToString());
End If;
End Sub;
See also: