import numpy as np import pandas as pd import seaborn import scipy.stats as st import matplotlib.pyplot as plt import statsmodels.api as sm import statsmodels.formula.api as smf 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_J1_D'] = pd.to_numeric(data['W2_J1_D'], errors='coerce') # # Tinh chỉnh câu hỏi nghiên cứu sub1=data[(data['PPAGECAT'] >= 1) &(data['PPAGECAT'] <= 7)] # # bỏ các dữ liệu thiếu sub1['W2_J1_D']=sub1['W2_J1_D'].replace(-1, np.nan) # Mã hóa biến phân loại theo kiểu nhị phân 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') sub2 = sub1.copy() # 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") reg1 = smf.ols('W2_J1_D ~ SEX', data=sub2).fit() print (reg1.summary()) # Đồ thị seaborn.factorplot(x="SEX", y="W2_J1_D", data=sub2, kind="bar", ci=None) plt.xlabel('Giới tính') plt.ylabel('Thang điểm mối quan hệ đồng tính nữ') plt.title('Biểu đồ thể hiện mối liên hệ giữa giới tính và Thang điểm mối quan hệ đồng tính nữ') plt.show()