import pandas import statsmodels.api as sm import statsmodels.formula.api as smf import seaborn import matplotlib.pyplot as plt import matplotlib as mpl mpl.rcParams['figure.dpi'] = 100 pandas.set_option('display.float_format', lambda x:'%.2f'%x) # Đọc dữ liệu data = pandas.read_csv('LasVegas.csv', low_memory=False) # Tinh chỉnh câu hỏi nghiên cứu sub1=data[(data['Score']>=3) & (data['Score']<=5)] # Mã hóa biến phân loại theo kiểu nhị phân cho biến Gym recode1 = {"NO":0 ,"YES":1} sub1['Gym1']= sub1['Gym'].map(recode1) # Chuyển sang dữ liệu số sub1['Gym1'] = pandas.to_numeric(sub1['Gym1'], errors='coerce') # Canh chuẩn biến Score sub1['Score_c'] = (sub1['Score'] - sub1['Score'].mean()) # Canh chuẩn biến Nr. reviews sub1['Nrreviews_c'] = (sub1['Nrreviews'] - sub1['Nrreviews'].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('Score_c ~ Gym1 + Helpfulvotes + Nrreviews_c', data=sub1).fit() print (reg1.summary()) # Mô hình hồi quy đa thức print('Mô hình hồi quy đa thức với 2 biến') reg2 = smf.ols('Nrhotelreviews ~ Helpfulvotes + I(Helpfulvotes**2) + Nrreviews_c', data=sub1).fit() print (reg2.summary()) sub2 = data[['Nrhotelreviews', 'Helpfulvotes', 'Nrreviews']].dropna() scat1 = seaborn.regplot(x="Helpfulvotes", y="Nrreviews", scatter=True, data=sub1) scat1 = seaborn.regplot(x="Helpfulvotes", y="Nrreviews", 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('Phiếu bầu hữu ích') plt.ylabel('Tổng số Nr Reviews') plt.show()