Tải bản đầy đủ (.docx) (28 trang)

HOI QUY LOGISTIC VOI r

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 (1.18 MB, 28 trang )

TRƯỜNG ĐẠI HỌC ĐẠI NAM
KHOA CÔNG NGHỆ THÔNG TIN

HỌC PHẦN: XÁC XUẤT THỐNG KÊ
ĐỀ TÀI : HỒI QUY LOGISTIC VỚI R
Giảng viên hướng dẫn : Nguyễn Văn Tuấn
Sinh viên thực hiện

: 1/ Nguyễn Văn Tạo
2/ Vũ Đức Bằng
3/ Đào Quang Huy

Lớp

: CNTT 14-04

Hà nội, ngày 09 tháng 01 năm 2022


1

LỜI CẢM ƠN

Nhóm em xin bày tỏ lịng cảm ơn đến thầy Nguyễn Văn Tuấn đã truyền
tải kiến thức và hướng dẫn chúng em trong quá trình học tập. Dù phải học
online nhưng thầy vẫn truyển tải đầy đủ kiến thức và vẫn không quên phần bài
tập thực hành để giúp chúng em có thể hiểu rõ vấn đề, làm tiền đề để chúng em
học tiếp những mơn chun ngành.
Nhóm em đã cố gắng vận dụng những kiến thức đã học được trong học
kỳ qua để hoàn thành bài báo cáo. Nhưng do kiến thức hạn chế và khơng có
nhiều kinh nghiệm thực tiễn nên khó tránh khỏi những thiếu sót trong q trình


nghiên cứu và trình bày. Rất kính mong sự góp ý của thầy để bài báo cáo của
chúng em được hoàn thiện hơn. 
Em xin chân thành cảm ơn!


2

MỞ ĐẦU
Trong xã hội ngày nay, thống kê ngày càng đóng vai trị quan trọng trong
nhiều lĩnh vực, giúp nghiên cứu các vấn đề kinh tế, xã hội và sinh học (y tế,
nông nghiệp, thủy sản…) thông qua việc thu thập, xử lý và phân tích dữ liệu
bằng các phần mềm thống kê. Hai vấn đề quan trọng của thống kê là: (1) thống
kê mô tả và (2) thống kê suy diễn (dự báo). Một trong những phương pháp
thống kê dự báo quan trọng đó là hồi quy, mơ hình này thể hiện mối quan hệ
giữa biến phụ thuộc (Y) với một hay nhiều biến độc lập (Xi) có thể là dữ liệu
định lượng hoặc định tính. Khi biến phụ thuộc (Y) là biến định tính dạng nhị
phân thì ta sử dụng mơ hình hồi quy Logistic. Mơ hình này là dạng mở rộng của
mơ hình hồi quy tuyến tính và được xếp vào dạng mơ hình hồi quy phi tuyến.
Nhóm chúng em xin được phép chọn đề tài: “ Hồi quy logistic với R ”.
Luận văn này trình bày chi tiết cơ sở lý thuyết, các bước thực hành và ví dụ
minh họa trên R mơ hình hồi quy Logistic.


3

CHƯƠNG I
HỒI QUY LOGISTIC
1/ Hồi quy logistic là gì?
Hồi quy logistic là một kỹ thuật thống kê được giám sát để tìm xác suất
của biến phụ thuộc (Các lớp có trong biến).

Hồi quy logistic sử dụng các hàm được gọi là hàm logit , giúp suy ra mối
quan hệ giữa biến phụ thuộc và các biến độc lập bằng cách dự đoán xác suất
hoặc cơ hội xảy ra.
Các hàm logistic (còn được gọi là hàm sigmoid ) chuyển đổi xác suất
thành các giá trị nhị phân có thể được sử dụng thêm cho các dự đoán.
- Hồi quy logistic nhị phân:
Biến phụ thuộc chỉ có hai 2 kết quả / lớp có thể có.
Ví dụ -Nam hoặc Nữ.
- Hồi quy Logistic đa thức:
Biến phụ thuộc chỉ có hai hoặc 3 kết quả / lớp có thể có trở lên mà khơng cần
sắp xếp thứ tự.
Ví dụ: Dự đốn chất lượng thực phẩm. (Tốt, Tuyệt vời và Xấu).
- Hồi quy logistic thơng thường:
Biến phụ thuộc chỉ có hai hoặc nhiều hơn 3 kết quả / lớp có thể có với thứ tự.
Ví dụ: Xếp hạng sao từ 1 đến 5
2/ Các giả định của hồi quy logistic.
Ngay cả khi Hồi quy logistic thuộc về mơ hình tuyến tính, nó khơng đưa
ra bất kỳ giả định nào của mơ hình hồi quy tuyến tính, như:


