IStatistics.Trend

Синтаксис

Trend(KnownYs: Array; KnownXs: Array; NewXs: Array; HasConstant: Boolean): Array;

Параметры

KnownYs. Множество значений Y, которые уже известны в соотношении y=mx+b. Значения в массиве данных должны быть больше нуля. Если массив KnownYs имеет один столбец, то каждый столбец массива KnownXs интерпретируется как отдельная переменная. Если массив KnownYs имеет одну строку, то каждая строка массива KnownXs интерпретируется как отдельная переменная. Массив KnownXs может содержать одно или несколько множеств переменных. Если используется только одна переменная, то KnownYs и KnownXs могут иметь любую форму, при условии, что они имеют одинаковую размерность. Если используется более одной переменной, то KnownYs должен быть вектором (то есть интервалом высотой в одну строку или шириной в один столбец);.

KnownXs. Множество значений X, которые уже известны для соотношения y=mx+b;

NewXs. Новые значения X, для которых Trend возвращает соответствующие значения Y. NewXs должен содержать столбец (или строку) для каждой независимой переменной, как и KnownXs. Таким образом, если KnownYs. это один столбец, то KnownXs и NewXs должны иметь такое же количество столбцов. Если KnownYs - это одна строка, то KnownXs и NewXs должны иметь такое же количество строк;

HasConstant. Логическое значение, которое указывает, требуется ли, чтобы константа b была равна нулю:

Описание

Метод Trend возвращает значения в соответствии с линейным трендом. Аппроксимирует прямой линией (по методу наименьших квадратов) массивы KnownYs и KnownXs. Возвращает значения Y, в соответствии с этой прямой для заданного массива NewXs.

Пример

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

Sub UserProc;
Var
    st: Statistics;
    d0: Double;
    x, y, nx: Array Of Double;
    res: Array Of Double;
    i: Integer;
Begin
    y := New Double[12];
    x := New Double[12];
    nx := New Double[4];
    x[00] := 1; y[00] := 33100;
    x[01] := 2; y[01] := 47300;
    x[02] := 3; y[02] := 69000;
    x[03] := 4; y[03] := 102000;
    x[04] := 5; y[04] := 150000;
    x[05] := 6; y[05] := 220000;
    x[06] := 7; y[06] := 220100;
    x[07] := 8; y[07] := 247300;
    x[08] := 9; y[08] := 269000;
    x[09] := 10; y[09] := 270020;
    x[10] := 11; y[10] := 275210;
    x[11] := 12; y[11] := 276030;
    nx[0] := 13;
    nx[1] := 14;
    nx[2] := 15;
    nx[3] := 16;
    st := New Statistics.Create;
    res := st.Trend(y,x,x,True);
    Debug.WriteLine("Рассчитанные значения, соответствующие имеющимся значениям Y");
    For i := 0 To res.Length - 1 Do
        d0 := res[i];
        Debug.WriteLine(d0.ToString);
    End For;
    res := st.Trend(y,x,nx,True);
    Debug.WriteLine("Предсказываемые значения Y для новых значений X (nx)" );
    For i := 0 To 3 Do
        d0 := res[i];
        Debug.WriteLine(d0.ToString);
    End For;
End Sub UserProc;

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

Выполнение модуля начато

Рассчитанные значения, соответствующие имеющимся значениям Y

42019.8717948718

67395.9557109557

92772.0396270396

118148.123543124

143524.207459207

168900.291375291

194276.375291375

219652.459207459

245028.543123543

270404.627039627

295780.710955711

321156.794871795

Предсказываемые значения Y для новых значений X (nx)

346532.878787879

371908.962703963

397285.046620047

422661.130536131

Выполнение модуля завершено

См. также:

IStatistics