DegreeOfFreedom: IVarianceAnalysisDegreeOfFreedom;
Свойство DegreeOfFreedom возвращает число степеней свободы.
Sub Main;
Var
VA: SmVarianceAnalysis;
res: Integer;
m: Array Of Double;
SS: IVarianceAnalysisSumSquared;
DF: IVarianceAnalysisDegreeOfFreedom;
UE: IVarianceAnalysisUnbiasedEstimation;
FS, FC, P: IVarianceAnalysisStatistics;
Begin
VA := New SmVarianceAnalysis.Create;
m := New Double[5, 3];
m[0, 0] := 1; m[0, 1] := 4; m[0, 2] := 1;
m[1, 0] := 2; m[1, 1] := 3; m[1, 2] := 2;
m[2, 0] := 3; m[2, 1] := 3; m[2, 2] := 1;
m[3, 0] := 4; m[3, 1] := 1; m[3, 2] := 2;
m[4, 0] := 5; m[4, 1] := 1; m[4, 2] := 1;
VA.Data := m;
VA.AnalysisType := VarianceAnalysisType.TwoFactor; // двухфакторный анализ
VA.ConfidenceLevel := 0.05;
res := VA.Execute;
If res <> 0 Then
Debug.WriteLine(VA.Errors);
Else
Debug.AssertMsg(False,"Результаты: ");
Debug.WriteLine("Сумма квадратов отклонений");
SS := VA.SumSquared;
Debug.WriteLine("строки : " + SS.Rows.ToString);
Debug.WriteLine("столбцы : " + SS.Columns.ToString);
Debug.WriteLine("погрешность : " + SS.Accuracy.ToString);
Debug.WriteLine("Итого: " + SS.Total.ToString);
Debug.WriteLine("=================================");
Debug.WriteLine("Число степеней свободы");
DF := VA.DegreeOfFreedom;
Debug.WriteLine("строки : " + DF.Rows.ToString);
Debug.WriteLine("столбцы : " + DF.Columns.ToString);
Debug.WriteLine("погрешность : " + DF.Accuracy.ToString);
Debug.WriteLine("итого: " + DF.Total.ToString);
Debug.WriteLine("=================================");
Debug.WriteLine("Несмещенная оценка суммы квадратов отклонений");
UE := VA.UnbiasedEstimation;
Debug.WriteLine("строки : " + UE.Rows.ToString);
Debug.WriteLine("столбцы : " + UE.Columns.ToString);
Debug.WriteLine("погрешность : " + UE.Accuracy.ToString);
Debug.WriteLine("=================================");
Debug.WriteLine("Значение статистики Фишера");
FS := VA.FisherStatistics;
Debug.WriteLine("строки : " + FS.Rows.ToString);
Debug.WriteLine("столбцы : " + FS.Columns.ToString);
Debug.AssertMsg(False,"=================================");
Debug.WriteLine("Критическое значение статистики Фишера");
FC := VA.FisherCritical;
Debug.WriteLine("строки : " + FC.Rows.ToString);
Debug.WriteLine("столбцы : " + FC.Columns.ToString);
Debug.WriteLine("=================================");
Debug.WriteLine("Вероятность");
P := VA.Probability;
Debug.WriteLine("строки : " + P.Rows.ToString);
Debug.WriteLine("столбцы : " + P.Columns.ToString);
If VA.VarianceEqualByRows Then
Debug.WriteLine("Fstat < Fcrit. Гипотеза о равенстве дисперсий фактора А (по строкам) принимается. Различие дисперсий незначимо");
Else
Debug.WriteLine("Fstat > Fcrit. Гипотеза о равенстве дисперсий фактора А (по строкам) отклоняется. Различие дисперсий значимо");
End If;
If VA.VarianceEqualByColumns Then
Debug.WriteLine("Fstat < Fcrit. Гипотеза о равенстве дисперсий фактора B (по столбцам) принимается. Различие дисперсий незначимо");
Else
Debug.WriteLine("Fstat > Fcrit. Гипотеза о равенстве дисперсий фактора B (по столбцам) отклоняется. Различие дисперсий значимо");
End If;
End If;
End Sub Main;
После выполнения примера в окно консоли будут выведены результаты дисперсионного анализа:
Module execution started
Результаты:
Сумма квадратов отклонений
строки: 0.26666666666666694
столбцы: 6.5333333333333341
погрешность: 18.133333333333297
Итого: 24.933333333333326
=================================
Число степеней свободы
строки: 4
столбцы: 2
погрешность: 8
итого: 14
=================================
Несмещенная оценка суммы квадратов отклонений
строки: 0.066666666666666735
столбцы: 3.2666666666666671
погрешность: 2.2666666666666622
=================================
Значение статистики Фишера
строки: 0.029411764705882443
столбцы: 1.4411764705882384
=================================
Критическое значение статистики Фишера
строки: 3.837853326929805
столбцы: 4.4589684100858102
=================================
Вероятность
строки: 0.99691358024691357
столбцы: 0.44880624426078908
Fstat < Fcrit. Гипотеза о равенстве дисперсий фактора А (по строкам) принимается. Различие дисперсий незначимо
Fstat < Fcrit. Гипотеза о равенстве дисперсий фактора B (по столбцам) принимается. Различие дисперсий незначимо
Module execution finished
См. также: