Phân tích hồi quy

Phân tích dữ liệu khảo sát bằng Python

EbunOluwa Andrew

Data Scientist

Phân tích hồi quy

  • Hiểu quan hệ giữa các biến
  • Dùng để dự đoán kết quả cụ thể
  • Đo lường ảnh hưởng của biến độc lập lên biến phụ thuộc
  • Dự báo cơ hội và rủi ro tương lai
  • Chuyển dữ liệu thô lớn thành thông tin hữu ích
  • Cung cấp cơ sở thực chứng cho quyết định

Mọi người cố gắng giữ mũi tên tài chính đi xuống

Phân tích dữ liệu khảo sát bằng Python

Hồi quy tuyến tính với phương pháp bình phương tối thiểu (OLS)

  • Mô hình hồi quy tuyến tính
    • Giả định quan hệ tuyến tính giữa x và y
    • y = m * x + b
    • Phương pháp Bình phương tối thiểu (OLS)
    • Sum((tính − quan sát)^2) => tối thiểu

https://seeing-theory.brown.edu/regression-analysis/index.html

1 https://seeing-theory.brown.edu/regression-analysis/index.html
Phân tích dữ liệu khảo sát bằng Python

Tải dữ liệu

import pandas as pd

import numpy as np
import matplotlib.pyplot as plt
import statsmodels.api as sm
exercise_data = pd.read_csv('workout_survey_data.csv') print(exercise_data.head())
| workout_minutes | calories_burned |
|-----------------|-----------------|
| 77              | 79.775152       |
| 21              | 23.177279       |
| 22              | 25.609262       |
| 20              | 17.857388       |
Phân tích dữ liệu khảo sát bằng Python

Định nghĩa biến

x = biến độc lập y = biến phụ thuộc

x = exercise_data.minutes.tolist()
y = exercise_data.calories.tolist() 
print(x,'\n',y)
| [77, 21, 22, 20, 36...           |
|----------------------------------|
| [79.7, 23.1, 25.6, 17.8, 41.8... |

Dữ liệu khảo sát

workout_minutes calories_burned
77 79.775152
21 23.177279
22 25.609262
20 17.857388
36 41.849864
Phân tích dữ liệu khảo sát bằng Python

Thêm hằng số

x = sm.add_constant(x)
print (x)
  • Yêu cầu mô hình ước lượng b

Phân tích dữ liệu khảo sát bằng Python

Chạy hồi quy và fit mô hình

result = sm.OLS(y,x).fit()
print(result.summary())

Phân tích dữ liệu khảo sát bằng Python

Lấy m và b

Phân tích dữ liệu khảo sát bằng Python

Vẽ các giá trị gốc

x = exercise_data.minutes.tolist()
y = exercise_data.calories.tolist()
plt.scatter(x,y)
plt.xlabel('minutes')
plt.ylabel('calories')
plt.show()

Phân tích dữ liệu khảo sát bằng Python

Vẽ đường hồi quy

max_x = exercise_data.minutes.max()
min_x = exercise_data.minutes.min()
x = np.arange(min_x, max_x, 1)

y = 1.0072*x + 0.1552
plt.plot(y, 'r') plt.show()

Phân tích dữ liệu khảo sát bằng Python

Dự đoán giá trị phản hồi

y = 1.0072 * 30 + 0.1552
print(y)
30.3712
Phân tích dữ liệu khảo sát bằng Python

Ưu và nhược điểm của hồi quy tuyến tính

  • Ưu điểm
    • Hiệu quả khi dữ liệu tách tuyến tính
  • Nhược điểm
    • Giả định tuyến tính cho trường hợp phi tuyến

Phân tích dữ liệu khảo sát bằng Python

Ayo berlatih!

Phân tích dữ liệu khảo sát bằng Python

Preparing Video For Download...