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

Dodaj komentarz

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