Xích Markov là một trườnghợp riêng của quá trình Markov khi ta có thể đánh số được các trạng thái.. Chương II: Xử lí xích Markov trong phần mềm R Chương này giới thiệu cấu trúc của gói x
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC VINH
BÙI THỊ HẢO
LUẬN VĂN THẠC SỸ TOÁN HỌC
XÍCH MARKOV TRONG PHẦN MỀM THỐNG KÊ R
Chuyên ngành
LÝ THUYẾT XÁC SUẤT VÀ THỐNG KÊ TOÁN HỌC
NGHỆ AN – 2015
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC VINH
LUẬN VĂN THẠC SỸ TOÁN HỌC
XÍCH MARKOV TRONG PHẦN MỀM THỐNG KÊ R
Chuyên ngành: LÝ THUYẾT XÁC SUẤT VÀ THỐNG KÊ TOÁN HỌC
Mã số: 60.46.01.06 Người hướng dẫn : TS NGUYỄN TRUNG HÒA
Người thực hiên: BÙI THỊ HẢO
NGHỆ AN – 2015
Trang 3MỤC LỤC
MỞ ĐẦU 4
CHƯƠNG I : KIẾN THỨC CHUẨN BỊ 6
1.1.Xích Markov 6
1.1.1.Định nghĩa chung 6
1.1.2.Tính chất và sự phân lớp các trạng thái 7
1.1.3.Ví dụ minh họa 9
1.2.Giới thiệu về R 10
1.2.1.Giới thiệu về phần mềm R 10
1.2.2.Một số hướng dẫn mở đầu về R 11
CHƯƠNG II XỬ LÍ XÍCH MARKOV TRONG R 21
2.1.Cấu trúc của gói xích Markov 21
2.1.1.Tạo đối tượng xích Markov 21
2.1.2.Xử lí đối tượng xích Markov 23
2.2.Xác suất với các đối tượng Markovchain 27
2.3.Phân tích thống kê 36
2.3.1.Mô phỏng 36
2.3.2.Ước lượng 36
2.3.3.Dự báo 38
2.4.Ứng dụng vào các mô hình dự báo thời tiết 39
2.4.1.Mô hình Land of Oz 39
2.4.2.Mô hình Alofi Island Rainfall 40
41
KẾT LUẬN 42
TÀI LIỆU THAM KHẢO 43
Trang 4MỞ ĐẦU
1 Lí do chọn đề tài
Đầu thế kỉ XX, nhà Toán học nổi tiếng người Nga A.A.Markov đã đưa ra
mô hình Toán học để mô tả chuyển động của các phần tử chất lỏng trong mộtbình kín Sau này mô hình được phát triển và mang tên là “ Quá trình Markov”.Nhiều mô hình ngẫu nhiên trong Kinh tế, Kĩ thuật, Dân số học, Di truyềnhọc đều được dựa trên cơ sở là quá trình Markov Xích Markov là một trườnghợp riêng của quá trình Markov khi ta có thể đánh số được các trạng thái
R là một ngôn ngữ lập trình mã nguồn mở cho phép giải quyết một khốilượng lớn những bài toán trong phân tích thống kê và đồ thị Ngôn ngữ R được
bổ sung và phát triển từ ngôn ngữ lập trình S, được sáng tạo bởi Ross Ihaka vàRobert Gentleman ở đại học Auckland, New Zealand vào năm 1995 Các bàitoán thống kê phổ biến như hồi quy tuyến tính và phi tuyến, kiểm định thống kê
cổ điển, phân tích chuỗi thời gian,… đều có thể thực hiện trên R
Nhận thấy sự hỗ trợ tuyệt vời của phần mềm R trong việc khai thác cácứng dụng của xích Markov nên tôi đã chọn đề tài “XỬ LÝ XÍCH MARKOVTRONG R” nhằm mục đích khai thác sâu hơn nữa mối liên hệ chặt chẽ củaToán học và thực tiễn cuộc sống
3 Phương pháp nghiên cứu
- Phân tích và tổng hợp tài liệu.
- Trao đổi với giáo viên hướng dẫn.
- Thực hành trên R với những ví dụ số.
Trang 54 Cấu trúc luận văn
Luận văn bao gồm 2 chương:
Chương I: Kiến thức chuẩn bị
Nội dung của chương gồm hai phần chính:
Phần đầu giới thiệu khái niệm xích Markov với thời gian rời rạc (viết tắt
là DTMC) cùng với các khái niệm liên quan (không gian trạng thái của xích,bước nhảy, xác suất chuyển, xích Markov thuần nhất theo thời gian) và các tínhchất cơ bản của nó
Phần sau giới thiệu về phần mềm R với một số hướng dẫn về cách tải vàcài đặt cùng với các thao tác cơ bản khi sử dụng R (khởi động, ngừng chạy, đặttên đối tượng, cách định dạng trên R )
Chương II: Xử lí xích Markov trong phần mềm R
Chương này giới thiệu cấu trúc của gói xích Markov (cách tạo và xử lí cácđối tượng xích Markov); các cú pháp được sử dụng trên các đối tượng xíchMarkov để thực hiện phân tích xác suất; các hàm và cú pháp trong các gói phùhợp để mô phỏng và dự đoán DTMC; đồng thời chỉ ra ứng dụng của xíchMarkov trong việc dự đoán thời tiết dưới sự hỗ trợ của phần mềm R
Luận văn đã hoàn thành tại trường Đại học Vinh Có được luận văn này,tác giả xin bày tỏ lòng biết ơn chân thành và sâu sắc tới Tiến sĩ Nguyễn TrungHoà đã trực tiếp hướng dẫn, dìu dắt giúp đỡ tác giả trong suốt quá trình triểnkhai, nghiên cứu và hoàn thành đề tài
Xin chân thành cảm ơn các thầy cô giáo khoa Toán – trường Đại HọcVinh đã giảng dạy, truyền đạt những kiến thức khoa học cho tác giả trong nhữngnăm tháng qua
Xin chân thành cảm ơn gia đình, BGH trường THPT Tân Kỳ 3 – Tân Kỳ Nghệ An và các bạn học viên lớp cao học 21 Toán chuyên nghành Lý thuyếtXác suất và Thống kê Toán trường Đại Học Vinh đã động viên và giúp đỡ tácgiả trong suốt quá trình học tập và hoàn thiện luận văn
Trang 6-CHƯƠNG I : KIẾN THỨC CHUẨN BỊ
1.1 Xích Markov
1.1.1 Định nghĩa chung
Một xích Markov với thời gian rời rạc (discrete time Markov chain, viết
tắt là DTMC) là một dãy các biến ngẫu nhiên X1,X2, ,X n, được đặc trưng bởi
tính Markov Tính Markov được hiểu là phân phối của trạng thái kế tiếp X n+ 1
chỉ phụ thuộc vào trạng thái hiện tại X n mà không phụ thuộc vào các trạng thái
trước đó X n−1 ,X n−2 , ,X1 (còn được gọi là tính mất trí nhớ) Nghĩa là :
P(X n+1 = x n+1| X1 = x1,X2 = x2, ,X n = x n) = P(X n+1 = x n+1|X n = x n) (1)
Tập hợp các trạng thái S ={s1,s2, ,s r, } của X ncó thể hữu hạn hoặc
đếm được và được gọi là không gian trạng thái của xích.
Sự thay đổi của một xích từ trạng thái này sang trạng thái khác được gọi
là sự chuyển trạng thái hoặc bước nhảy.
Xác suất p thay đổi từ ij s i đến s j qua bước nhảy đầu tiên được gọi là xác
ij
p
( ) ( | 0 )
i j
n
n
p = = = (3)
Một DTMC được gọi là thuần nhất theo thời gian nếu tính chất được chỉ
ra trong phương trình (4) dưới đây được thỏa mãn:
P(X n+1 = s j | X n = s i)= P(X n = s j | X n−1 = s i) (4)Tính thuần nhất theo thời gian nói rằng những xác suất chuyển dọc theo thờigian là không đổi
Nếu một xích Markov là thuần nhất theo thời gian thì
)
|(
) (
1
i k j k n
n ij
i k j k
ij
s X s X
P p
s X s X
P p
Trang 7(5)với mọi k
Phân phối xác suất của việc chuyển từ một trạng thái này sang trạng tháikia có thể được biểu diễn bởi ma trận chuyển P =(p ij )i,j, trong đó mỗi phần
tử ở vị trí ( j i, ) biểu diễn xác suất chuyển pij
Ví dụ: Nếu r =3 thì ma trận chuyển P được thể hiện bởi:
31
23 22
21
13 12
11
p p
p
p p
p
p p
p P
Phân phối trên mỗi trạng thái có thể được viết dưới dạng một véc tơ hàng
ngẫu nhiên x (có nghĩa ∑ =1, i ≥0
i
x ) Chẳng hạn, nếu trạng thái hiện thời
của xích là s2 thì x =(0 1 0) Từ đó ta có quan hệ giữa x( 1 ) và x( 0 ) là
Nếu s i → s j và s j →s i thì s i và s được gọi là liên thông j
Một lớp liên thông được định nghĩa là một tập các trạng thái liên thông với
nhau Một DTMC có thể được tạo thành bởi một hay nhiều lớp liên thông
DTMC được tạo bởi chỉ một lớp liên thông được gọi là tối giản.
Một lớp liên thông được gọi là đóng nếu không có một trạng thái nào của
lớp đi tới được một trạng thái ngoài lớp đó
Trang 8Nếu p ii = 1 thì s được gọi là trạng thái hấp thụ (absorbing) Một trạng i
thái hấp thụ tương ứng với một lớp liên thông đóng được tạo nên bởi chỉ mộtmình nó
Dạng chính tắc của ma trận chuyển của một DTMC là một ma trận khối,tại đó các lớp liên thông đóng được thể hiện tại nơi bắt đầu của một ma trậnchéo
Trạng thái s i được gọi là có chu kì k i nếu bất kì sự lặp lại nào của trạngthái s i cũng đều phải trải qua một bội của k i bước Điều đó có nghĩa
} )
| (
: { = 0 = >
k Nếu k i = 1 thì trạng thái s i được gọi là
không tuần hoàn Ngược lại nếu k i > 1 thì trạng thái s i tuần hoàn với chu kỳ k i.Nói cách khác, s i được gọi là tuần hoàn nếu nó có thể gặp lại chính nó sau một
số k i >1 cố định (các) bước (hoặc bội của k i), ngược lại thì nó không tuầnhoàn.s thuộc cùng một lớp liên thông thì chúng có cùng chu kì j k i Từ đó, mỗitrạng thái của một DTMC tối giản cũng có tính tuần hoàn Tính tuần hoàn nàycũng được coi là tính tuần hoàn của DTMC
Có thể để phân tích thời điểm đạt đến một trạng thái nhất định Lần qua
đầu tiên từ trạng thái s i tới thạng thái s là số j T các bước được lấy bởi xích ij cho đến khi lần đầu tiên nó đạt đến trạng thái s j, với giả thiết là
Nếu các trạng thái s ivà X0 = s i Phân phối xác suất của T được xác ij
n kj ik
n
(7)
Trang 9Nếu trong định nghĩa của lần qua đầu tiên ta đặt si = sj , ta thu được lần quay
lại đầu tiên T i =inf{n≥1:X n = s i | X0 = s i} Một trạng thái s i được gọi là hồi quy nếu nó chắc chắn được thấy tại một thời điểm nào đó sau khi xuất phát bởi
trạng thái s i, có nghĩa là P(T i < +∞ | X0 = s i) = 1 Ngược lại s i được gọi là tạm
thời nếu có một xác suất dương sao cho xích chẳng bao giờ quay lại s i, nghĩa
là P(T i = +∞ | X0 =s i) > 0
Cho một xích Markov thuần nhất theo thời gian với ma trận chuyển P,
một phân phối dừng z là một véc tơ hàng ngẫu nhiên mà z = z.P với
z 1 Nếu một DTMC { }X n tối giản và tuần hoàn thì nó có
phân phối giới hạn và phân phối này là phân phối dừng Từ đó, nếu P là ma trận
chuyển của xích cỡ k×k và z = (z1,z2, ,z k) là một véc tơ riêng của P sao cho
n =
∞
→limtrong đó Z là một ma trận có tất cả các hàng bằng z Phân phối dừng của { }X n được biểu diễn bởi z.
4 0 45 0 15 0
3 0 2 0 5 0
Trong P, p11 =0.5 là xác suất để X1 nhận trạng thái s1với điều kiện X0 ở
trạng thái s1, tương tự cho các giá trị khác Từ đó dễ dàng thấy rằng xích là tốigiản từ mọi trạng thái thông tin (nó chỉ được tạo thành bởi 1 lớp thông tin)
Trang 10Giả sử rằng trạng thái hiện thời của chuỗi là X0 = s2, nghĩa là
4 0 45 0 15 0
3 0 2 0 5 0 0 1 0 ) 1
4.045.0.15.0
3.02.05.04.045.015.0 ( 2 ) ( 1 ) )
1 ( )
|(X2 = s3 X0 = s2 =
R cho phép giải quyết một khối lượng lớn những bài toán trong phân tíchthống kê và đồ thị Các bài toán thống kê phổ biến như hồi quy tuyến tính và phituyến, kiểm định thống kê cổ điển, phân tích chuỗi thời gian,… đều có thể thựchiện trên R Một trong những sức mạnh của R chính là tạo ra được nhiều kiểu đồthị phong phú, đa dạng khác nhau theo ý người sử dụng Ngôn ngữ R cho phépngười sử dụng lập trình những vòng lặp để phân tích liên tiếp vài tập dữ liệu Nócũng cho phép kết hợp những hàm thống kê đơn khác nhau để biễu diễn những
Trang 11phân tích phức tạp Người sử dụng R được thừa hưởng một khối lượng lớnnhững chương trình được viết trên S và sẵn có trên mạng Internet, phần lớnnhững chương trình này đều có thể sử dụng ngay trên R.
Trong khi các phần mềm thống kê khác biễu diễn ngay các kết quả phântích thì R lưu trữ các kết quả này trong một đối tượng (object) và do đó các phântích vẫn được thực hiện mà không cần biễu diễn ra kết quả trung gian Ví dụ khithực hiện 20 phương trình hồi qui và muốn so sánh các hệ số hệ quy với nhau, Rchỉ cần biễu diễn chỉ các hệ số, và do đó mỗi kết quả chỉ mất một dòng, trongkhi các phần mềm khác có thể phải mở 20 cửa sổ kết quả Chúng ta có thể thấyrất nhiều ví dụ minh họa sự linh động của những hệ thống như R so với các phầnmềm thống kê cổ điển khác
CRAN cung cấp cho ta phiên bản R-2.15.1.
Nếu sử dụng hệ điều hành Windows thì có thể tải bộ cài R-2.15.1 cho
Windows theo đường dẫn sau:
Trang 12Sau khi cài đặt R xong, trên màn hình sẽ xuất hiện biểu tượng của R Đểkhởi động R ta có thể làm theo những cách sau:
• Kích đúp vào biểu tượng của R trên màn hình
• Vào Start → Program → R → R i386 2.15.1.
Khi khởi động xong, ta sẽ có một cửa sổ dòng lệnh R (R console):
và có thể nhập, thực hiện các lệnh để ra những kết quả cần thiết
Để ngừng hoạt động R, tại cửa sổ dòng lệnh ta kích vào nút chéo ở góc
bên phải màn hình hoặc vào File → Exits hay gõ lệnh q() Khi thực hiện thao
tác này , trên cửa sổ dòng lệnh sẽ hiện ra câu hỏi :
Nếu chọn “Yes” thì cửa sổ sẽ lưu lại những lệnh của lần thực hiện này trong lầnthực hiện sau, còn nếu chọn “No” thì cửa sổ sẽ không lưu lại và lần thực hiệnsau cửa sổ dòng lệnh sẽ hoàn toàn mới
Chú ý: Khi đã chọn “Yes” thì những lệnh trong lần thực hiện này sẽ lưu lại dưới
dạng RData và Rhistory và sẽ có hiệu lực trong tất cả các lần thực hiện sau.
Nếu không muốn dùng lại những lệnh này, ta có thể thực hiện theo một trongnhững cách sau:
• Vào thư mục lưu Rdata và Rhistory xóa hai file này đi Nếu thư mục chưa
bị thay đổi, hai file này được lưu ở thư mục mặc định của R, chẳng hạn
“C:/Users/Hoahong/Document”
• Hoặc tại cửa sổ dòng lệnh gõ các lệnh sau :
>unlink(“.RData”)
>unlink(“.History”)
Trang 13sau đó đóng R lại và chọn chế độ không lưu Khi đó trong lần dùng sau các lệnh
cũ sẽ không còn có hiệu lực nữa
.Khi ta muốn đưa ra một lời chú thích nào đó cho những lệnh mình làm ta
để dấu # ở đầu câu:
Một hàm trong R gồm tên hàm và các tham số, các tham số được đặt bêntrong dấu ngoặc tròn và được cách nhau bởi dấu phẩy Những tham số dạng kí
tự (characters) được đặt trong dấu nháy kép (“…”) hoặc nháy đơn (‘ ’) Trong
ví dụ trên seq là tên hàm, from, to, by là các tham số và được gán giá trị lần lượt
là 0, 10, 2 Một hàm có thể bao gồm nhiều tham số, khi sử dụng hàm ta có thểchỉ gán giá trị cho một vài tham số, những tham số không xuất hiện sẽ nhận giátrị mặc định
Nếu chỉ viết tên hàm mà không có dấu ngoặc tròn thì R sẽ đưa nội dungcủa hàm Ví dụ:
Trang 14.Khi chưa kết thúc một lệnh mà đã xuống dòng, R sẽ xuất hiện dấu nhắckhác là +, chẳng hạn:
Trong trường hợp này cần hoàn thành nốt lệnh
Nếu trong lệnh phần bị thiếu không phải ở cuối, chẳng hạn :
thì ấn nút Esc trên bàn phím hoặc đánh q( ) để thoát khỏi lệnh, sau đó lấy lại
lệnh để sửa Chú ý là trên bàn phím có thể dùng mũi tên lên, xuống để lấy lạinhững lệnh đã đánh, dùng mũi tên sang trái, phải để di chuyển dấu nháy trên cửa
sổ dòng lệnh
1.2.2.4 Đối tượng và đặt tên đối tượng trong R
Một trong những điểm nổi bật của R là kết quả không nhất thiết phải hiểnthị ra mà có thể ghi lại trong các đối tượng (objects) Tùy theo kết quả của từngđối tượng là gì mà ta có thể dùng trong các phân tích tiếp theo hoặc thực hiệnphép toán trên các đối tượng
Để hiển thị nội dung của một đối tượng, ta đánh tên đối tượng và gõ Enter:
Trường hợp này đối tượng DaySo là một véctơ gồm các số, có thể thực hiện một
số phép toán phù hợp trên DaySo:
Trang 15Đặt tên một đối tượng trong R khá linh hoạt vì R không có nhiều hạn chếnhư các phần mềm khác Tên một đối tượng trong R phải bắt đầu bằng một chữcái (A-Z) hoặc (a-z), chỉ bao gồm chữ cái, chữ số (0-9) và dấu ghạch dưới (_)được viết liền nhau Một chú ý là R phân biệt chữ hoa và chữu thường,nghĩa là
đối tượng DaySo khác hoàn toàn với đối tượng dayso:
Do tên của đối tượng không chứa dấu cách nên để dễ đọc tên ta có thể viết hoa
các chữ cái đầu trong mỗi từ của tên như DaySo hoặc dùng dấu chấm để phân biệt giữa các từ day.so.
1.2.2.5 Liệt kê đối tượng và xóa đối tượng trong R
Giả sử trong cửa sổ dòng lệnh của R ta đang có một số đối tượng sau:
.Chú ý rằng dấu chấm phấy (;) dùng để phân biệt các lệnh khác nhau được viếttrên cùng một dòng
Khi muốn liệt kê tất cả những đối tượng đang có trong cửa sổ dòng lệnh,
Trang 161.2.2.6 Định dạng trên cửa sổ R
Mỗi khi khởi động R, thư mục làm việc là theo mặc định Để kiểm traxem thư mục làm việc của R là gì, ta gõ lệnh
Trong trường hợp muốn thay đổi thư mục làm việc của R , chẳng hạn là
F:/ThucHanhXSTKTrenR, ta có thể theo một trong những cách sau:
Trang 17có thể tìm hiểu chi tiết qua lệnh options.Dấu nhắc trong R mặc định là >, khi muốn thay dấu nhắc này, chẳng hạn thành R> ta dùng tham số prompt trong hàm options như sau:
Cửa sổ R mặc định là 80 kí tự, nếu muốn cửa sổ dài hơn hoặc ngắn hơn, ta
định dạng lại qua tham số width của hàm options:
Số thập phân trong cửa sổ R mặc định làm tròn đến 7 chữ số thập phânsau dấu phẩy, khi muốn thay đổi chữ số thập phân, ta định dạng lại qua tham số
digits của hàm options:
1.2.2.7 Cài thêm gói mới trong R
R được mở rộng một cách mạnh mẽ nhờ việc sử dụng các gói (packages)
do người sử dụng cung cấp cho các chức năng cụ thể hoặc các lĩnh vực nghiêncứu cụ thể Một bản R vừa cài xong được cung cấp khoảng tám gói đi kèm vàngười dùng có thể tải nhiều gói khác nhau thông qua hệ thống CRAN trên mạnginternet Một gói mới có thể cài từ gói được tải về máy hoặc cài trực tiếp từ trênmạng internet Các bước thực hiện chi tiết cho từng cách cài đặt này được chonhư sau:
Cài đặt gói mới từ gói được tải về máy
Để cài theo cách này, đầu tiên ta phải tải gói mới về máy Một gói mớiđược tải về máy bằng cách sau:
Trang 18• Tại trang chủ CRAN của R, chọn mục Packages trong phần tiêu đề;
• Chọn sắp xếp các gói theo tên Table of available packages, sorted
by name để thuận tiện việc tìm kiếm;
• Chọn đến gói đang cần để tải về máy;
Khi một gói phụ thuộc vào nhiều gói khác, để cài được gói này ta phải tảihết các gói phụ thuộc và cài đặt các gói này trước Ví dụ để cài được gói BSDA,
ta phải cài hai gói e1071 và lattice Do đó việc cài đặt một gói từ những gói đã
tải về thường mất nhiều thời gian, nhất là khi cài những gói phụ thuộc vào nhiềugói khác
Cài đặt một gói mới trực tiếp từ trên mạng
Muốn cài đặt một gói mới, ví dụ gói BSDA theo cách này, ta có thể thựchiện theo một trong hai cách sau:
Cách 1: Cài bằng hàm install.packages
• Tại cửa sổ dòng lệnh của R, gõ lệnh
>install.packages(“BSDA”)
• Chọn một bản sao (mirror) của CRAN, chẳng hạn VietNam và R sẽ
tự động cài BSDA cùng với tất cả các gói mà BSDA phụ thuộc vào
Cách 2: Cài từ mục Packages trên thanh công cụ
• Tại cửa sổ dòng lệnh chọn Packages → Install package(s)
Trang 19• Chọn một bản sao của CRAN, chẳng hạn VietNam:
• Chọn đến gói cần cài, ở đây là BSDA và R sẽ tự động cài BSDAcùng với tất cả những gói mà BSDA phụ thuộc vào:
Trang 20Trước khi sử dụng những hàm trong một gói mới, ta phải gọi gói này ra
qua hàm library, chẳng hạn library (BSDA) hoặc tại cửa sổ dòng lệnh của R, vào Packages Load package và chọn đến gói cần dùng.
Trang 21CHƯƠNG II XỬ LÍ XÍCH MARKOV TRONG R
2.1 Cấu trúc của gói xích Markov
2.1.1 Tạo đối tượng xích Markov
Gói Markov chain được tải trong R bởi dòng lệnh như sau:
R>library(“markovchain”)
Các lớp xích Markov và danh sách xích Markov được định nghĩa trong gói Markovchain được hiển thị như sau:
Class "markovchain" [in ".GlobalEnv"]
Name: states byrow transitionMatrix
Class: character logical matrix
Name: name
Class: character
Class "markovchainList" [in ".GlobalEnv"]
Name: markovchains name
Class: list character
Lớp đầu tiên được thiết kế để xử lí các quá trình xích Markov thuần nhất trong khi đó các lớp sau được thiết kế để xử lí các quá trình xích Markov không thuần nhất
Một phần tử của lớp xích Markov bao gồm các thành tố sau:
1 states: là một véc tơ chỉ danh sách các trạng thái của không gian các trạng thái
2 byrow: một phần tử logic để xác định xác suất chuyển được thể hiện bởi hàng hay bởi cột
3 transitionMatrix: ma trận xác suất chyển
4 name: một thành tố tùy chọn (không bắt buộc) để đặt tên cho DTMC