Как рассчитать лог-линейную регрессию в R?

Перегрузка функций в C++ Изучение

Логарифмическая регрессия — это своего рода регрессия, которая используется для моделирования ситуаций, в которых рост или спад сначала быстро ускоряются, а затем со временем замедляются. На графике ниже, например, показан пример логарифмического распада:

Связь между переменной-предиктором и переменной

Связь между переменной-предиктором и переменной-откликом может быть правильно описана в этом случае с использованием логарифмической регрессии. Уравнение модели логарифмической регрессии выглядит следующим образом:

огарифмической регрессии выглядит следующим образом

где :

  • y: Переменная ответа
  • x: Коэффициенты регрессии, которые характеризуют связь между x и y, являются предикторными переменными a, b.

Поэтапная реализация

Шаг 1: Соберите данные:

Для начала сгенерируем фиктивные данные для двух переменных: x и y:

R

x=2:16
 
y=c(69, 60, 44, 38, 33, 28, 23, 20, 
    17, 15, 13, 12, 11, 10, 9.5)

Шаг 2: Сделайте данные визуальными:

Давайте теперь сделаем короткую диаграмму рассеяния, чтобы показать взаимосвязь между x и y:

plot(x, y)

R

# Firstly we will fit the gfgModel
gfgModel <- lm(y ~ log(x))
 
# Now Let's Print the summary
summary(gfgModel)

Из рисунка видно, что между двумя переменными существует определенная закономерность логарифмического затухания. Значение переменной отклика y сначала быстро падает, а затем постепенно уменьшается со временем. В результате использование уравнения логарифмической регрессии для характеристики связи между переменными представляется достойным подходом.

Шаг 3: Создайте модель логарифмической регрессии:

Затем функция lm() будет использоваться для подгонки модели логарифмической регрессии с натуральным логарифмом x в качестве предиктора и y в качестве переменной отклика.

Call:

lm(formula = y ~ log(x))

Residuals:

Min     1Q Median     3Q    Max

-2.804 -1.972 -1.341  1.915  5.053

Coefficients:

Estimate Std. Error t value Pr(>|t|)

(Intercept)   87.591      2.462   35.58 2.43e-14 ***

log(x)       -29.713      1.155  -25.72 1.56e-12 ***

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.69 on 13 degrees of freedom

Multiple R-squared:  0.9807, Adjusted R-squared:  0.9792

F-statistic: 661.6 on 1 and 13 DF,  p-value: 1.557e-12

Общее F-значение модели составляет 828,2, а соответствующее значение p исключительно низкое (3,702e-13), что указывает на то, что модель в целом выгодна. Из коэффициентов в выходной таблице видно, что подобранное уравнение логарифмической регрессии:

y = 63.1686 – 20.1987 ln (x)

Основываясь на значении переменной предиктора x, мы можем использовать это уравнение для предсказания переменной респондента y. Например, если x равно 12, мы можем ожидать, что y равно 12,87:

y = 63.1686-20.1987 * ln(12) = 12.87

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

Читайте также:  Что такое GitHub Copilot? Программист AI Pair для всех

Шаг 4: Создайте визуальное представление модели логарифмической регрессии:

Наконец, мы можем построить данные, чтобы увидеть, насколько хорошо модель логарифмической регрессии соответствует данным:

R

# We will plot the x and y axis
plot(x, y)
 
# now to define the line, we do
x=seq(from=5,to=40,length.out=5000)
 
# use the gfgModel to predict the 
# y-values based on the x-values
y=predict(gfgModel,newdata=list(x=seq(
  from=5,to=40,length.out=5000)),
          interval="confidence")
 
# Here is the line
matlines(x,y, lwd=2)

Выход:

 

Оцените статью
bestprogrammer.ru
Добавить комментарий

Adblock
detector