Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.05 MB, 43 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><small>Tập dữ liệu này chứa thông tin về một cửa hàng điện tử trực tuyến. Cửa hàng có ba kho để giao hàng cho khách hàng.</small>
<small>Cột Mơ tả</small>
<small>• order_id: ID duy nhất cho mỗi đơn hàng• customer_id: Id duy nhất cho mỗi khách hàng</small>
<small>• ngày: Ngày đặt hàng, được đưa ra ở định dạng YYYY-MM-DD</small>
<small>• Near_warehouse: Một chuỗi biểu thị tên của kho gần nhất với kho khách hàng</small>
<small>• shopping_cart: Danh sách các bộ đại diện cho các mục trong đơn hàng: phần tử đầu tiên của bộ dữ liệu là mục được sắp xếp và phần tử thứ hai là số lượng đặt hàng cho mặt hàng đó.• order_price: biểu thị giá USD. Giá đặt hàng là giá của các mặt hàng trước khi có bất kỳ khoản giảm giá và/hoặc phí giao hàng nào được áp dụng.</small>
<small>• Delivery_charges: Phí giao hàng của đơn hàng• customer_lat: Vĩ độ vị trí của khách hàng• customer_long: Kinh độ vị trí của khách hàng</small>
<small>• coupon_discount: Một số ngun biểu thị phần trăm giảm giá được áp dụng chođơn_giá.</small>
<small>• order_total: Biểu thị tổng số đơn đặt hàng tính bằng USD giảm giá và/hoặc phí giao hàng được áp dụng.</small>
<small>• Season: Một chuỗi biểu thị mùa mà đơn hàng được đặt.</small>
<small>• is_expedited_delivery: Một boolean biểu thị liệu khách hàng có yêu cầu hay không việc chuyểnphát nhanh. </small>
<small>3</small>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><small>• distance_to_nearest_warehouse: biểu thị khoảng cách, tính bằng km, giữakhách hàng và kho hàng gần nhất với họ.</small>
<small>• lastest_customer_review: Một chuỗi đại diện cho đánh giá mới nhất của khách hàng về anh ấy/cô ấy với đơn hàng gần đây nhất</small>
<small>• is_happy_customer: Một giá trị boolean biểu thị liệu khách hàng có hài lịng hay khơng hoặc khách hàng gặp vấn đề với đơn hàng gần đây nhất của họ</small>
<small>Yêu cầu thực hiện thực hiện:</small>
<small>1. Sử dụng tập dữ liệu này để thực hiện các phương pháp EDA đồ họa và/hoặc phi đồ họa để hiểu dữ liệu trước, sau đó tìm và khắc phục các vấn đề về dữ liệu.</small>
<small>2. Phát hiện và sửa lỗi trong dirty_data.csv3. Gán các giá trị còn thiếu trong thiếu_data.csv4. Phát hiện và loại bỏ các bất thường</small>
<small>5. Xây dựng mơ hình hồi quy phù hợp dự đốn các biến mong muốn. </small>
<small>Tên biếnLoại dữ liệuÝ nghĩaOrder_price</small> {<small>x ∈ N</small>|<small>585≤ x ≤ 947691Giá tiền mặc định( giá </small>
<small>này chưa bao gồm phí giao hàng và giảm giá)</small>
<small>4</small>
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5"><small>Delivery_charges</small> {<small>x ∈ N</small>|<small>46.35 ≤ x ≤114. 04Phí giao hàngCustomer_lat</small> {<small>x ∈ N</small>|<small>−37.83≤ x ≤37.83Kinh độ vị trí khách </small>
<small>Customer_long</small> {<small>x ∈ N</small>|<small>144.9≤ x ≤ 145Vĩ độ vị trí khách hàngCoupon_discount</small> {<small>x ∈ N</small>|<small>0 ≤ x ≤25Mã giảm giáOrder_total</small> {<small>x ∈ N</small>|<small>639 ≤ x ≤ 5688270Giá tiền cuối cùng </small>
<small>is_happy_customerx=0 hay x=1Hàm biểu thị khách hàng có vui hay không</small>
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">1. Định nghĩa: Phân tích hồi quy là một kỹ thuật thống kê toán học dùng để ước lượng và kiểm tra các mối quan hệ giữa các biến ngẫu nhiên, từ đó có thể đưa ra các dự đoán. Các mối quan hệ này được biểu diễn dưới dạng các hàm số hoặc phương trình.
Mục tiêu là chọn hàm và các tham số sao cho sai số là nhỏ nhất có thể.
Ý tưởng chung như sau: giả sử ta có một biến ngẫu nhiên Y , mà ta muốn ước
X1, . . . , XS khác (control variables), hay còn gọi là biến tự do, trong khi Y được gọi là biến phụ thuộc, tức là khi ta có các giá trị của X<small>1</small>, . . . , XS , thì ta muốn từ đó ước lượng được giá trị của Y . Hàm số F này có thể phụ thuộc vào một số tham số β = (β , . . . , β ) nào đó. Ta có thể viết Y như sau:<small>1</small> S Y = F(X , . . . , X ) + <small>1</small> S ϵ
F một cách thích hợp nhất có thể, và các tham số β, sao cho sai số là nhỏϵ nhất có thể.
Đại lượng √𝔼(| |𝜖<small>2</small> được gọi là sai số chuẩn (standard error) của mơ hình hồi quy. Mơ hình nào mà có sai số chuẩn càng thấp thì được coi là càng chính xác
2. Bản chất:
a. Biến phụ thuộc Y: Giả định là biến ngẫu nhiên, có thể được đo lường bằng một trong bốn thước đo:
<small>6</small>
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">1) Tỉ lệ (ratio scale): Một thang đo tỉ lệ có 3 tính chất: tỷ số giữa 2 biến, khoảng cách giữa 2 biến và xếp hạng các biến
2) Khoảng (interval scale): Thang đo khoảng khơng thõa mãn tính chất đầu tiên của thang đo tỉ lệ
3) Thứ bậc (ordinal scale) : Các biến chỉ thỏa mãn tính chất xếp hạng của thang đo tỷ lệ, chứ việc lập tỉ số hay khoảng cách giữa hai giá trị khơng có ý nghĩa
4) Danh nghĩa (nominal scale): Các nhóm thuộc nhóm này khơng thõa mãn bất kì tính chất nào của các biến theo thang đo tỉ lệ
b. Biến ngẫu nhiên X: Có thể được đo theo bất kỳ một trong bốn thang đo trên.
c. Sai số ngẫu nhiên: Đại diện cho tất cả các biến khơng được đưa vào mơ hình vì các lý do như khơng có sẵn dữ liệu, lỗi đo lường.
d. Tham số hồi quy: Là những con số cố định và không ngẫu nhiên. 3. Ý nghĩa của hồi quy tuyến tính: Tuyến tính trong mơ hình hồi quy tuyến
tính nghĩa là tuyến tính ở các hệ số hồi quy, khơng phải tuyến tính ở các biến Y và X.
Dưới đây là một số ví dụ về hồi quy tuyến tính:
Dự đốn giá nhà: Trong ví dụ này, chúng ta sẽ thử nghiệm việc cài đặt mơ hình hồi quy tuyến tính thơng qua việc dự đốn giá nhà. Chúng ta tạo tập hợp các cặp (diện tích nhà, giá nhà) từ dữ liệu đã biết, sau đó sử dụng mơ hình để dự đốn giá của một căn nhà có diện tích cho trước.
Dự đốn cân nặng: Một ví dụ đơn giản khác của hồi quy là dự đoán cân nặng của một người khi biết chiều cao của người đó.
Dự đốn giá đất: Một ví dụ khác về mơ hình hóa mối quan hệ giữa thời gian, giá và diện tích để dự đốn giá đất trong tương lai gần.
Mơ hình hồi quy bội là mơ hình hồi quy trong đó biến phụ thuộc Y phụ thuộc vào (k – 1) biến độc lập X2, X3, …, Xk. Mơ hình này được biểu diễn dưới dạng một hàm hồi quy tổng thể và mơ hình hồi quy tổng thể, trong đó có một phần sai số ngẫu nhiên.
<small>7</small>
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">Trong đó:
y là biến phụ thuộc x1,x2,...,xn là biến độc lập
β0,β1,β2,...,βn là các hệ số hồi quy, thể hiện mức độ ảnh hưởng của biến độc lập lên biến phụ thuộc
là sai số ngẫu nhiên, thể hiện sự khác biệt giữa giá trị thực tế và giá trị dự ϵ
đoán của biến phụ thuộc
Hệ số <small>j</small> > 0: khi đó mối quan hệ giữa Y và X<small>j</small> là thuận chiều, nghĩa là khi X<small>j</small> tăng (hoặc giảm) trong điều kiện các biến độc lập khác khơng đổi thì Y cũng sẽ tăng (hoặc giảm).
Hệ số <small>j</small> < 0: khi đó mối quan hệ giữa Y và X<small>j</small> là ngược chiều, nghĩa là khi
thì Y sẽ giảm (hoặc tăng).
sự ảnh hưởng tới Y.
Giả thiết thứ nhất: Ước lượng được thực hiện dựa trên một mẫu ngẫu nhiên.
Giả thiết thứ hai: Kỳ vọng của sai số ngẫu nhiên tại mỗi giá trị (X2i, X3i, …, Xki) là 0, tức là E(u | X2i, X3i, …, Xki) = 0.
Giả thiết thứ ba: Phương sai của sai số ngẫu nhiên tại các giá trị (X2i, X3i, …, Xki) đều bằng nhau. Từ giả thiết thứ hai và ba, ta có thể kết luận rằng sai số ngẫu nhiên (u) tuân theo phân phối chuẩn.
Giả thiết thứ tư: Khơng có quan hệ cộng tuyến hồn hảo giữa các biến độc lập Xj, tức là không tồn tại hằng số λ2, λ3, …, λk không đồng thời bằng 0 sao cho: λ2X2 + λ3X3 + … + λkXk = 0. Nếu giữa các biến Xj (j = 2, 3, …, k) có quan hệ cộng tuyến hồn hảo thì sẽ có ít nhất một trong các biến này sẽ suy ra được từ các biến còn lại. Do đó, giả thiết thứ tư được
<small>8</small>
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">Sau khi xây dựng và tìm hiểu ý nghĩa của các hệ số hồi quy trong mơ hình, vấn đề tiếp theo ta quan tâm là làm sao để có được các ước lượng đáng tin cậy cho các hệ số j này. Cũng như với mơ hình hồi quy hai biến, ta sẽ sử dụng phương pháp bình phương nhỏ nhất (OLS) để ước lượng các hệ số trong mơ hình hồi quy k biến.
Xét mơ hình k biến: Y = + X + X + … + <small>12233k</small>X<small>k</small> +
Giả sử có một mẫu quan sát với giá trị thực tế là (Y , X , …, X ) với (i= 1, 2, …, n).<small>i2iki</small>
Ta sẽ sử dụng thông tin từ mẫu để xây dựng các ước lượng cho các hệ số (j = 1, 2,<small>j</small>
…, k), ký hiệu là j (j = 1, 2, …, k). Từ các giá trị ước lượng này có thể viết thành hàm hồi quy mẫu như sau:
j=1 +2X +3X +…+kX<small>23k</small>
Tại mỗi quan sát i, hàm hồi quy mẫu được viết thành: i=1+2X +3X +…+kX<small>2i 3i k</small>
Tương tự như mơ hình hồi quy hai biến, phương pháp OLS nhằm xác định các giá trị <small>j</small> (j = 1, 2, …, k) sao cho tổng bình phương các phần dư là bé nhất: Khi đó, các giá trị = 1 + 2 + 3 +…+ k sẽ là nghiệm của hệ gồm k phương trình sau:
Dưới điều kiện số quan sát trong mẫu lớn hơn số hệ số hồi quy cần ước lượng và giả thiết thứ 4 được thỏa mãn, hệ phương trình sẽ có nghiệm duy nhất. Việc giải hệ phương trình có thể được thực hiện dễ dàng bằng các phần mềm thống kê nếu số biến không quá lớn.
<small>9</small>
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Đối với mơ hình hồi quy bội (hồi quy nhiều biến), việc giải hệ phương trình để tìm các ước lượng hệ số sẽ trở nên khó khăn hơn so với mơ hình hồi quy 2 biến. Do đó, ta sẽ cần sự giúp đỡ của các phần mềm thống kê.
Từ kết quả ước lượng từ phương pháp OLS, ta có thể khai thác các thơng tin để đánh giá tác động của biến độc lập đối với sự thay đổi của biến phụ thuộc thông qua ý nghĩa các hệ số hồi quy.
Khi các giả thiết từ 1 đến 4 thỏa mãn, các ước lượng thu được từ phương pháp OLS là ước lượng tuyến tính, khơng chệch và có phương sai nhỏ nhất trong lớp các ước lượng tuyến tính khơng chệch. Nói cách khác, nếu giả thiết từ 1 đến 4 được thỏa mãn thì ước lượng OLS là ước lượng tốt nhất trong lớp các ước lượng tuyến tính không chệch.
Đánh giá mức độ phù hợp của mơ hình hồi quy bội có thể được thực hiện thơng qua một số tiêu chí sau:
R bình phương (R Square) và R bình phương hiệu chỉnh (Adjusted R
tiêu chí này chỉ so sánh và đánh giá được các mô hình có: (1) biến phụ thuộc
và MSE là hai tiêu chí sử dụng phổ biến hơn . Một giá trị MSE (hoặc<small>1</small>
RMSE) càng bé thì có nghĩa là những giá trị ước lượng của Y sẽ càng sát với giá trị thực và do đó, một mơ hình có MSE (RMSE) bé hơn sẽ là một mơ hình tốt hơn .<small>1</small>
quy tuyến tính bội phù hợp với tập dữ liệu và có thể sử dụng được .<small>2</small>
các kí hiệu các bạn đã quen thuộc, tiêu chuẩn thông tin Akaike (AIC) được
Lưu ý rằng, khơng có một tiêu chí nào là hồn hảo và mỗi tiêu chí đều có nhược điểm của riêng nó. Do đó, việc lựa chọn tiêu chí phù hợp để đánh giá mơ hình phụ thuộc vào mục tiêu và bối cảnh cụ thể của nghiên cứu
<small>10</small>
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">Loại bỏ outlier
Đầu tiên ta dùng hàm IQR để tính IQR= 16.5725, tiếp theo ta tính giá trị biên trên= Q3 + 1.5*IQR=107 và biên dưới= Q1 + 1.5*IQR= 41.1. Sau đó ta loại bỏ các giá trị lớn hơn 107 và bé hơn 41.1.
Boxplot sau khi đã loại bỏ outlier so với chưa loại bỏ:
<small>22</small>
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">Tương tự như trên ta tính cho biến total_price, IQR=13310, giá trị biên trên= 40325 và giá trị biên dưới là -12915. Boxplot:
<small>23</small>
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">Hoặc ta có kiểm chứng thêm bằng đồ thị pointplot
Data reading:
Cần sử dụng các thự viện: ggplot2, dplyr, plotly, cowplot, caret, vcd, ResourceSelection, pROC, corrplot, keras, tensorflow, xgboost, class, Hmisc, stringr, png.
Đọc file bằng read.xlsx.
<small>24</small>
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">-Ta có thể file cịn nhiều chỗ thiếu và xuất hiện hiện tượng NA. Checking missing value:
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">Xử lí data
-Các biến is_happy_customer, season, nearest_warehouse là các biến kiểu chữ và chỉ chiếm 3% nên ta sẽ xoá chúng sau khi thay thế các giá trị NA vào cho các biến kiểu dữ liệu số.
-Đối với các biến kiểu dữ liệu số ta sẽ tìm giá trị trung vị của từng cột rồi thế vào các giá trị của NA:
# Thay thế NA bằng giá trị trung vị của cột
median_value1 <- median(missing_data$customer_lat, na.rm = TRUE)
missing_data$ customer_lat [is.na(missing_data$ customer_lat)] <- median_value1 -Và các giá trị NA đã được thế vào file missing_data:
<small>26</small>
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">-Làm tuơng tự với các biến cịn lại ta được bảng missing_data như sau:
-Sau đó chạy dịng code này ta được:
# Xóa các hàng có giá trị NA trong cột "season"
missing_data <- missing_data[complete.cases(missing_data$season), ] # Hiển thị dữ liệu đã làm sạch
<small>27</small>
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28"># Kiểm tra xem cột "season" có giữ giá trị NA hay khơng
</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">Biến dự đoán: delivery_charges Dùng hồi quy đa biến Dùng hồi quy đa thức So sánh 2 phương pháp
Test độ chính xác bằng AIC và BIC
<small>29</small>
</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">linear1 <- lm(data = newdf,
delivery_charges ~ is_happy_customer + nearest_warehouse +
<small> Estimate Std. Error t value Pr(>|t|)(Intercept) 2.836e+01 3.077e+00 9.218 < 2e-16***</small>
<small>is_happy_customer 1.163e+01 9.565e-01 12.159 < 2e-16***</small>
<small>nearest_warehouse -4.577e-01 5.674e-01 -0.807 0.42035coupon_discount 6.693e-03 5.093e-02 0.131 0.89552season -1.011e+00 3.875e-01 -2.609 0.00941Residual standard error: 9.06 on 430 degrees of freedomMultiple R-squared: 0.5527, Adjusted R-squared: 0.5454 F-statistic: 75.9 on 7 and 430 DF, p-value: < 2.2e-16</small>
+ Ta thấy các biến is_happy_customer, is_expedited_delivery,
distance_to_nearest_warehouse, season có Pvalue nhỏ => có ý nghĩa thống kê + Ta thấy các biến cịn lại nearest_warehouse, coupon_discount, order_price có giá trị P value lớn nên khơng có ý nghĩa thống kê => ta sẽ loại bỏ các biến đó Adjusted R-squared: 0.5454 . Đánh giá khả năng dự đốn của mơ hình phụ. Các biến độc lập giải thích bao nhiêu % biến phụ thuộc. Như vậy, ta thấy được ở mơ
<small>30</small>
</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">hình hồi quy đa biến này độ chính xác của mơ hình khá thấp chỉ dừng ở mức 54,54%.
1) Sai số có phân phối chuẩn
</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">2) Sai số có phân phối chuẩn
> shapiro.test(linear1$residuals)
Shapiro-Wilk normality test data: linear1$residuals
W = 0.96263, p-value = 4.104e-09
p-value = 4.104e-09 <0.05 => thuộc miền bác bỏ, bác bỏ H0 => chấp nhận H1: =>phần dư có phân phối khơng chuẩn
<small>32</small>
</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">3) Phương sai đồng nhất
Biểu đồ xét về tính phương sai đồng nhất ( trung bình = nhau )
Nhìn vào thì ta thấy đường màu đỏ lệch lên dần => phương sai không đồng nhất
Trong trường hợp này, giá trị p rất nhỏ (nhỏ hơn mức ý nghĩa thông thường 0.05), cho thấy có bằng chứng đủ để bác bỏ giả thuyết nhất quán (H0) và chấpnhận H(1): phương sai không nhất quán
<small>33</small>
</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">4) Độ ảnh hướng của các quan sát lên mơ hình
Biểu diễn mức độ ảnh hưởng của quan sát lên mơ hình. Ta thấy có 1 vài điểm gần với đường biên cook’distance. Song vẫn chưa có điểm nào vượt quá cook’s distance => khơng có quan sát nào q ảnh hưởng đến mơ hình => khơng cần loại
</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">Trong hồi quy tuyến tính, VIF ( variance Inflation Factor )được sử dụng để đánh giá mức độ tương quan giữa các biến độc lập trong mô hình. Giá trị VIF càng cao, tức độ tương quan giữa biến đó với các biến khác càng lớn
VIF nhỏ hơn 5 thường đươc coi là chấp nhận được. Và các biến trên chỉ ra rằng khơng có sự tương quan mạnh giữa các biến độc lập
Như vậy, với mơ hình hồi quy này chỉ thỏa mãn 2/4 điều kiện. Và độ chính xác cịnthấp
linear3 <- lm(data= newdf,
delivery_charges ~ is_happy_customer + season + is_expedited_delivery Residual standard error: 9.038 on 433 degrees of freedom
F-statistic: 133.2 on 4 and 433 DF, p-value: < 2.2e-16
<small>35</small>
</div>