สร้างสมการ Multiple Linear Regression ด้วยแบบจำลองถดถอยตัวแปรหุ่น
กรณีที่ตัวแปรมีลักษณะเป็นตัวแปร “เชิงคุณภาพ” โดยธรรมชาติ ซึ่งข้อมูลประเภทนี้ไม่ได้มีความหมายเชิงคณิตศาสตร์ เช่น เพศ เชื้อชาติ ศาสนา สงคราม สัญชาติ การเปลี่ยนแปลงนโยบายการเงินของรัฐบาล การเปลี่ยนแปลงทางการเมือง เป็นต้น เพื่อที่จะสามารถนำมาวิเคราะห์ ได้ ตัวแปรเหล่านี้ต้องถูกกำหนดให้อยู่ในรูปของตัวเลขหรือเลขรหัส เช่น กำหนดให้ 1 คือเพศหญิง และ 0 คือเพศชาย เป็นต้น ตัวแปรดังกล่าวนี้เรียกว่า ตัวแปรหุ่น (Dummy Variable) ซึ่งคือ ตัวแปรที่ถูกกำหนดให้มี 2 ค่า (Binary) คือ 0 และ 1
ในวันนี้ เราอยากจะลองทำนาย ราคารถมือสอง ขึ้นกับ อายุ และ เลขไมล์สุดท้าย (ระยะทาง) หรือไม่??
กรณีของ regression model ตัวแปรทั้งหมด ต้องเป็น เชิงปริมาณ เท่านั้น หรือ ก็คือ ตัวเลข นั่นเอง ในปฏิบัติการนี้ ตัวแปรเดียวที่ไม่ใช่ตัวเลขคือ รุ่นรถยนต์ จึงจำเป็นต้องแปรให้อยู่ในรูปตัวเลข โดยใช้ ตัวแปรหุ่น (Dummy Variable)
ขั้นตอนที่ 1: การประกาศใช้งานไลบรารี่ pandas และตั้งชื่อย่อว่า pd ด้วยคำสั่ง import pandas as pd จากนั้นอ่านข้อมูลดาต้าเซ็ตด้วยคำสั่ง pd.read_csv() และแสดงผลตัวแปร df (data frame) ดังนี้
ขั้นตอนที่ 2: ไฟล์ th-carprices.csv ประกอบด้วยตัวแปรทั้งหมด 4 ชุด ได้แก่ รุ่นรถยนต์ ระยะทาง ราคาขาย และอายุการใช้งาน จะพบว่าตัวแปร รุ่นรถยนต์มีข้อมูลเป็นเชิงคุณภาพ ดังนั้น ในการนำไปใช้สร้างสมการรีเกรสชั่น จำเป็นต้องแปลงให้อยู่ในเชิงปริมาณโดยใช้ตัวแปร Dummy
ขั้นตอนที่ 3: ตัวแปร dummies ที่สร้างเสร็จแล้วสามารถนำมาต่อท้ายคอลัมน์และเก็บเอาไว้ในตัวแปร df ด้วยคำสั่ง concat() โดยนำข้อมูลจากตัวแปร df เดิม รวมกับกับ dummies และเขียนทับกลับไปยังตัวแปร df เหมือนเดิม ดังนั้น ตอนนี้ตัวแปร df จะมีข้อมูลจากเดิม 4 คอลัมน์และเพิ่มอีก 3 คอลัมน์ รวมเป็น 7 คอลัมน์ ดังนี้
ขั้นตอนที่ 4: ตัวแปร ราคาขาย เป็นตัวแปรตาม (independent variable) และเก็บในตัวแปรชื่อ y เขียนเป็นคำสั่งไพธอน คือ y=df[‘ราคาขาย’] ผลลัพธ์ แสดงได้ดังนี้
ขั้นตอนที่ 5: ตัวแปร X ถูกสร้างขึ้นมาเพื่อเก็บตัวแปรอิสระ (independent variable) ที่มีตัวแปร dummies รวมอยู่ด้วย โดยจะตัดเอาตัวแปรตามทิ้งไป นั่นคือลบแอตทริบิวส์ รุ่นรถยนต์และราคาขาย ทิ้งไปด้วยคำสั่ง X = df.drop([“รุ่นรถยนต์”,”ราคาขาย”],axis=’columns’) โดยกำหนดอาร์กิวเมนต์ axis เป็นแนวตั้ง หรือคอลัมน์ ผลลัพธ์ตัวแปร X แสดงได้ดังนี้
ในขั้นต่อไปเป็นการสร้างสมการ Multiple Linear Regression ด้วยไลบรารี่ Scikit-Learn โดยบรรทัดที่ 6 ประกาศขอใช้คลาส LinearRegression จากไลบรารี่ Scikit-Learn บรรทัดที่ 7 : เป็นการสร้างตัวแปร model เป็นอ็อบเจ็คของคลาส LinearRegression() เพื่อใช้สำหรับสร้างสมการลีเนียร์ในขั้นต่อไป
บรรทัดที่ 7 : คำสั่ง fit() เป็นการสร้างสมการทางคณิตศาสตร์ในตัวอย่างนี้ใช้ Multiple Linear Regression โดยป้อนตัวแปรอิสระ (X) และตัวแปรตาม (y) ลงในฟังก์ชั่น fit()
ขั้นตอนที่ 6: บรรทัดที่ 8 : คำสั่ง Score() ใช้สำหรับแสดงค่าสถิติ R-Squared ของสมการ โดยป้อนตัวแปรอิสระ (X) และตัวแปรตาม (y) ลงในฟังก์ชั่น score() ผลลัพธ์ที่ได้มีค่า 0.9417
บรรทัดที่ 9: ตัวแปร model.coef_ แสดงค่าสหสัมพันธ์ของ ระยะทาง , อายุ , รุ่น Audi A5 , รุ่น BMW X5 และ รุ่น Mercedez Benz มีค่าเท่ากับ [-3.70122094e-01, -1.33245363e+03, 6.10375284e+02, -3.67429130e+03, 3.06391602e+03]) ตามลำดับ