ISmPooledModel.WeightedSummaryStatistics

Синтаксис Fore

WeightedSummaryStatistics: ISummaryStatistics;

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

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

Описание

Свойство WeightedSummaryStatistics возвращает взвешенные описательные статистики модели.

Комментарии

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

Пример Fore

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

Sub UserProc;
Var
    PooledModel: ISmPooledModel;
    yY: Array[62Of Double;
    x1x, x2x: Array[72Of Double;
    Constan: IIntercept;
    Status, i: Integer;
    d1,d2: Array Of Double;
Begin
    PooledModel := New SmPooledModel.Create;
    // Объясняемые значения
    yY[00] := 20;  yY[01] := 17;
    yY[10] := 7;   yY[11] := 28;
    yY[20] := -50; YY[21] := 21;
    yY[30] := 20;  yY[31] := 17;
    yY[40] := 25;  yY[41] := 7;
    yY[50] := -50; YY[51] := 0.1;
    PooledModel.Explained.Value := YY;
    // Объясняющие значения
    x1x[00] := 4;   x1x[01] := -1.5;
    x1x[10] := 0.5; x1x[11] := 5;
    x1x[20] := -2;  x1x[21] := 2.5;
    x1x[30] := 130; x1x[31] := 131;
    x1x[40] := 141; x1x[41] := 145;
    x1x[50] := 150; x1x[51] := 151;
    x1x[60] := 160; x1x[61] := 161;
    PooledModel.Explanatories.Add.Value := x1x;
    // Веса
    x2x[00] := 3;    x2x[01] := 0.5;
    x2x[10] := 6;    x2x[11] := 1;
    x2x[20] := 0.75; x2x[21] := 2;
    x2x[30] := 230;  x2x[31] := 231;
    x2x[40] := 240;  x2x[41] := 241;
    x2x[50] := 250;  x2x[51] := 251;
    x2x[60] := 260;  x2x[61] := 261;
    PooledModel.Weights := x2x;
    // Период идентификации
    PooledModel.ModelPeriod.FirstPoint := 1;
    PooledModel.ModelPeriod.LastPoint := 5;
    // Последняя точка прогноза
    PooledModel.Forecast.LastPoint := 7;
    // Веса
    PooledModel.GLSWeights := GLSWeightsType.PeriodWeights;
    // Тип модели
    PooledModel.CrossSection := PooledModelCrossSectionType.None;
    // Параметры коэффициентов модели
    Constan := PooledModel.ModelCoefficients.Intercept;
    Constan.Mode := InterceptMode.None;
    //Запускаем расчет
    Status := PooledModel.Execute;
    If Status = 0 Then
        Debug.WriteLine("=== Взвешенные описательные статистики ===");
        Debug.WriteLine(" Коэффициент детерминации: " + PooledModel.WeightedSummaryStatistics.R2.ToString);
        Debug.WriteLine(" Среднее остатков: " + PooledModel.WeightedSummaryStatistics.ME.ToString);
        Debug.WriteLine(" Стандартная ошибка: " + PooledModel.WeightedSummaryStatistics.SE.ToString );
        Debug.WriteLine(" Стандартное отклонение остатков: " + PooledModel.WeightedSummaryStatistics.SEE.ToString);
        Debug.WriteLine("=== Описательные статистики ===");
        Debug.WriteLine(" Коэффициент детерминации: " + PooledModel.SummaryStatistics.R2.ToString);
        Debug.WriteLine(" Среднее остатков: " + PooledModel.SummaryStatistics.ME.ToString);
        Debug.WriteLine(" Стандартная ошибка: " + PooledModel.SummaryStatistics.SE.ToString);
        Debug.WriteLine(" Стандартное отклонение остатков: " + PooledModel.SummaryStatistics.SEE.ToString);
        Debug.WriteLine("=== Остатки ===");
        For i := 0 To PooledModel.Residuals.GetUpperBound(1Do
            d1 := PooledModel.Residuals;
            d2 := PooledModel.Residuals;
            Debug.WriteLine(" " + d1[i,0].ToString + " " + d2[i,1].ToString);
        End For;
    End If;
End Sub UserProc;

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

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Stat;

Public Shared Sub Main(Params: StartParams);
Var
    PooledModel: ISmPooledModel;
    yY: Array[26Of Double;
    x1x, x2x: Array[27Of Double;
    Constan: IIntercept;
    Status, i: Integer;
    d1,d2: System.Array;
Begin
    PooledModel := New SmPooledModel.Create();
    // Объясняемые значения
    yY[00] := 20;   yY[10] := 17;
    yY[01] := 7;    yY[11] := 28;
    yY[02] := -50;  YY[12] := 21;
    yY[03] := 20;   yY[13] := 17;
    yY[04] := 25;   yY[14] := 7;
    yY[05] := -50;  YY[15] := 0.1;
    PooledModel.Explained.Value := YY;
    // Объясняющие значения
    x1x[00] := 4;    x1x[10] := -1.5;
    x1x[01] := 0.5;  x1x[11] := 5;
    x1x[02] := -2;   x1x[12] := 2.5;
    x1x[03] := 130;  x1x[13] := 131;
    x1x[04] := 141;  x1x[14] := 145;
    x1x[05] := 150;  x1x[15] := 151;
    x1x[06] := 160;  x1x[16] := 161;
    PooledModel.Explanatories.Add().Value := x1x;
    // Веса
    x2x[00] := 3;    x2x[10] := 0.5;
    x2x[01] := 6;    x2x[11] := 1;
    x2x[02] := 0.75; x2x[12] := 2;
    x2x[03] := 230;  x2x[13] := 231;
    x2x[04] := 240;  x2x[14] := 241;
    x2x[05] := 250;  x2x[15] := 251;
    x2x[06] := 260;  x2x[16] := 261;
    PooledModel.Weights := x2x;
    // Период идентификации
    PooledModel.ModelPeriod.FirstPoint := 1;
    PooledModel.ModelPeriod.LastPoint := 5;
    // Последняя точка прогноза
    PooledModel.Forecast.LastPoint := 7;
    // Тип весов
    PooledModel.GLSWeights := GLSWeightsType.glswtPeriodWeights;
    // Тип модели
    PooledModel.CrossSection := PooledModelCrossSectionType.pmcstNone;
    // Параметры коэффициентов модели
    Constan := PooledModel.ModelCoefficients.Intercept;
    Constan.Mode := InterceptMode.imNone;
    //Запускаем расчет
    Status := PooledModel.Execute();
    If Status = 0 Then
        System.Diagnostics.Debug.WriteLine("=== Взвешенные описательные статистики ===");
        System.Diagnostics.Debug.WriteLine(" Коэффициент детерминации: " + PooledModel.WeightedSummaryStatistics.R2.ToString());
        System.Diagnostics.Debug.WriteLine(" Среднее остатков: " + PooledModel.WeightedSummaryStatistics.ME.ToString());
        System.Diagnostics.Debug.WriteLine(" Стандартная ошибка: " + PooledModel.WeightedSummaryStatistics.SE.ToString() );
        System.Diagnostics.Debug.WriteLine(" Стандартное отклонение остатков: " + PooledModel.WeightedSummaryStatistics.SEE.ToString());
        System.Diagnostics.Debug.WriteLine("=== Описательные статистики ===");
        System.Diagnostics.Debug.WriteLine(" Коэффициент детерминации: " + PooledModel.SummaryStatistics.R2.ToString());
        System.Diagnostics.Debug.WriteLine(" Среднее остатков: " + PooledModel.SummaryStatistics.ME.ToString());
        System.Diagnostics.Debug.WriteLine(" Стандартная ошибка: " + PooledModel.SummaryStatistics.SE.ToString());
        System.Diagnostics.Debug.WriteLine(" Стандартное отклонение остатков: " + PooledModel.SummaryStatistics.SEE.ToString());
        System.Diagnostics.Debug.WriteLine("=== Остатки ===");
        For i := 0 To PooledModel.Residuals.GetUpperBound(1Do
            d1 := PooledModel.Residuals;
            d2 := PooledModel.Residuals;
            System.Diagnostics.Debug.WriteLine(" " + d1[0,i].ToString() + " " + d2[1,i].ToString());
        End For;
    End If;
End Sub;

См. также:

ISmPooledModel