ISmBinaryModel.SummaryStatistics

Синтаксис Fore

SummaryStatistics: ISummaryStatistics;

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

SummaryStatistics: Prognoz.Platform.Interop.Stat.ISummaryStatistics;

Описание

Свойство SummaryStatistics возвращает статистические характеристики.

Комментарии

Описательные статистики рассчитываются по общим формулам.

Пример Fore

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

Sub UserProc;
Var
    bm: SmBinaryModel;
    can: Array[
9Of Double;
    bin2: Array[
5Of Integer;
    i, res: Integer;
    Intercept: IIntercept;
    Explanatories: ISlSeries;
Begin
    bm := 
New SmBinaryModel.Create;
    
// Задаем значения объясняющего ряда
    can[00] := 6.209; can[05] := 5;
    can[
01] := 6.385; can[06] := 6;
    can[
02] := 6.29; can[07] := Double.Nan;
    can[
03] := 6.25; can[08] := 8;
    can[
04] := 6.1;
    
// Задаем значения объясняемого ряда
    bin2[00] := 1; bin2[03] := 0;
    bin2[
01] := 1; bin2[04] := 0;
    bin2[
02] := 0;
    
// Задаем значения первой и последней точек периода идентификации
    bm.ModelPeriod.FirstPoint := 1;
    bm.ModelPeriod.LastPoint := 
5;
    
// Задаем значение последней точки прогноза
    bm.Forecast.LastPoint := 9;
    
// Задаем метод обработки пропусков
    bm.MissingData.Method := MissingDataMethod.Casewise;
    
// Задаем тип модели
    bm.BinaryDistr := BinaryDistrType.Probit;
    
// Задаем значение деления на группы и точность
    bm.ClassificationCutOff := 0.5;
    bm.Tolerance := 
0.001;
    
// Задаем способ оценки константы
    Intercept := bm.ModelCoefficients.Intercept;
    Intercept.Mode := InterceptMode.AutoEstimate;
    
// Задаем объясняемый ряд
    bm.BinaryExplained := bin2;
    
// Задаем объясняющий ряд
    Explanatories := bm.Explanatories;
    Explanatories.Add.Value := can;
    
// Производим расчет и выводим сообщения об ошибках
    res:=bm.Execute;
    
// Выводим результаты расчетов
    If (res = 0Then
        Debug.WriteLine(
" === Модельный ряд ===");
        
For i := 0 To bm.Fitted.Length - 1 Do
            Debug.WriteLine(bm.Fitted[i])
        
End For;
        Debug.WriteLine(
" === Ряд остатков === ");
        
For i := 0 To bm.Residuals.Length - 1 Do
            Debug.WriteLine(bm.Residuals[i])
        
End For;
        Debug.WriteLine(
" === Описательные статистики === ");
        Debug.WriteLine(
"Коэффициент детерминации Макфаденна: "+bm.SummaryStatistics.McFaddenRsquared.ToString);
        Debug.WriteLine(
"Сумма квадратов остатков: "+bm.SummaryStatistics.SSR.ToString);
        Debug.WriteLine(
"Информационный критерий Акаике: "+bm.SummaryStatistics.AIC.ToString);
        Debug.WriteLine(
"Информационный критерий Шварца: "+bm.SummaryStatistics.SC.ToString);
        
Else
            Debug.WriteLine(bm.Errors);
    
End If
End Sub UserProc;

После выполнения примера в окно консоли будут выведены модельный ряд, ряд остатков и рассчитанные статистические характеристики.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub Main(Params: StartParams);
Var
    bm: SmBinaryModel;
    can: Array[9Of Double;
    bin2: Array[5Of Integer;
    i, res: Integer;
    Intercept: IIntercept;
    Explanatories: ISlSeries;
    Fitted, Residuals: System.Array;
Begin
    bm := New SmBinaryModel.Create();
    // Задаем значения объясняющего ряда
    can[00] := 6.209; can[05] := 5;
    can[01] := 6.385; can[06] := 6;
    can[02] := 6.29; can[07] := Double.Nan;
    can[03] := 6.25; can[08] := 8;
    can[04] := 6.1;
    // Задаем значения объясняемого ряда
    bin2[00] := 1; bin2[03] := 0;
    bin2[01] := 1; bin2[04] := 0;
    bin2[02] := 0;
    // Задаем значения первой и последней точек периода идентификации
    bm.ModelPeriod.FirstPoint := 1;
    bm.ModelPeriod.LastPoint := 5;
    // Задаем значение последней точки прогноза
    bm.Forecast.LastPoint := 9;
    // Задаем метод обработки пропусков
    bm.MissingData.Method := MissingDataMethod.mdmCasewise;
    // Задаем тип модели
    bm.BinaryDistr := BinaryDistrType.bdtProbit;
    // Задаем значение деления на группы и точность
    bm.ClassificationCutOff := 0.5;
    bm.Tolerance := 0.001;
    // Задаем способ оценки константы
    Intercept := bm.ModelCoefficients.Intercept;
    Intercept.Mode := InterceptMode.imAutoEstimate;
    // Задаем объясняемый ряд
    bm.BinaryExplained := bin2;
    // Задаем объясняющий ряд
    Explanatories := bm.Explanatories;
    Explanatories.Add().Value := can;
    // Производим расчет и выводим сообщения об ошибках
    res:=bm.Execute();
    // Выводим результаты расчетов
    If (res = 0Then
        System.Diagnostics.Debug.WriteLine(" === Модельный ряд ===");
        Fitted := bm.Fitted;
        For i := 0 To bm.Fitted.Length - 1 Do
            System.Diagnostics.Debug.WriteLine(Fitted[i])
        End For;
        System.Diagnostics.Debug.WriteLine(" === Ряд остатков === ");
        Residuals := bm.Residuals;
        For i := 0 To bm.Residuals.Length - 1 Do
            System.Diagnostics.Debug.WriteLine(Residuals[i])
        End For;
        System.Diagnostics.Debug.WriteLine(" === Описательные статистики === ");
        System.Diagnostics.Debug.WriteLine("Коэффициент детерминации Макфаденна: "+bm.SummaryStatistics.McFaddenRsquared.ToString());
        System.Diagnostics.Debug.WriteLine("Сумма квадратов остатков: "+bm.SummaryStatistics.SSR.ToString());
        System.Diagnostics.Debug.WriteLine("Информационный критерий Акаике: "+bm.SummaryStatistics.AIC.ToString());
        System.Diagnostics.Debug.WriteLine("Информационный критерий Шварца: "+bm.SummaryStatistics.SC.ToString());
        Else
            System.Diagnostics.Debug.WriteLine(bm.Errors);
    End If;
End Sub;

См. также:

ISmBinaryModel