4

→ Nó khơng u cầu mối quan hệ tuyến tính giữa các biến phụ thuộc và độc
lập.
→ Các điều khoản lỗi khơng cần phải được phân phối bình thường.
→ Khơng bắt buộc phải có độ co giãn đồng nhất.
Tuy nhiên, nó có một số giả định của riêng nó:
+/ Nó giả định rằng có tối thiểu hoặc khơng có đa cộng tuyến giữa các
biến độc lập.Cách tốt nhất để kiểm tra tính hợp lệ của đa cộng tuyến là thực hiện
VIF (Hệ số lạm phát phương sai).

+/ Nó giả định rằng các biến độc lập liên quan tuyến tính đến nhật ký tỷ
lệ cược.Nó có thể được kiểm tra bằng phép thử Box-Tidwell.
+/ Nó giả định một mẫu lớn để dự đốn tốt.
+/ Nó giả định rằng các quan sát là độc lập với nhau.
+/ Khơng có giá trị ảnh hưởng (ngoại lệ) trong các yếu tố dự báo liên tục
(biến độc lập).Điều này có thể được kiểm tra với sự trợ giúp của IQR, z-score
hoặc có thể được trực quan hóa bằng cách sử dụng các ơ trống hoặc vĩ cầm.
+/ Logistic Regression với 2 lớp mà biến phụ thuộc là nhị phân và
Logistic Regression có thứ tự yêu cầu biến phụ thuộc có thứ tự.
3/ Tại sao khơng hồi quy tuyến tính cho phân loại?
Như chúng ta đã giới thiệu Logistic Regression để giải quyết các vấn đề
phân loại, có thể là phân loại nhị phân hoặc vấn đề phân loại nhiều lớp, nhưng
tại sao chúng ta không thể sử dụng Linear Regression?
- Hồi quy tuyến tính dự đoán các biến liên tục như giá nhà và đầu ra của
Hồi quy tuyến tính có thể nằm trong khoảng từ âm vô cùng đến dương vô cùng.


5

- Vì, Giá trị dự đốn khơng phải là giá trị xác suất mà là giá trị liên tục
cho các lớp, nên sẽ rất khó để tìm ra ngưỡng phù hợp có thể giúp phân biệt giữa
các lớp.
- Giả sử ta gặp may với ngưỡng và tìm ra ngưỡng phù hợp cho bài toán
lớp nhị phân, Tuy nhiên, nếu bài tốn là nhiều lớp thì nó sẽ khơng đưa ra dự
đốn mong muốn.
- Trong một bài tốn đa lớp có thể có n số lớp, Bây giờ mỗi lớp sẽ được
gắn nhãn từ 0-n.Giả sử, chúng ta có 5 bài tốn lớp 0,1,2,3 và 4 lớp này sẽ khơng
mang hoặc khơng có bất kỳ thứ tự có ý nghĩa nào. Tuy nhiên, chúng sẽ buộc
phải thiết lập một số loại quan hệ giữa phần phụ thuộc và phần độc lập đặc
trưng.

- Hơn nữa, các biến phụ thuộc sẽ được coi là số liên tục và đường phù
hợp nhất sẽ đi qua giá trị trung bình của các điểm, cho ra giá trị liên tục có thể
dưới 0 và có thể vượt quá
Tất cả các vấn đề được đề cập ở trên được giải quyết bằng Logistic
Regression.Thay vào đó, hồi quy Logistic để điều chỉnh dịng phù hợp nhất, cơ
đọng đầu ra của hàm tuyến tính giữa 0 và 1.


6

Trong cơng thức của mơ hình logistic,
khi b0 + b1X == 0 , thì p sẽ là 0,5,
tương tự, b0 + b1X> 0 , thì p sẽ hướng về 1 và
b0 + b1X <0 , thì p sẽ đang tiến tới 0.
Giải thích hệ số
Việc giải thích các trọng số khác với Hồi quy tuyến tính vì đầu ra của Hồi
quy logistic có xác suất từ 0 đến 1.
Thay vì hệ số góc đồng hiệu quả (b) là tốc độ thay đổi của p khi x thay
đổi, giờ đây hệ số đồng hiệu quả độ dốc được hiểu là tốc độ thay đổi của “tỷ lệ
cược log” khi X thay đổi.
Bây giờ,ta hãy tìm hiểu tỷ lệ cược đăng nhập là gì.
(-) Tỷ lệ cược và đăng nhập
Tỷ lệ cược được định nghĩa là tỷ số của tỷ lệ cược khi có B và tỷ lệ cược
của A khi khơng có B và ngược lại.
Nói cách khác, Tỷ lệ cược là tỷ lệ giữa xác suất thành công và xác suất
thất bại và Logit chỉ là Log of the Odds Ratio.
Hãy hiểu điều này với ví dụ:
Giả sử xác suất thành cơng là 0,6.
Vì vậy, xác suất thất bại sẽ là (1–0,6) = 0,4
Tỷ lệ cược được xác định từ xác suất và nằm trong khoảng từ 0 đến ∞ .

Vì vậy, tỷ lệ cược Hiện tại (Thành cơng) = p / (1-p) hoặc p / q = 0,6 / 0,4 = 1,5
Ngoài ra, tỷ lệ cược (Thất bại) = 0,4 / 0,6 = 0,66667


7

Công thức của Tỷ lệ cược là:

Odds
Nếu chúng ta muốn tỷ lệ chênh lệch giữa các lớp nhị phân thì:

Odds Ratio
Hàm Logit chỉ là nhật ký của tỷ lệ cược và công thức là:
Logit Function

log()

Trong hồi quy Logistic, chúng ta có thể tính tốn tỷ lệ chênh lệch giữa các lớp:

ln() a + bX

p
(-) Ranh giới quyết định
- Ranh giới quyết định là một đường hoặc lề phân tách các lớp.
- Thuật toán phân loại là tất cả về việc tìm ra ranh giới quyết định giúp
phân biệt giữa các lớp hoàn hảo hoặc gần hoàn hảo.
- Hồi quy logistic quyết định sự phù hợp thích hợp với ranh giới quyết
định để chúng ta có thể dự đốn lớp dữ liệu mới sẽ tương ứng với.



8

4/ Hàm chi phí của hồi quy logistic
Hàm Cost là một hàm đo lường hiệu suất của mơ hình Học máy đối với
dữ liệu nhất định.
Hàm Cost về cơ bản là phép tính sai số giữa giá trị dự đốn và giá trị kỳ
vọng và trình bày nó dưới dạng một số thực duy nhất .
Nhiều người bị nhầm lẫn giữa Hàm Cost và Hàm Loss ,
Nói một cách đơn giản Hàm Cost là giá trị trung bình của sai số của n
mẫu trong dữ liệu và Hàm Loss là lỗi đối với từng điểm dữ liệu. Nói cách khác,
Hàm Loss là đối với một ví dụ đào tạo, Hàm chi phí là cho tồn bộ tập hợp đào
tạo.
Ta biết rằng tham số (x) không bị giới hạn trong hàm logistic, nó cũng
đóng góp vào phương trình của ranh giới quyết định.
Nó rất giống với Hồi quy tuyến tính, xác định một hàm chi phí để tìm lỗi
và sau đó thực hiện giảm độ dốc để cập nhật tham số và giảm thiểu hàm chi phí.


9

Tuy nhiên, chúng ta không thể sử dụng Hàm chi phí của Mơ hình hồi quy
tuyến tính.
(-)Tại sao chúng ta khơng thể sử dụng hàm Chi phí của hồi quy tuyến
tính?
Cố gắng sử dụng một hàm chi phí của mơ hình Hồi quy tuyến tính bằng
cách sử dụng Lỗi bình phương trung bình sẽ cho một hàm khơng lồi, hàm này
sẽ cho một đồ thị có hình dạng kỳ lạ trơng như thế này.

Biểu đồ này có nhiều điểm tối thiểu cục bộ khiến hàm chi phí rất khó đạt
được mức tối thiểu toàn cầu và giảm thiểu sai số.



10

Điều này xảy ra bởi vì trong Hồi quy logistic chúng ta có hàm sigmoid là
phi tuyến tính.
Đây là lý do tại sao hàm Cost cho Logistic Regression là:


11

Nếu kết hợp hai phương trình trên thành một, ta sẽ nhận được một hàm
lồi và hàm chi phí này sẽ giúp mơ hình Hồi quy Logistic hội tụ về Tối thiểu
Toàn cầu nhanh hơn.
Cost((x), y) = -y log((x)) — (1-y) log (1- (x))
If y = 1, (1-y) term will become zero, therefore — log ((x)) alone will be present
If y = 0, (y) term will become zero, therefore — log (1- (x)) alone will be
present

