IStatistics.Logest

Синтаксис

Logest(
    KnownYs: Array;
    KnownXs: Array;
    HasConstant: Boolean;
    ReturnStatistics: Boolean): Array;

Параметры

KnownYs. Множество известных значений y;

KnownXs. Множество известных значений x;

HasConstant. Определяет, равна ли константа b единице. Допустимые значения:

ReturnStatistics. Определяет, возвращать ли дополнительные регрессионные статистики. Допустимые значения:

Описание

Метод Logest возвращает параметры экспоненциального тренда.

Комментарии

Метод вычисляет экспоненциальную кривую, аппроксимирующую данные, и возвращает массив значений, описывающий эту кривую.

Уравнение кривой: y = b * mx.

Если существует несколько значений x, где зависимые значения y являются функцией независимых значений x, то уравнение кривой имеет вид: y = b * m1x1 * m2x2.

Значения m являются основанием, возводимым в степень x, а значения b постоянны. y, x и m могут быть векторами.

Метод Logest возвращает массив: {mn;mn-1;…;m1;b}. Если вычисляются дополнительные регрессионные статистики, то Logest возвращает массив: {mn;mn-1;…;m1;b;sen;sen-1;…;se1;seb;r2;sey;F;df;ssreg;ssresid}.

Описание дополнительных регрессионных статистик приведено в разделе IStatistics.Linest.

На приведенном ниже рисунке показано, в каком порядке возвращается дополнительные регрессионные статистики:

Особенности работы с параметрами:

Пример

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

Sub UsesProcLogest;
Var
    st: Statistics;
    i: Integer;
    y, x, res: Array Of Double;
Begin
    // Задаём множество известных значений y
    y := New Double[4];
    y[0] := 0.2; y[2] := 5;
    y[1] := 9; y[3] := 7;
    // Задаём множество известных значений x
    x := New Double[42];
    x[00] := 1; x[01] := 5;
    x[10] := 2; x[11] := 6;
    x[20] := 3; x[21] := 7;
    x[30] := 4; x[31] := 8;
    // Вызываем метод
    st := New Statistics.Create;
    res := st.Logest(y, x, FalseTrue);
    // Выводим результаты в окно консоли
    Debug.WriteLine(st.Errors);
    If st.Status = 0 Then
        For i := 0 To 4 Do
            Debug.Write(res[i, 0].ToString + "; ");
            Debug.WriteLine(res[i, 1]);
        End For;
    End If;
End Sub UsesProcLogest;

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

См. также:

IStatistics