Логарифмічна регресія в r (покроково)


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

Наприклад, наступний графік показує приклад логарифмічного розпаду:

Для такого типу ситуації зв’язок між змінною-прогностикою та змінною відповіді можна добре змоделювати за допомогою логарифмічної регресії.

Рівняння для моделі логарифмічної регресії має такий вигляд:

y = a + b*ln(x)

золото:

  • 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), що вказує на те, що модель в цілому корисна.

Використовуючи коефіцієнти з вихідної таблиці, ми можемо побачити, що підігнане рівняння логарифмічної регресії таке:

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

Ми можемо використати це рівняння для прогнозування змінної відповіді y на основі значення змінної предиктора x . Наприклад, якщо x = 12, ми передбачимо, що y дорівнюватиме 12,87 :

y = 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *