import numpy as np import pandas as pd import statsmodels.api as sm import seaborn import statsmodels.formula.api as smf import matplotlib.pyplot as plt pd .set_option('display.float_format', lambda x:'%.2f'%x) # Đọc dữ liệu data = pd.read_csv('ool.csv', low_memory=False) # Chuyển sang dữ liệu số data['W2_QG_2'] = pd.to_numeric(data['W2_QG_2'], errors='coerce') data['W2_WEIGHT1'] = pd.to_numeric(data['W2_WEIGHT1'], errors='coerce') data['W2_DURATION'] = pd.to_numeric(data['W2_DURATION'], errors='coerce') # Tinh chỉnh câu hỏi nghiên cứu sub1=data[(data['PPAGECT4'] >= 1) &(data['PPAGECT4'] <= 4) & (data['W2_QG_2']==1)] sub2 = data[['W2_WEIGHT1', 'W1_D1', 'W2_DURATION']].dropna() scat1 = seaborn.regplot(x="W1_D1", y="W2_WEIGHT1", scatter=True, data=sub1) scat1 = seaborn.regplot(x="W1_D1", y="W2_WEIGHT1", scatter=True, order=2, data=sub1) # Đồ thị plt.title('Đồ thị biểu diễn mô hình hồi quy đa thức') plt.xlabel('Tỷ lệ đánh giá tổng thống Barack Obama') plt.ylabel('Tổng số người trả lời sau khi phân tầng') plt.show() # Mô hình hồi quy đa thức print('Mô hình hồi quy đa thức với 2 biến') reg1 = smf.ols('W2_WEIGHT1 ~ W1_D1 + I(W1_D1**2) + W2_DURATION', data=sub1).fit() print (reg1.summary())