Logaritmische regressie in python (stap voor stap)
Logaritmische regressie is een soort regressie die wordt gebruikt om situaties te modelleren waarin de groei of achteruitgang eerst snel versnelt en vervolgens in de loop van de tijd vertraagt.
De volgende grafiek toont bijvoorbeeld een voorbeeld van logaritmisch verval:
Voor dit soort situaties zou de relatie tussen een voorspellende variabele en eenresponsvariabele goed kunnen worden gemodelleerd met behulp van logaritmische regressie.
De vergelijking voor een logaritmisch regressiemodel heeft de volgende vorm:
y = a + b*ln(x)
Goud:
- y: de responsvariabele
- x: de voorspellende variabele
- a, b: de regressiecoëfficiënten die de relatie tussen x en y beschrijven
Het volgende stapsgewijze voorbeeld laat zien hoe u logaritmische regressie in Python uitvoert.
Stap 1: Creëer de gegevens
Laten we eerst valse gegevens maken voor twee variabelen: x en 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])
Stap 2: Visualiseer de gegevens
Laten we vervolgens een snelle spreidingsdiagram maken om de relatie tussen x en y te visualiseren:
import matplotlib. pyplot as plt plt. scatter (x,y) plt. show ()
Uit de grafiek kunnen we zien dat er een logaritmisch vervalpatroon bestaat tussen de twee variabelen. De waarde van de responsvariabele y neemt eerst snel af en vertraagt vervolgens in de loop van de tijd.
Het lijkt daarom verstandig om een logaritmische regressievergelijking toe te passen om de relatie tussen de variabelen te beschrijven.
Stap 3: Pas het logaritmische regressiemodel aan
Vervolgens zullen we de functie polyfit() gebruiken om een logaritmisch regressiemodel te fitten, waarbij we de natuurlijke logaritme van x als voorspellende variabele en y als responsvariabele gebruiken:
#fit the model fit = np. polyfit (np. log (x), y, 1) #view the output of the model print(fit) [-20.19869943 63.06859979]
We kunnen de coëfficiënten uit het resultaat gebruiken om de volgende aangepaste logaritmische regressievergelijking te schrijven:
y = 63,0686 – 20,1987 * ln(x)
We kunnen deze vergelijking gebruiken om de responsvariabele, y , te voorspellen op basis van de waarde van de voorspellende variabele, x . Als x = 12, dan voorspellen we bijvoorbeeld dat y 12,87 zou zijn:
y = 63,0686 – 20,1987 * ln(12) = 12,87
Bonus: voel je vrij om deze online logaritmische regressiecalculator te gebruiken om automatisch de logaritmische regressievergelijking voor een bepaalde voorspeller en responsvariabele te berekenen.
Aanvullende bronnen
Een complete gids voor lineaire regressie in Python
Exponentiële regressie uitvoeren in Python
Hoe logistieke regressie uit te voeren in Python