CHƯƠNG II
TÌM HIỂU VỀ R
1/ Tìm hiểu về R
- R là gì?
R là một cơng cụ rất mạnh cho học máy, thống kê và phân tích dữ liệu.
Nó là một ngơn ngữ lập trình. Ngơn ngữ R là một platform-independent do đó
chúng ta có thể sử dụng nó cho bất kỳ hệ điều hành nào. Việc cài đặt R cũng
miễn phì vì thế chúng ta có thể sử dụng mà khơng cần phải mua bản quyền.
Ngôn ngữ R là mã nguồn mở nên ai trong chúng ta cũng có thể phân tích
source code để hiểu được chính xác cách R vận hành. Bất kỳ ai cũng có thể
thêm tính năng và fix bug mà khơng cần chờ nhà phát hành ra bản vá. Đồng

thời, R có thể tích hợp được với ngơn ngữ khác (C,C++). Nó cũng cho phép
chúng ta tương tác với nhiều nguồn dữ liệu và các gói thống kê (SAS, SPSS). R
có một cộng đồng phát triển mạnh mẽ. Giờ đây chúng ta sẽ cùng tìm hiểu về R,
để cảm nhận được "How powerfull is R" và lý do ta cần học ngơn ngữ này.
- Ngơn ngữ R có gì lợi hại?
+/ Tại sao R lại mạnh mẽ cho việc phân tích dữ liệu?
 Ta có thể chạy code mà khơng cần đến bất cứ compiler nào - R là ngôn
ngữ thông dịch ( interpreted language ). Do đó code có thể chạy mà không cần


12

compiler. R thông dịch code và làm cho việc viết code đơn giản hơn, dễ phát
triển hơn.
 Bất một phép tính nào cũng có thể thực hiện trên vectors - R là một
vector-language, do đó chúng ta có thể dùng bất kỳ function nào trên một vector
mà không cần phải dùng vịng lặp. Ví dụ: ta có một mảng và phải tăng mỗi phần
tử lên +1. Nếu không sử dụng vector, ta sẽ cần lặp qua tất cả phần tử và cần n
phép +1 cho n phần tử. Nếu ta lưu mảng đó vào vector thì chỉ cần 1 phép +1 là
xong.
 Đây là Statistical-Language - R được dùng trong sinh học, di truyền học
và thống kê dữ liệu. R là ngơn ngữ turing-complete có nghĩa nó có thể hồn
thành bất kỳ thuật toán nào.
+/ Tại sao R dùng nhiều trong kinh doanh
 Lý do quan trọng nhất - R là một open-source, nên nó cực kỳ "kinh tế".
Đồng thời R rất phù hợp cho việc mô phỏng dữ liệu qua bảng biểu. Nhờ một
cộng đồng phát triển và hơn 15000+ packages trong mọi lĩnh vực nghiên cứu.
Hiện tại, khó có một cơng cụ nào có thể theo kịp R.
 Trong việc nghiên cứu dữ liệu, việc khan hiếm nhân tài là một vấn đề rất
lớn. Các cơng ty có thể dùng ngôn ngữ R để làm nền tảng và training nhân viên

sử dụng nó.
- Khía cạnh thống kê và lập trình của R
+/ Khía cạnh thống kê của R
Một số điểm nổi bật của R:
 Nó là một open-source và hiển nhiên miễn phí hồn tồn.
 R có một kho package phong phú và rất mạnh mẽ, cùng một cộng đồng
người dùng vơ cùng lớn mạnh.

Một vài tính năng thống kê :
 Basic Statistics – Mean, variance, median.
 Static graphics – Basic plots, graphic maps.
 Probability distributions – Beta, Binomial.
+/ Khía cạnh lập trình của R
Điểm nổi bật :


13

 Data inputs - data type, importing data, keyboard typing.
 Data Management - data variables, operators.
Một vài tính năng lập trình:
 Tính tốn phân tán (Distributed-Computing) - Distributed computing là
một open source, hiệu năng cao cho ngơn ngữ R. Nó chia công việc thành nhiều
task nhỏ cho nhiều node để chạy đồng thời, nhờ đó giảm thời gian để chạy phân
tích một tập dữ liệu lớn.
 R packages – là một tập các R functions, compiled code và dữ liệu mẫu.
2/ Ưu và nhược điểm của R.
- Ưu điểm của R:
 R có những package thống kê tồn diện nhất với công nghệ mới nhất,
những ý tưởng mới thường xuất hiện đầu tiên trên R.

 R là open-source nên bất kỳ ai cũng có thể sử dụng và cải tiến nó.
 Vì là open-source nên R có thế được dùng mọi lúc mọi nơi cho bất cứ
việc gì, kể cả bán các sản phẩm từ R theo điều kiện của giấy phép.
 R có thể chạy trên bất kỳ hệ điều hành nào.
 Bất kỳ ai cũng được hỗ trợ để đưa ra ý tưởng phát triển, fix bug, phát
triển package mới.
- Nhược điểm của R:
 Một vài package của R có thể khơng hồn hảo và cịn lỗi.
 Khơng có ai để "complain" cho việc code khơng chạy.
 R có thể chiếm dụng hết "available memory".
3/ Tìm hiểu về phần mềm R
- Khái niệm phần mềm R
Phần mềm R được xây dưng bởi Ross Ihaka và Robert Gentleman tại
The University of Auckland, New Zealand, tiếp tục được phát triển bởi nhóm R
Development Core Team. Phần mềm R là một trong những cơng cụ phân tích
thống kê học cũng như phân tích dữ liệu nói chung.
Trong 10 năm trở lại đây, R đã được nhiều trường đại học trên thế giới sử
dụng rộng rãi. Đây là phần mềm mã nguồn mở (miễn phí). Nó mang đầy đủ
những tính năng của các phần mềm thương mại khác hiện có như SPSS, AMOS,
STATA hay EViews.


14

- Các tính năng của phần mềm R
Phần mềm R có chứa nhiều loại kỹ thuật thống kê (mơ hình hóa tuyến
tính và phi tuyến, kiểm thử thống kê cổ điển, phân tích chuỗi thời gian, phân
loại, phân nhóm, v.v.) và đồ họa. R, giống như S, được thiết kế xoay quanh một
ngơn ngữ máy thực thụ, và nó cho phép người dùng thêm các tính năng bổ sung
bằng cách định nghĩa các hàm mới.

Cũng có một số khác biệt quan trọng đối với S, nhưng nhiều mã viết bằng
S vẫn chạy được mà không cần thay đổi. Nhiều hệ thống trong R được viết bằng
chính ngơn ngữ của nó, giúp cho người dùng dễ theo dõi các giải thuật.
Để thực hiện cơng việc chun về tính tốn, R có thể liên kết được với
ngôn ngữ C, C++và Fortran để có thể được gọi trong khi chạy. Người dùng
thơng thạo có thể viết mã C để xử lý trực tiếp các đối tượng của phần mềm R.
Phần mềm R cũng có tính mở rộng cao bằng cách sử dụng các gói cho
người dùng đưa lên cho một số chức năng và lĩnh vực nghiên cứu cụ thể. Do
được thừa hưởng từ S, R có nền tảng lập trình hướng đối tượng mạnh hơn đa số
các ngơn ngữ tính tốn thống kê khác. Việc mở rộng R cũng dễ dàng nhờ các
luật đóng khối từ vựng.
Một điểm mạnh khác của phần mềm R là nền tảng đồ họa của nó, có thể
tạo ra những đồ thị chất lượng cao cùng các biểu tượng tốn học. R cũng có
đinh dạng văn bản riêng tương tự như LaTeX, dùng để cung cấp tài liệu hướng
dẫn tồn diện, có trực tuyến ở các định dạng khác nhau và cả bản in.
Dù phần mềm R được dùng chủ yếu bởi những nhà thống kê và những
người sử dụng khác địi hỏi một mơi trường tính tốn thống kê và phát triển
phần mềm, nó cũng có thể dùng làm một cơng cụ tính tốn ma trận tổng quát
với các kết quả đo đạc cạnh tranh so với GNU Octave và đối thủ thương mại
của nó, MATLAB.
Giao diện RWeka đã được thêm vào phần mềm khai phá dữ liệu phổ biến
Weka, cho phép đọc/ghi định dạng arff vì vậy cho phép sử dụng tính năng khai
phá dữ liệu trong Weka và thống kê trong phần mềm R.

CHƯƠNG III


15

HỒI QUY LOGISTIC VỚI R

1/ Hồi quy Logistic với R là gì?
Trong Logistic, chúng ta phù hợp với một đường cong hồi quy, y = f (x)
trong đó y đại diện cho một biến phân loại. Mơ hình này được sử dụng để dự
đoán rằng y đã đưa ra một tập hợp các yếu tố dự đốn x. Do đó, các yếu tố dự
báo có thể liên tục, phân loại hoặc kết hợp cả hai.
Nó là một thuật tốn phân loại theo hồi quy phi tuyến. Chúng ta sử dụng
nó để dự đoán một kết quả nhị phân ( 1/0, Đúng / Không, Đúng / Sai ) được đưa
ra dưới dạng một tập hợp các biến độc lập. Hơn nữa, nó giúp biểu diễn kết quả
nhị phân / phân loại bằng cách sử dụng các biến giả.
Đây là một mô hình hồi quy trong đó biến phản hồi có các giá trị phân
loại như Đúng / Sai hoặc 0/1. Do đó, chúng ta có thể đo xác suất của phản hồi
nhị phân.
2/ Cú pháp và biểu thức.
Phương trình tốn học tổng quát cho Logistic là:
y = 1 / (1 + e ^ – (a + b1x1 + b2x2 + b3x3 +…))
Sau đây là mô tả về các tham số được sử dụng:
 y là biến phản hồi.
 x là biến dự đoán.
 a và b là các hệ số là hằng số.
Chúng ta sử dụng hàm glm () để tạo mơ hình hồi quy và cũng nhận được
bản tóm tắt của nó để phân tích.
Cú pháp của Logistic trong R:
Cú pháp cơ bản cho hàm glm () trong Logistic là: glm(formula,data,family)
Mô tả các thông số được sử dụng:
 Formula – Trình bày mối quan hệ giữa các biến.
 Data là tập dữ liệu đưa ra các giá trị của các biến này.
 Các family là đối tượng nghiên cứu để xác định các chi tiết của mơ hình.
Ngồi ra, giá trị của nó là nhị thức đối với Logistic.
- Xuất phát của Logistic trong R
Chúng em sử dụng mơ hình tổng qt hóa như một lớp thuật tốn lớn hơn.

Về cơ bản, mơ hình này được đề xuất bởi Nelder và Wedderburn vào năm 1972.
Phương trình cơ bản của mơ hình tuyến tính tổng qt là:
g (E (y)) = α + βx1 + γx2


16

Ở đây, g () là hàm liên kết;
E (y) là kỳ vọng của biến mục tiêu , và α + βx1 + γx2 là dự đốn tuyến tính.
Vai trị của hàm liên kết là ‘liên kết’ kỳ vọng của y với dự đốn tuyến tính.
3/ Xây dựng mơ hình Logistic trong R
Trong phần này, chúng em sẽ xây dựng mô hình Logistic Regression của
chúng em bằng cách sử dụng dữ liệu ung thư vú mà có sẵn theo mặc định trong
R . Chúng ta sẽ bắt đầu bằng cách nhập dữ liệu và hiển thị thơng tin liên quan
đến nó bằng hàm str ():
> data(BreastCancer, package = "mlbench") #Author DataFlair
> b_canc = BreastCancer[complete.cases(BreastCancer),]
> str(b_canc)
Đầu ra:

Giờ đây, chúng ta chia dữ liệu của mình thành tập huấn luyện và thử
nghiệm với tập huấn luyện nắm giữ 70% dữ liệu và tập thử nghiệm bao gồm
phần trăm còn lại.
> set.seed(100)
> Train_Ratio <- createDataPartition(b_canc$Class, p=0.7, list = F)
> Train_Data <- b_canc[Train_Ratio, ]


17


> Test_Data <- b_canc[-Train_Ratio, ]

Đầu ra:

Thực hiện hàm Logistic của chúng ta bằng cách sử dụng hàm “lm” và chỉ
định họ thuộc tính là “nhị thức”, chúng ta thu được:
glm ( Class ~ Cell. shape , family = "binomial" , data = Train_Data )
Đầu ra:


18

4/ Các ứng dụng của Logistic với R
 Nó giúp phân đoạn và phân loại hình ảnh.
 Nói chung, chúng ta sử dụng Logistic trong xử lý ảnh địa lý.
 Nó giúp nhận dạng chữ viết tay.
 Chúng ta sử dụng Logistic trong chăm sóc sức khỏe.
 Đó là một lĩnh vực ứng dụng của Logistic.
 Để đưa ra dự đốn về điều gì đó mà chúng ta sử dụng trong Logistic.
