Regresja logarytmiczna w r (krok po kroku)


Regresja logarytmiczna to rodzaj regresji stosowanej do modelowania sytuacji, w których wzrost lub spadek początkowo gwałtownie przyspiesza, a następnie z czasem zwalnia.

Na przykład poniższy wykres przedstawia przykład rozpadu logarytmicznego:

W przypadku tego typu sytuacji związek między zmienną predykcyjną a zmienną odpowiedzi można dobrze modelować za pomocą regresji logarytmicznej.

Równanie modelu regresji logarytmicznej ma następującą postać:

y = a + b*ln(x)

Złoto:

  • y: zmienna odpowiedzi
  • x: zmienna predykcyjna
  • a, b: współczynniki regresji opisujące zależność pomiędzy x i y

Poniższy przykład pokazuje krok po kroku, jak przeprowadzić regresję logarytmiczną w R.

Krok 1: Utwórz dane

Najpierw utwórzmy fałszywe dane dla dwóch zmiennych: x i y :

 x=1:15

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

Krok 2: Wizualizuj dane

Następnie utwórzmy szybki wykres rozrzutu, aby zwizualizować relację między x i y :

 plot(x, y) 

Z wykresu widać, że pomiędzy dwiema zmiennymi istnieje wyraźny logarytmiczny wzór zaniku. Wartość zmiennej odpowiedzi y początkowo szybko maleje, a następnie z czasem maleje.

Dlatego rozsądne wydaje się dopasowanie równania regresji logarytmicznej do opisania zależności między zmiennymi.

Krok 3: Dopasuj model regresji logarytmicznej

Następnie użyjemy funkcji lm() , aby dopasować model regresji logarytmicznej, używając logarytmu naturalnego x jako zmiennej predykcyjnej i y jako zmiennej odpowiedzi.

 #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

Ogólna wartość F modelu wynosi 828,2, a odpowiadająca jej wartość p jest wyjątkowo niska (3,702e-13), co wskazuje, że model jako całość jest użyteczny.

Korzystając ze współczynników z tabeli wyników, możemy zobaczyć, że dopasowane równanie regresji logarytmicznej ma postać:

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

Możemy użyć tego równania do przewidzenia zmiennej odpowiedzi y w oparciu o wartość zmiennej predykcyjnej x . Na przykład, jeśli x = 12, przewidywalibyśmy, że y wyniesie 12,87 :

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

Bonus: Skorzystaj z internetowego kalkulatora regresji logarytmicznej, aby automatycznie obliczyć równanie regresji logarytmicznej dla danego predyktora i zmiennej odpowiedzi.

Krok 4: Wizualizuj model regresji logarytmicznej

Na koniec możemy stworzyć szybki wykres wizualizujący, jak dobrze model regresji logarytmicznej pasuje do danych:

 #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 )

Regresja logarytmiczna w R

Widzimy, że model regresji logarytmicznej dobrze dopasowuje ten konkretny zestaw danych.

Dodatkowe zasoby

Jak wykonać prostą regresję liniową w R
Jak wykonać wielokrotną regresję liniową w R
Jak wykonać regresję kwadratową w R
Jak przeprowadzić regresję wykładniczą w R
Jak wykonać regresję wielomianową w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *