IMsPooledModelTransform.PairCorrelationMatrix

Синтаксис

PairCorrelationMatrix(Calculation: IMsMethodCalculation; Coord: IMsFormulaTransformCoord): Array;

Параметры

Calculation. Параметры расчета модели;

Coord. Срез моделируемой переменной, для которого осуществляется расчет.

Описание

Свойство PairCorrelationMatrix возвращает матрицу корреляции факторов модели.

Комментарии

Coord и Calculation не могут принимать значение Null.

Корреляционная матрица является трехмерным массивом вещественных чисел. Размерность первого измерения совпадает с размерностью объясняемой переменной.

Пример

Для выполнения примера предполагается наличие в репозитории контейнера моделирования с идентификатором OBJ_MS. В данном контейнере должна присутствовать модель с идентификатором MODEL, использующая для расчета метод регрессии на панельных данных.

Добавьте ссылки на системные сборки: Metabase, Ms, Stat.

    Sub UserProc;
    Var
        MB: IMetabase;
        MsKey: Integer;
        MObj: IMetabaseObject;
        Model: IMsModel;
        Trans: IMsFormulaTransform;
        VarTrans: IMsFormulaTransformVariable;
        Formula: IMsFormula;
        PooledModel: IMsPooledModelTransform;
        Calc: IMsModelCalculation;
        CalcMethod: IMsMethodCalculation;
        Coord: IMsFormulaTransformCoord;
        CorrelationMatrix: Array Of Double;
        i, j, k: integer;
        Explanded: IMsFormulaTermSet;
    Begin
        MB := MetabaseClass.Active;
        MsKey := Mb.ItemById("OBJ_MS").Key;
        MObj := MB.ItemByIdNamespace("MODEL", MsKey).Bind;
        Model := MObj As IMsModel;
        Trans := Model.Transform;
        VarTrans := Trans.Outputs.Item(0);
        Formula := Trans.FormulaItem(0);
        PooledModel := Formula.Method As IMsPooledModelTransform;
        Calc := Model.CreateCalculation;
        Calc.Period.IdentificationStartDate := DateTime.ComposeDay(20000101);
        Calc.Period.IdentificationEndDate := DateTime.ComposeDay(20061231);
        Calc.Period.ForecastStartDate := DateTime.ComposeDay(20070101);
        Calc.Period.ForecastEndDate := DateTime.ComposeDay(20101231);
        Coord := Trans.CreateCoord(VarTrans);
        CalcMethod := Calc As IMsMethodCalculation;
    //идентификация уравнения
        PooledModel.Identify(CalcMethod, Coord);
        Explanded := PooledModel.Explained;
    //получаем рассчитанные коэффициенты
        CorrelationMatrix := PooledModel.PairCorrelationMatrix(CalcMethod, Coord);
        For i := 0 To CorrelationMatrix.GetUpperBound(1Do
            Debug.WriteLine(Explanded.Item(i).TermToText);
            For j := 0 To CorrelationMatrix.GetUpperBound(2Do
                For k := 0 To CorrelationMatrix.GetUpperBound(3Do
                    Debug.Write(String.Format("{0,6:F}", CorrelationMatrix[i, j, k].ToString));
                End For;
                Debug.WriteLine("");
            End For;
        End For;
    End Sub UserProc;

После выполнения примера в окно консоли будут выведены коэффициенты корреляции факторов для каждого среза объясняемой переменной модели.

См. также:

IMsPooledModelTransform