ChiTest: ISpecificationTestStatistic;
ChiTest: Prognoz.Platform.Interop.Stat.ISpecificationTestStatistic;
Свойство ChiTest возвращает значения статистики хи-квадрат.
Для выполнения примера добавьте ссылку на системную сборку «Stat».
Sub userRESSET;
Var
RESSET: SmRamseyRESSETTest;
d0: Double;
res, i: Integer;
y, y0, y1, y2: Array[9] Of Double;
v: Array Of Double;
Begin
// Значения y, y0, y1, y2
y[0] := 6209; y0[0] := 4110; y1[0] := 3415; y2[0] := 2822;
y[1] := 6385; y0[1] := 4280; y1[1] := 3673; y2[1] := 3023;
y[2] := 6752; y0[2] := 4459; y1[2] := 4013; y2[2] := 3131;
y[3] := Double.Nan; y0[3] := 4545; y1[3] := 4278; y2[3] := 3351;
y[4] := 6495; y0[4] := 4664; y1[4] := 4577; y2[4] := 3463;
y[5] := 6907; y0[5] := 4861; y1[5] := 5135; y2[5] := 3686;
y[6] := 7349; y0[6] := 5195; y1[6] := 5388; y2[6] := 3815;
y[7] := Double.Nan; y0[7] := 5389; y1[7] := 5610; y2[7] := 3960;
y[8] := 7061; y0[8] := 5463; y1[8] := 5787; y2[8] := 4119;
RESSET := New SmRamseyRESSETTest.Create;
// Задаем объясняемый и объясняющие ряды
RESSET.Explained.Value := y;
RESSET.Explanatories.Add.Value := y0;
RESSET.Explanatories.Add.Value := y1;
RESSET.Explanatories.Add.Value := y2;
// Задаем периоды расчёта
RESSET.ModelPeriod.FirstPoint := 1;
RESSET.ModelPeriod.LastPoint := 9;
// Задаем метод обработки пропущенных данных
RESSET.MissingData.Method := MissingDataMethod.LinTrend;
// Задаем порядок автрегрессии
RESSET.ARMA.ParseAR("1");
// Задаем способ вычисления константы
RESSET.ModelCoefficients.Intercept.Mode := InterceptMode.AutoEstimate;
// Задаем число дополнительных регрессоров
RESSET.Power := 1;
// Выполняем расчёт и выводим результаты
res := RESSET.Execute;
If res <> 0 Then
Debug.WriteLine(RESSET.Errors);
Else
Debug.WriteLine("=== Тест Фишера ===");
d0 := RESSET.FTest.Statistic;
Debug.WriteLine("значение: " + d0.ToString);
d0 := RESSET.FTest.Probability;
Debug.WriteLine("вероятность: " + d0.ToString);
Debug.WriteLine("=== Тест хи-квадрат ===");
d0 := RESSET.ChiTest.Statistic;
Debug.WriteLine("значение: " + d0.ToString);
d0 := RESSET.ChiTest.Probability;
Debug.WriteLine("вероятность: " + d0.ToString);
Debug.WriteLine("== Коэффициенты модели ==");
v := RESSET.ModelCoefficients.Coefficients.Estimate;
For i := 0 To v.Length - 1 Do
Debug.Write(i.ToString + ", ");
Debug.WriteLine(v[i]);
End For;
Debug.WriteLine("== Константа ==");
d0 := RESSET.ModelCoefficients.Intercept.Estimate;
Debug.WriteLine(d0.ToString);
End If;
End Sub userRESSET;
Результат выполнения примера: в окно консоли будут выведены результаты расчетов теста.
Imports Prognoz.Platform.Interop.Stat;
…
Sub userRESSET();
Var
RESSET: SmRamseyRESSETTest;
d0: Double;
res, i: Integer;
y, y0, y1, y2: Array[9] Of Double;
v: Array;
Begin
// Значения y, y0, y1, y2
y[0] := 6209; y0[0] := 4110; y1[0] := 3415; y2[0] := 2822;
y[1] := 6385; y0[1] := 4280; y1[1] := 3673; y2[1] := 3023;
y[2] := 6752; y0[2] := 4459; y1[2] := 4013; y2[2] := 3131;
y[3] := Double.Nan; y0[3] := 4545; y1[3] := 4278; y2[3] := 3351;
y[4] := 6495; y0[4] := 4664; y1[4] := 4577; y2[4] := 3463;
y[5] := 6907; y0[5] := 4861; y1[5] := 5135; y2[5] := 3686;
y[6] := 7349; y0[6] := 5195; y1[6] := 5388; y2[6] := 3815;
y[7] := Double.Nan; y0[7] := 5389; y1[7] := 5610; y2[7] := 3960;
y[8] := 7061; y0[8] := 5463; y1[8] := 5787; y2[8] := 4119;
RESSET := New SmRamseyRESSETTest.Create();
// Задаем объясняемый и объясняющие ряды
RESSET.Explained.Value := y;
RESSET.Explanatories.Add().Value := y0;
RESSET.Explanatories.Add().Value := y1;
RESSET.Explanatories.Add().Value := y2;
// Задаем периоды расчёта
RESSET.ModelPeriod.FirstPoint := 1;
RESSET.ModelPeriod.LastPoint := 9;
// Задаем метод обработки пропущенных данных
RESSET.MissingData.Method := MissingDataMethod.mdmLinTrend;
// Задаем порядок авторегрессии
RESSET.ARMA.ParseAR("1", True);
// Задаем способ вычисления константы
RESSET.ModelCoefficients.Intercept.Mode := InterceptMode.imAutoEstimate;
// Задаем число дополнительных регрессоров
RESSET.Power := 1;
// Выполняем расчёт и выводим результаты
res := RESSET.Execute();
If res <> 0 Then
System.Diagnostics.Debug.WriteLine(RESSET.Errors);
Else
System.Diagnostics.Debug.WriteLine("=== Тест Фишера ===");
d0 := RESSET.FTest.Statistic;
System.Diagnostics.Debug.WriteLine("значение: " + d0.ToString());
d0 := RESSET.FTest.Probability;
System.Diagnostics.Debug.WriteLine("вероятность: " + d0.ToString());
System.Diagnostics.Debug.WriteLine("=== Тест хи-квадрат ===");
d0 := RESSET.ChiTest.Statistic;
System.Diagnostics.Debug.WriteLine("значение: " + d0.ToString());
d0 := RESSET.ChiTest.Probability;
System.Diagnostics.Debug.WriteLine("вероятность: " + d0.ToString());
System.Diagnostics.Debug.WriteLine("== Коэффициенты модели ==");
v := RESSET.ModelCoefficients.Coefficients.Estimate;
For i := 0 To v.Length - 1 Do
System.Diagnostics.Debug.Write(i.ToString() + ", ");
System.Diagnostics.Debug.WriteLine(v.GetValue(i));
End For;
System.Diagnostics.Debug.WriteLine("== Константа ==");
d0 := RESSET.ModelCoefficients.Intercept.Estimate;
System.Diagnostics.Debug.WriteLine(d0.ToString());
End If;
End Sub userRESSET;
Результат выполнения примера: в окно консоли будут выведены результаты расчетов теста.
См. также: