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