Логарифмическая регрессия в r (шаг за шагом)


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

Например, на следующем графике показан пример логарифмического распада:

Для такого типа ситуации взаимосвязь между переменной-предиктором и переменной ответа может быть хорошо смоделирована с использованием логарифмической регрессии.

Уравнение модели логарифмической регрессии имеет следующий вид:

у = а + б*ln(х)

Золото:

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

В следующем пошаговом примере показано, как выполнить логарифмическую регрессию в R.

Шаг 1. Создайте данные

Во-первых, давайте создадим поддельные данные для двух переменных: x и y :

 x=1:15

y=c(59, 50, 44, 38, 33, 28, 23, 20, 17, 15, 13, 12, 11, 10, 9.5)

Шаг 2. Визуализируйте данные

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

 plot(x, y) 

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

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

Шаг 3. Подберите модель логарифмической регрессии.

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

 #fit the model
model <- lm(y ~ log (x))

#view the output of the model
summary(model)

Call:
lm(formula = y ~ log(x))

Residuals:
   Min 1Q Median 3Q Max 
-4.069 -1.313 -0.260 1.127 3.122 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 63.0686 1.4090 44.76 1.25e-15 ***
log(x) -20.1987 0.7019 -28.78 3.70e-13 ***
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.054 on 13 degrees of freedom
Multiple R-squared: 0.9845, Adjusted R-squared: 0.9834 
F-statistic: 828.2 on 1 and 13 DF, p-value: 3.702e-13

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

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

у = 63,0686 – 20,1987 * ln(x)

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

у = 63,0686 – 20,1987 * ln(12) = 12,87

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

Шаг 4. Визуализация модели логарифмической регрессии

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

 #plot x vs. y
plot(x, y)

#define x-values to use for regression line
x=seq(from= 1 , to= 15 , length. out = 1000 )

#use the model to predict the y-values based on the x-values
y=predict(model,newdata=list(x=seq(from= 1 ,to= 15 ,length. out = 1000 )),
          interval=" confidence ")

#add the fitted regression line to the plot (lwd specifies the width of the line)
matlines(x,y, lwd= 2 )

Логарифмическая регрессия в R

Мы видим, что модель логарифмической регрессии хорошо подходит для этого конкретного набора данных.

Дополнительные ресурсы

Как выполнить простую линейную регрессию в R
Как выполнить множественную линейную регрессию в R
Как выполнить квадратичную регрессию в R
Как выполнить экспоненциальную регрессию в R
Как выполнить полиномиальную регрессию в R

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *