การถดถอยลอการิทึมใน python (ทีละขั้นตอน)


การถดถอยแบบลอการิทึม เป็นการถดถอยประเภทหนึ่งที่ใช้จำลองสถานการณ์ที่การเติบโตหรือการลดลงเร่งความเร็วอย่างรวดเร็วในช่วงแรก จากนั้นจึงช้าลงเมื่อเวลาผ่านไป

ตัวอย่างเช่น กราฟต่อไปนี้แสดงตัวอย่างการสลายตัวของลอการิทึม:

สำหรับสถานการณ์ประเภทนี้ ความสัมพันธ์ระหว่างตัวแปรทำนายและ ตัวแปรตอบสนอง สามารถสร้างแบบจำลองได้ดีโดยใช้การถดถอยแบบลอการิทึม

สมการสำหรับแบบจำลองการถดถอยลอการิทึมมีรูปแบบดังต่อไปนี้:

y = ก + b*ln(x)

ทอง:

  • y: ตัวแปรตอบสนอง
  • x: ตัวแปรทำนาย
  • a, b: สัมประสิทธิ์การถดถอยซึ่งอธิบายความสัมพันธ์ระหว่าง x และ y

ตัวอย่างทีละขั้นตอนต่อไปนี้แสดงวิธีการถดถอยลอการิทึมใน Python

ขั้นตอนที่ 1: สร้างข้อมูล

ขั้นแรก เรามาสร้างข้อมูลปลอมสำหรับตัวแปรสองตัวกันก่อน: x และ 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])

ขั้นตอนที่ 2: แสดงภาพข้อมูล

ต่อไป เรามาสร้างแผนภาพกระจายอย่างรวดเร็วเพื่อให้เห็นภาพความสัมพันธ์ระหว่าง x และ y :

 import matplotlib. pyplot as plt

plt. scatter (x,y)
plt. show () 

จากกราฟเราจะเห็นได้ว่ามีรูปแบบการสลายตัวแบบลอการิทึมระหว่างตัวแปรทั้งสอง ค่าของตัวแปรตอบสนอง y ลดลงอย่างรวดเร็วในช่วงแรก จากนั้นจึงช้าลงเมื่อเวลาผ่านไป

ดังนั้นจึงเป็นการดีที่จะปรับสมการการถดถอยลอการิทึมเพื่ออธิบายความสัมพันธ์ระหว่างตัวแปรต่างๆ

ขั้นตอนที่ 3: ปรับแบบจำลองการถดถอยลอการิทึม

ต่อไป เราจะใช้ฟังก์ชัน polyfit() เพื่อให้พอดีกับแบบจำลองการถดถอยลอการิทึม โดยใช้ลอการิทึมธรรมชาติของ x เป็นตัวแปรทำนาย และ y เป็นตัวแปรตอบสนอง:

 #fit the model
fit = np. polyfit (np. log (x), y, 1)

#view the output of the model
print(fit)

[-20.19869943 63.06859979]

เราสามารถใช้สัมประสิทธิ์จากผลลัพธ์เพื่อเขียนสมการการถดถอยลอการิทึมที่ปรับแล้วต่อไปนี้:

y = 63.0686 – 20.1987 * ln(x)

เราสามารถใช้สมการนี้เพื่อทำนายตัวแปรตอบสนอง y ตามค่าของตัวแปรทำนาย x ตัวอย่างเช่น ถ้า x = 12 เราจะคาดการณ์ว่า y จะเป็น 12.87 :

y = 63.0686 – 20.1987 * ln(12) = 12.87

โบนัส: คุณสามารถใช้เครื่องคำนวณการถดถอยลอการิทึมออนไลน์นี้เพื่อคำนวณสมการการถดถอยลอการิทึมสำหรับตัวแปรทำนายและตัวแปรตอบสนองที่กำหนดโดยอัตโนมัติ

แหล่งข้อมูลเพิ่มเติม

คู่มือฉบับสมบูรณ์เกี่ยวกับการถดถอยเชิงเส้นใน Python
วิธีการดำเนินการถดถอยเอ็กซ์โปเนนเชียลใน Python
วิธีการดำเนินการถดถอยโลจิสติกใน Python

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *