Как использовать функцию linest в vba (с примером)
Вы можете использовать метод LinEst в VBA, чтобы подогнать модель линейной регрессии.
Эта функция использует следующий базовый синтаксис:
LinEst(Arg1, Arg2, Arg3, Arg4)
Золото:
- Arg1 : Набор значений y.
- Arg2 : Набор значений x
- Arg3 (необязательно) : TRUE = обычный расчет перехвата, FALSE = принудительное обнуление перехвата.
- Arg4 (необязательно) : TRUE = вычислить дополнительную статистику регрессии, FALSE = вычислить только коэффициенты.
В следующем примере показано, как использовать метод LinEst для практической реализации модели регрессии в VBA.
Пример: как использовать функцию LinEst в VBA
Предположим, у нас есть следующий набор данных, который содержит переменную-предиктор (x) и переменную ответа (y):
Мы можем создать следующий макрос, который использует метод LinEst для подгонки простой модели линейной регрессии к этому набору данных:
Sub UseLinEst() Range(" D1:E1 ") = WorksheetFunction.LinEst(Range(" B2:B15 "), Range(" A2:A15 ")) End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Значения результата представляют собой коэффициенты регрессионной модели:
- Коэффициент при β 0 равен 3,52169 .
- Коэффициент для β1 равен 0,693717 .
Используя эти значения, мы можем написать уравнение для этой простой модели регрессии:
у = 3,52169 + 0,693717(х)
Мы интерпретируем это как означающее, что каждое дополнительное увеличение переменной-предиктора x на одну единицу связано со средним увеличением переменной отклика y на 0,693717 .
Мы интерпретируем исходный термин так, что когда x равен нулю, среднее значение y равно 3,52169 .
Если мы хотим использовать метод LinEst для получения дополнительной статистики регрессии, мы можем использовать следующий синтаксис:
Sub UseLinEst() Range(" D1:E5 ") = WorksheetFunction.LinEst(Range(" B2:B15 "), Range(" A2:A15 "), True, True) End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
На следующем снимке экрана показано объяснение каждого значения в результате:
Указав True последнему аргументу метода LinEst , мы можем вычислить несколько дополнительных статистических данных регрессии.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как классифицировать список значений
VBA: как рассчитать стандартное отклонение диапазона
VBA: Как рассчитать средневзвешенное значение