ISmVarianceAnalysis.AnalysisType

Синтаксис Fore

AnalysisType: VarianceAnalysisType;

Синтаксис Fore.NET

AnalysisType: Prognoz.Platform.Interop.Stat.VarianceAnalysisType;

Описание

Свойство AnalysisType определяет тип дисперсионного анализа.

Пример Fore

Для выполнения примера добавьте ссылку на системную сборку «Stat».

Sub UserProc;
Var
    VA: ISmVarianceAnalysis;
    res: Integer;
    m: Array[53Of Double;
    SS: IVarianceAnalysisSumSquared;
    DF: IVarianceAnalysisDegreeOfFreedom;
    UE: IVarianceAnalysisUnbiasedEstimation;
    FS, FC, P: IVarianceAnalysisStatistics;
Begin
    VA := New SmVarianceAnalysis.Create;
    m[00] := 1; m[01] := 4; m[02] := 1;
    m[10] := 2; m[11] := 3; m[12] := 2;
    m[20] := 3; m[21] := 3; m[22] := 1;
    m[30] := 4; m[31] := 1; m[32] := 2;
    m[40] := 5; m[41] := 1; m[42] := 1;
    VA.Data := m;
    VA.AnalysisType := VarianceAnalysisType.SingleFactor; //однофакторный анализ
    VA.ConfidenceLevel := 0.05;
    res := VA.Execute;
    If res <> 0 Then
        Debug.WriteLine(VA.Errors);
    Else
        Debug.WriteLine("Результаты: ");
        Debug.WriteLine("Сумма квадратов отклонений");
        SS := VA.SumSquared;
        Debug.Indent;
        Debug.WriteLine("между группами: " + SS.BetweenGroup.ToString);
        Debug.WriteLine("внутри групп: " + SS.WithinGroup.ToString);
        Debug.WriteLine("итого: " + SS.Total.ToString);
        Debug.Unindent;
        Debug.WriteLine("Число степеней свободы");
        DF := VA.DegreeOfFreedom;
        Debug.Indent;
        Debug.WriteLine("между группами: " + DF.BetweenGroup.ToString);
        Debug.WriteLine("внутри групп: " + DF.WithinGroup.ToString);
        Debug.WriteLine("итого: " + DF.Total.ToString);
        Debug.Unindent;
        Debug.WriteLine("Несмещенная оценка суммы квадратов отклонений");
        UE := VA.UnbiasedEstimation;
        Debug.Indent;
        Debug.WriteLine("между группами: " + UE.BetweenGroup.ToString);
        Debug.WriteLine("внутри групп: " + UE.WithinGroup.ToString);
        Debug.Unindent;
        Debug.Write("Значение статистики Фишера: ");
        FS := VA.FisherStatistics;
        Debug.WriteLine(FS.OneFactorAnalysis.ToString);
        Debug.Write("Критическое значение статистики Фишера: ");
        FC := VA.FisherCritical;
        Debug.WriteLine(FC.OneFactorAnalysis.ToString);
        Debug.Write("Вероятность: ");
        P := VA.Probability;
        Debug.WriteLine(P.OneFactorAnalysis.ToString);
        If VA.VarianceEqualByRows Then
            Debug.WriteLine("Fstat < Fcrit. Гипотеза о равенстве групповых средних принимается");
        Else
            Debug.WriteLine("Fstat > Fcrit. Гипотеза о равенстве групповых средних отклоняется");
        End If;
    End If;
End Sub UserProc;

После выполнения примера в окно консоли будут выведены результаты дисперсионного анализа:

Сумма квадратов отклонений

    между группами: 0,266666666666667

    внутри групп: 24,6666666666667

    итого: 24,9333333333333

Число степеней свободы

    между группами: 4

    внутри групп: 10

    итого: 14

Несмещенная оценка суммы квадратов отклонений

    между группами: 0,0666666666666667

    внутри групп: 2,46666666666667

Значение статистики Фишера: 0,027027027027027

Критическое значение статистики Фишера: 3,47804969076512

Вероятность: 0,99833254475293

Fstat < Fcrit. Гипотеза о равенстве групповых средних принимается

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub Main(Params: StartParams);
Var
    VA: ISmVarianceAnalysis;
    res: Integer;
    m: Array[53Of Double;
    SS: IVarianceAnalysisSumSquared;
    DF: IVarianceAnalysisDegreeOfFreedom;
    UE: IVarianceAnalysisUnbiasedEstimation;
    FS, FC, P: IVarianceAnalysisStatistics;
Begin
    VA := New SmVarianceAnalysis.Create();
    m[00] := 1; m[01] := 4; m[02] := 1;
    m[10] := 2; m[11] := 3; m[12] := 2;
    m[20] := 3; m[21] := 3; m[22] := 1;
    m[30] := 4; m[31] := 1; m[32] := 2;
    m[40] := 5; m[41] := 1; m[42] := 1;
    VA.Data := m;
    VA.AnalysisType := VarianceAnalysisType.vaSingleFactor; //однофакторный анализ
    VA.ConfidenceLevel := 0.05;
    res := VA.Execute();
    If res <> 0 Then
        System.Diagnostics.Debug.WriteLine(VA.Errors);
    Else
        System.Diagnostics.Debug.WriteLine("Результаты: ");
        System.Diagnostics.Debug.WriteLine("Сумма квадратов отклонений");
        SS := VA.SumSquared;
        System.Diagnostics.Debug.Indent();
        System.Diagnostics.Debug.WriteLine("между группами: " + SS.BetweenGroup.ToString());
        System.Diagnostics.Debug.WriteLine("внутри групп: " + SS.WithinGroup.ToString());
        System.Diagnostics.Debug.WriteLine("итого: " + SS.Total.ToString());
        System.Diagnostics.Debug.Unindent();
        System.Diagnostics.Debug.WriteLine("Число степеней свободы");
        DF := VA.DegreeOfFreedom;
        System.Diagnostics.Debug.Indent();
        System.Diagnostics.Debug.WriteLine("между группами: " + DF.BetweenGroup.ToString());
        System.Diagnostics.Debug.WriteLine("внутри групп: " + DF.WithinGroup.ToString());
        System.Diagnostics.Debug.WriteLine("итого: " + DF.Total.ToString());
        System.Diagnostics.Debug.Unindent();
        System.Diagnostics.Debug.WriteLine("Несмещенная оценка суммы квадратов отклонений");
        UE := VA.UnbiasedEstimation;
        System.Diagnostics.Debug.Indent();
        System.Diagnostics.Debug.WriteLine("между группами: " + UE.BetweenGroup.ToString());
        System.Diagnostics.Debug.WriteLine("внутри групп: " + UE.WithinGroup.ToString());
        System.Diagnostics.Debug.Unindent();
        System.Diagnostics.Debug.Write("Значение статистики Фишера: ");
        FS := VA.FisherStatistics;
        System.Diagnostics.Debug.WriteLine(FS.OneFactorAnalysis.ToString());
        System.Diagnostics.Debug.Write("Критическое значение статистики Фишера: ");
        FC := VA.FisherCritical;
        System.Diagnostics.Debug.WriteLine(FC.OneFactorAnalysis.ToString());
        System.Diagnostics.Debug.Write("Вероятность: ");
        P := VA.Probability;
        System.Diagnostics.Debug.WriteLine(P.OneFactorAnalysis.ToString());
        If VA.VarianceEqualByRows Then
            System.Diagnostics.Debug.WriteLine("Fstat < Fcrit. Гипотеза о равенстве групповых средних принимается");
        Else
            System.Diagnostics.Debug.WriteLine("Fstat > Fcrit. Гипотеза о равенстве групповых средних отклоняется");
        End If;
    End If;
End Sub;

См. также:

ISmVarianceAnalysis