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['W1_P17A'] = pd.to_numeric(data['W1_P17A'], 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)] # Mã hóa biến phân loại theo kiểu nhị phân cho biến PGENDER recode1 = {1: 0, 2: 1} # Đặt tên mới cho biến vừa mã hóa sub1['SEX'] = sub1['PPGENDER'].map(recode1) sub1['SEX'] = pd.to_numeric(sub1['SEX'], errors='coerce') # Canh chuẩn biến PPHHSIZE sub1['PPHHSIZE_C'] = (sub1['PPHHSIZE'] - sub1['PPHHSIZE'].mean()) # Canh chuẩn biến W1_P17A sub1['W1_P17A_C'] = (sub1['W1_P17A'] - sub1['W1_P17A'].mean()) # Phân tích print('Phân tích hồi quy với biến giải thích là phân loại và biến phản hồi là định lượng') print('Thêm 1 biến ẩn định lượng vào') reg1 = smf.ols('W1_N1J ~ SEX + W1_P17A_C + PPHHSIZE_C', data=sub1).fit() print (reg1.summary())