5/ Triển khai thực tế hồi quy Logistic
- Mô tả dữ liệu
Trong bản trình diễn này, chúng ta sẽ sử dụng dữ liệu Mặc định do gói
ISLR cung cấp . Tập dữ liệu này có thơng tin về khoảng mười nghìn khách
hàng, chẳng hạn như liệu khách hàng bị vỡ nợ có phải là sinh viên hay khơng,
số dư trung bình của khách hàng và thu nhập của khách hàng.
- Báo cáo vấn đề
Để phù hợp với mơ hình hồi quy logistic nhằm dự đoán xác suất khách
hàng vỡ nợ dựa trên số dư trung bình mà khách hàng mang theo.
Chúng ta sẽ bắt đầu bản demo bằng cách cài đặt các gói sau:
 Ngăn nắp: Để thao tác và hiển thị dữ liệu

 Modelr: Để dễ dàng triển khai các chức năng mơ hình hóa đường ống
 Chổi: Để tổ chức phù hợp các đầu ra theo mô hình
 ISLR: Chứa tập dữ liệu với khoảng 10.000 quan sát về số dư trung bình
của khách hàng và thơng tin mặc định.


19

#loading Packages
Library(tidyverse)
Library(modelr)
Library(broom)
#Install ISLR Package
Install.packages('ISLR')
#Load ISLR Package
Library('ISLR')
# Load data
(mydata <- as_tibble(ISLR::Default))
# A tibble: 10,000 x 4
Default student balance income
1 No No 730. 44362.
2 No Yes 817. 12106.
3 No No 1074. 31767.
4 No No 529. 35704.
5 No No 786. 38463.
6 No Yes 920. 7492.
7 No No 826. 24905.
8 No Yes 809. 17600.
9 No No 1161. 37469.
10 No No 0 29275.



20

# ... with 9,990 more rows
#Checking for NA values
sum(is.na(mydata))
[1] 0

#Creating the Training and Testing data set
sample <- sample(c(TRUE, FALSE), nrow(mydata), replace = T, prob =
c(0.6,0.4))
train <- mydata[sample, ]
test <- mydata[!sample, ]
- Xây dựng mơ hình hậu cần:
Sau khi tách dữ liệu, bước tiếp theo của chúng ta là sử dụng tập dữ liệu đào
tạo để xây dựng mơ hình hậu cần. Mơ hình hậu cần cố gắng:
 Lập mơ hình xác suất khách hàng vỡ nợ dựa trên số dư trung bình của
khách hàng.
 Ước tính xác suất khách hàng không phải là người mặc định so với xác
suất không phải là người mặc định.
 Phân loại khách hàng thành 2 lớp (người mặc định và người không mặc
định).
Cú pháp cho một hàm glm () là:
glm (công thức, dữ liệu, họ)
Trong cú pháp trên:
 Công thức: Công thức biểu thị mối quan hệ giữa các biến phụ thuộc và
biến độc lập.



21

 Dữ liệu: Tập dữ liệu mà công thức được áp dụng.
 Họ: Trường này chỉ định loại mơ hình hồi quy. Trong trường hợp của
chúng ta, nó là một mơ hình hồi quy logistic nhị phân.
#Fitting a logistic regression model
logmodel <- glm(default ~ balance, family = "binomial", data = train)
Phương pháp này xác định giá trị của các hệ số (βo, β1) theo cách sao cho
xác suất dự đoán càng gần với xác suất thực tế càng tốt. Nói một cách dễ hiểu,
đối với phân loại nhị phân, công cụ ước tính khả năng xảy ra tối đa sẽ cố gắng
tìm các giá trị của βo và β1 sao cho các xác suất kết quả gần nhất với 1 hoặc 0.
Hàm khả năng được biểu diễn dưới dạng:

Sau khi xây dựng mơ hình logistic, bây giờ chúng ta có thể hình dung
mối quan hệ giữa biến phản hồi và biến dự đoán. Để làm điều này, chúng ta sử
dụng thư viện ggplot khét tiếng do R.
#Plotting a graph: Probability of default Vs Balance mydata %>%
mutate(prob = ifelse(default == "Yes", 1, 0)) %>% ggplot(aes(balance, prob))
+ geom_point(alpha = .15) + geom_smooth(method = "glm", method.args =
list(family = "binomial")) + ggtitle("Logistic regression model fit") +
xlab("Balance") + ylab("Probability of Default")


22

- Chuẩn đốn mơ hình hồi quy Logistic
Một trong những bước quan trọng nhất trong việc xây dựng mơ hình là
đánh giá hiệu quả và kiểm tra ý nghĩa của mơ hình. Chúng ta có thể đánh giá mơ
hình bằng cách sử dụng hàm Summary () trong R:
#Summary of the Logistic Regression Model summary(logmodel)

Call:
glm(formula = default ~ balance, family = "binomial", data = train)
Deviance Residuals:
Min 1Q Median 3Q Max -2.2905 -0.1395 -0.0528 -0.0189 3.3346
Coefficients:
Estimate
Std. Error
4.887e-01

-22.52

z value

Pr(>|z|) (Intercept) -1.101e+01

<2e-16 *** balance

5.669e-03

2.949e-04

19.22 <2e-16 ***
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1723.03 on 6046 degrees of freedom Residual deviance:
908.69 on 6045 degrees of freedom AIC: 912.69
Number of Fisher Scoring iterations: 8
 Lời gọi: Là lời gọi hàm đến mơ hình hồi quy logistic.



23

 Độ lệch: Độ lệch là một thước đo thống kê về độ phù hợp của một mơ
hình. Một mơ hình có giá trị độ lệch thấp hơn được coi là một mơ hình phù hợp,
trong khi các số cao hơn ln cho thấy một mơ hình khơng phù hợp. Có hai loại
sai lệch:
 Null Deviance
 Độ lệch dư
 Độ lệch Null thể hiện mức độ dự đoán của biến phản hồi bởi một mơ hình
chỉ bao gồm điểm chặn (trung bình lớn) chứ khơng phải các biến độc lập hoặc
biến dự báo
 Độ lệch dư cho biết biến phản hồi được dự đốn tốt như thế nào bởi một
mơ hình bao gồm tất cả các tính năng và hệ số của mơ hình
 Hệ số: Đại diện cho các hệ số beta và ý nghĩa thống kê của chúng.
Ở đây chúng ta thấy rằng cả hai hệ số đều có giá trị p rất thấp, có nghĩa là
cả hai hệ số đều cần thiết trong việc tính tốn biến phản hồi.
Các ngôi sao tương ứng với các giá trị p cho biết tầm quan trọng của biến
tương ứng đó. Vì trong mơ hình của chúng ta, cả hai giá trị p đều có dấu sao 3,
điều này cho thấy rằng cả hai biến đều cực kỳ quan trọng trong việc dự đốn
biến phản hồi.
 AIC: Tiêu chí Thơng tin Akaike là một thước đo thống kê về mức độ phù
hợp sẽ xử phạt mơ hình hậu cần về số lượng biến dự báo. Mơ hình có giá trị
AIC tối thiểu được coi là mơ hình phù hợp. AIC trong mơ hình hồi quy logistic
tương đương với R² đã điều chỉnh trong hồi quy tuyến tính
- Đánh giá mơ hình hồi quy Logistic
Sau khi huấn luyện mơ hình trên tập dữ liệu tàu, cuối cùng đã đến lúc đánh giá
mô hình bằng cách sử dụng tập dữ liệu thử nghiệm. Trong các dòng mã dưới
đây, chúng ta sẽ sử dụng mơ hình hồi quy logistic mà chúng ta đã xây dựng
trước đó, để dự đốn biến phản hồi (lớp defaulter (0/1)) trên dữ liệu thử nghiệm.
#Fitting a logistic regression model on the testing data logmodel

summary(logmodel)
Call:
glm(formula = default ~ balance, family = "binomial", data = test)


24

Deviance Residuals: Min 1Q Median 3Q Max -2.2021 -0.1574 -0.0676
-0.0272 3.6743
Coefficients: Estimate

Std. Error

-1.020e+01 5.372e-01 -18.98

z value

Pr(>|z|) (Intercept)

<2e-16 *** balance

5.286e-03

3.329e-04 15.88 <2e-16 ***
--Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1197.10 on 3952 degrees of freedom Residual deviance:
685.05 on 3951 degrees of freedom AIC: 689.05
Number of Fisher Scoring iterations: 8
- Dự Đoán kết quả

Bước cuối cùng của chúng ta là đánh giá hiệu quả của mô hình bằng cách
đưa ra dự đốn về các giá trị cụ thể của biến dự báo.
Vì vậy, ở đây chúng ta sẽ dự đốn liệu một khách hàng có số dư $2000 có
trở thành người mất nợ hay khơng. Để làm điều này, chúng ta sẽ sử dụng hàm
dự đoán () trong R:
predict(logmodel, data.frame(balance = c(2000)), type = "response") 1
0.5820893

KẾT LUẬN
Sự phát triển của Học máy đã thay đổi toàn bộ thế kỷ 21. Nó đang bắt đầu
xác định lại cách chúng ta sống, và đã đến lúc chúng ta hiểu nó là gì và tại sao
nó lại quan trọng. Logistic Regression là một trong những thuật toán Machine
learning được sử dụng rộng rãi nhất.


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×