วิธีการวิเคราะห์ bivariate ใน python: พร้อมตัวอย่าง


คำว่า การวิเคราะห์ไบวาเรียต หมายถึงการวิเคราะห์ตัวแปรสองตัว คุณสามารถจำสิ่งนี้ได้เพราะคำนำหน้า “bi” หมายถึง “สอง”

เป้าหมายของการวิเคราะห์ตัวแปรคู่คือการทำความเข้าใจความสัมพันธ์ระหว่างตัวแปรสองตัว

มีสามวิธีทั่วไปในการวิเคราะห์ตัวแปรคู่:

1. เมฆชี้

2. ค่าสัมประสิทธิ์สหสัมพันธ์

3. การถดถอยเชิงเส้นอย่างง่าย

ตัวอย่างต่อไปนี้แสดงวิธีดำเนินการวิเคราะห์ไบวาเรียตแต่ละประเภทใน Python โดยใช้ pandas DataFrame ต่อไปนี้ ซึ่งมีข้อมูลเกี่ยวกับตัวแปรสองตัว: (1) ชั่วโมงที่ใช้ในการศึกษา และ (2) คะแนนสอบที่ได้รับจากนักเรียนที่แตกต่างกัน 20 คน:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' hours ': [1, 1, 1, 2, 2, 2, 3, 3, 3, 3,
                             3, 4, 4, 5, 5, 6, 6, 6, 7, 8],
                   ' score ': [75, 66, 68, 74, 78, 72, 85, 82, 90, 82,
                             80, 88, 85, 90, 92, 94, 94, 88, 91, 96]})

#view first five rows of DataFrame
df. head ()

	hours score
0 1 75
1 1 66
2 1 68
3 2 74
4 2 78

1. เมฆชี้

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อสร้างแผนภูมิกระจายของชั่วโมงที่ศึกษาเทียบกับผลการสอบ:

 import matplotlib. pyplot as plt

#create scatterplot of hours vs. score
plt. scatter (df. hours , df. score )
plt. title (' Hours Studied vs. Exam Score ')
plt. xlabel (' Hours Studied ')
plt. ylabel (' Exam Score ')

แกน x แสดงชั่วโมงที่เรียน และแกน y แสดงเกรดที่ได้รับจากการสอบ

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

2. ค่าสัมประสิทธิ์สหสัมพันธ์

ค่าสัมประสิทธิ์สหสัมพันธ์แบบเพียร์สันเป็นวิธีหาปริมาณความสัมพันธ์เชิงเส้นระหว่างตัวแปรสองตัว

เราสามารถใช้ฟังก์ชัน corr() ใน pandas เพื่อสร้างเมทริกซ์สหสัมพันธ์:

 #create correlation matrix
df. corr ()

	hours score
hours 1.000000 0.891306
score 0.891306 1.000000

ค่าสัมประสิทธิ์สหสัมพันธ์กลายเป็น 0.891 . สิ่งนี้ บ่งชี้ถึงความสัมพันธ์เชิงบวกที่ชัดเจนระหว่างชั่วโมงเรียนกับเกรดการสอบ

3. การถดถอยเชิงเส้นอย่างง่าย

การถดถอยเชิงเส้นอย่างง่ายเป็นวิธีการทางสถิติที่เราสามารถใช้เพื่อหาปริมาณความสัมพันธ์ระหว่างตัวแปรสองตัว

เราสามารถใช้ฟังก์ชัน OLS() จากแพ็คเกจ statsmodels เพื่อให้พอดีกับ โมเดลการถดถอยเชิงเส้นอย่างง่าย สำหรับชั่วโมงที่ศึกษาและผลการสอบที่ได้รับ:

 import statsmodels. api as sm

#define response variable
y = df[' score ']

#define explanatory variable
x = df[[' hours ']]

#add constant to predictor variables
x = sm. add_constant (x)

#fit linear regression model
model = sm. OLS (y,x). fit ()

#view model summary
print ( model.summary ())

                            OLS Regression Results                            
==================================================== ============================
Dept. Variable: R-squared score: 0.794
Model: OLS Adj. R-squared: 0.783
Method: Least Squares F-statistic: 69.56
Date: Mon, 22 Nov 2021 Prob (F-statistic): 1.35e-07
Time: 16:15:52 Log-Likelihood: -55,886
No. Observations: 20 AIC: 115.8
Df Residuals: 18 BIC: 117.8
Model: 1                                         
Covariance Type: non-robust                                         
==================================================== ============================
                 coef std err t P>|t| [0.025 0.975]
-------------------------------------------------- ----------------------------
const 69.0734 1.965 35.149 0.000 64.945 73.202
hours 3.8471 0.461 8.340 0.000 2.878 4.816
==================================================== ============================
Omnibus: 0.171 Durbin-Watson: 1.404
Prob(Omnibus): 0.918 Jarque-Bera (JB): 0.177
Skew: 0.165 Prob(JB): 0.915
Kurtosis: 2.679 Cond. No. 9.37
==================================================== ============================

สมการถดถอยที่ติดตั้งไว้กลายเป็น:

คะแนนสอบ = 69.0734 + 3.8471*(ชั่วโมงเรียน)

สิ่งนี้บอกเราว่าแต่ละชั่วโมงที่เรียนเพิ่มเติมนั้นสัมพันธ์กับคะแนนสอบที่เพิ่มขึ้นโดยเฉลี่ย 3.8471

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

เช่น นักเรียนที่เรียน 3 ชั่วโมง ควรได้คะแนน 81.6147 :

  • คะแนนสอบ = 69.0734 + 3.8471*(ชั่วโมงเรียน)
  • คะแนนสอบ = 69.0734 + 3.8471*(3)
  • ผลสอบ = 81.6147

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

บทช่วยสอนต่อไปนี้ให้ข้อมูลเพิ่มเติมเกี่ยวกับการวิเคราะห์ตัวแปรคู่:

ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ไบวาเรียต
5 ตัวอย่างข้อมูลไบวาเรียตในชีวิตจริง
ความรู้เบื้องต้นเกี่ยวกับการถดถอยเชิงเส้นอย่างง่าย
ความรู้เบื้องต้นเกี่ยวกับสัมประสิทธิ์สหสัมพันธ์เพียร์สัน

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

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