การถดถอยลอการิทึมใน 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