Regresja logarytmiczna w pythonie (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ą azmienną 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 Pythonie.
Krok 1: Utwórz dane
Najpierw utwórzmy fałszywe dane dla dwóch zmiennych: x i y :
import numpy as np x = np. arange (1, 16, 1) y = np. array ([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 :
import matplotlib. pyplot as plt plt. scatter (x,y) plt. show ()
Z wykresu widzimy, że pomiędzy dwiema zmiennymi występuje 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 Polyfit() , aby dopasować model regresji logarytmicznej, używając logarytmu naturalnego x jako zmiennej predykcyjnej i y jako zmiennej odpowiedzi:
#fit the model fit = np. polyfit (np. log (x), y, 1) #view the output of the model print(fit) [-20.19869943 63.06859979]
Możemy wykorzystać współczynniki z wyniku do napisania następującego skorygowanego równania regresji logarytmicznej:
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
Premia: Skorzystaj z internetowego kalkulatora regresji logarytmicznej, aby automatycznie obliczyć równanie regresji logarytmicznej dla danego predyktora i zmiennej odpowiedzi.
Dodatkowe zasoby
Kompletny przewodnik po regresji liniowej w Pythonie
Jak przeprowadzić regresję wykładniczą w Pythonie
Jak przeprowadzić regresję logistyczną w Pythonie