dùng phần mềm R vào tính toán xác suất
1 6 Tính toán xác sut và mô phng (simulation) Xác sut là nn tng ca phân tích thng kê. Tt c các phng pháp phân tích s liu và suy lun thng kê đu da vào lí thuyt xác sut. Lí thuyt xác sut quan tâm đn vic mô t và th hin qui lut phân phi ca mt bin s ngu nhiên. “Mô t” đây trong thc t cng có ngha đn gin là đm nhng trng hp hay kh nng xy ra ca mt hay nhiu bin. Chng hn nh khi chúng ta chn ngu nhiên 2 đi tng , và nu 2 đi tng này có th đc phân loi bng hai đc tính nh gii tính và s thích, thì vn đ đt ra là có bao nhiêu tt c “phi hp” gia hai đc tính này. Hay đi vi mt bin s liên tc nh huyt áp, mô t có ngha là tính toán các ch s thng kê ca bin nh tr s trung bình, trung v, phng sai, đ lch chun, v.v… T nhng ch s mô t, lí thuyt xác sut cung cp cho chúng ta nhng mô hình đ thit lp các hàm phân phi cho các bin s đó. Trong chng này, tôi s bàn qua hai lnh vc chính là phép đm và các hàm phân phi. 6.1 Các phép đm 6.1.1 Phép hoán v (permutation). Theo đnh ngha, hoán v n phn t là cách sp xp n phn t theo mt th t đnh sn. nh ngha này tht là … khó hiu, chng khác gì … đ! Có l mt ví d c th s làm rõ đnh ngha hn. Hãy tng tng mt trung tâm cp cu có 3 bác s (x, y và z), và có 3 bnh nhân (a, b và c) đang ngi ch đc khám bnh. C ba bác s đu có th khám bt c bnh nhân a, b hay c. Câu hi đt ra là có bao nhiêu cách sp xp bác s – bnh nhân? tr li câu hi này, chúng ta xem xét vài trng hp sau đây: • Bác s x có 3 la chn: khám bnh nhân a, b hoc c; • Khi bác s x đã chn mt bnh nhân ri, thì bác s y có hai la chn còn li; • Và sau cùng, khi 2 bác s kia đã chn, bác s z ch còn 1 la chn. • Tng cng, chúng ta có 6 la chn. Mt ví d khác, trong mt bui tic gm 6 bn, hi có bao nhiêu cách sp xp cách ngi trong mt bàn vi 6 gh? Qua cách lí gii ca ví d trên, đáp s là: 6.5.4.3.2.1 = 720 cách. (Chú ý du “.” có ngha là du nhân hay tích s). Và đây chính là phép đm hoán v. Chúng ta bit rng 3! = 3.2.1 = 6, và 0!=1. Nói chung, công thc tính hoán v cho mt s n là: ()( )( ) ! 1 2 3 . 1nnn n n=−− −××. Trong R cách tính này rt đn gin vi lnh prod() nh sau: 2 • Tìm 3! > prod(3:1) [1] 6 • Tìm 10! > prod(10:1) [1] 3628800 • Tìm 10.9.8.7.6.5.4 > prod(10:4) [1] 604800 • Tìm (10.9.8.7.6.5.4) / (40.39.38.37.36) > prod(10:4) / prod(40:36) [1] 0.007659481 6.1.2 T hp (combination). T hp n phn t chp k là mi tp hp con gm k phn t ca tp hp n phn t. nh ngha này phi nói là rt khó hiu và … rm rà! Cách d hiu nht là qua mt ví d nh sau: Cho 3 ngi (hãy cho là A, B, và C) ng viên vào 2 chc ch tch và phó ch tch, hi: có bao nhiêu cách đ chn 2 chc này trong s 3 ngi đó. Chúng ta có th tng tng có 2 gh mà phi chn 3 ngi: Cách chn Ch tch Phó ch tch 1 A B 2 B A 3 A C 4 C A 5 B C 6 C B Nh vy có 6 cách chn. Nhng chú ý rng cách chn 1 và 2 trong thc t ch là 1 cp, và chúng ta ch có th đm là 1 (ch không 2 đc). Tng t, 3 và 4, 5 và 6 cng ch có th đm là 1 cp. Tng cng, chúng ta có 3 cách chn 3 ngi cho 2 chc v. áp s này đc gi là t hp. Tht ra tng s ln chn có th tính bng công thc sau đây: () 3 3! 6 3 2 2! 3 2 ! 2 = == − ln. Nói chung, s ln chn k ngi t n ngi là: () ! !! n n k knk = − 3 Công thc này cng có khi vit là n k C thay vì n k . Vi R, phép tính này rt đn gin bng hàm choose(n, k). Sau đây là vài ví d minh ha: • Tìm 5 2 > choose(5, 2) [1] 10 • Tìm xác sut cp A và B trong s 5 ngi đc đc c vào hai chc v: > 1/choose(5, 2) [1] 0.1 6.2 Bin s ngu nhiên và hàm phân phi Phn ln phân tích thng kê da vào các lut phân phi xác sut đ suy lun. Hai ch “phân phi” (distribution) có l cng cn vài dòng gii thích đây. Nu chúng ta chn ngu nhiên 10 bn trong mt lp hc và ghi nhn chiu cao và gii tính ca 10 bn đó, chúng ta có th có mt dãy s liu nh sau: 1 2 3 4 5 6 7 8 9 10 Gii tính N N Nam N N N Nam Nam N Nam Chiu cao (cm) 156 160 175 145 165 158 170 167 178 155 Nu tính gp chung li, chúng ta có 6 bn gái và 4 bn trai. Nói theo phn trm, chúng ta có 60% n và 40% nam. Nói theo ngôn ng xác sut, xác sut n là 0.6 và nam là 0.4. V chiu cao, chúng ta có giá tr trung bình là 162.9 cm, vi chiu cao thp nht là 155 cm và cao nht là 178 cm. Nói theo ngôn ng thng kê xác sut, bin s gii tính và chiu cao là hai bin s ngu nhiên (random variable). Ngu nhiên là vì chúng ta không đoán trc mt cách chính xác các giá tr này, nhng ch có th đoán giá tr tp trung, giá tr trung bình, và đ dao đng ca chúng. Bin gii tính ch có hai “giá tr” (nam hay n), và đc gi là bin không liên tc, hay bin ri rc (discrete variable), hay bin th bc (categorical variable). Còn bin chiu cao có th có bt c giá tr nào t thp đn cao, và do đó có tên là bin liên tc (continuous variable). Khi nói đn “phân phi” (hay distribution) là đ cp đn các giá tr mà bin s có th có. Các hàm phân phi (distribution function) là hàm nhm mô t các bin s đó mt cách có h thng. “Có h thng” đây có ngha là theo m mô hình toán hc c th vi nhng thông s cho trc. Trong xác sut thng kê có khá nhiu hàm phân phi, và đây chúng ta s xem xét qua mt s hàm quan trng nht và thông dng nht: đó là phân 4 phi nh phân, phân phi Poisson, và phân phi chun. Trong mi lut phân phi, có 4 loi hàm quan trng mà chúng ta cn bit: • hàm mt đ xác sut (probability density distribution); • hàm phân phi tích ly (cumulative probability distribution); • hàm đnh bc (quantile); và • hàm mô phng (simulation). R có nhng hàm sn trên có th ng dng cho tính toán xác sut. Tên mi hàm đc gi bng mt tip đu ng đ ch loi hàm phân phi, và vit tt tên ca hàm đó. Các tip đu ng là d (ch distribution hay xác sut), p (ch cumulative probability, xác sut tích ly), q (ch đnh bc hay quantile), và r (ch random hay s ngu nhiên). Các tên vit tt là norm (normal, phân phi chun), binom (binomial , phân phi nh phân), pois (Poisson, phân phi Poisson), v.v… Bng sau đây tóm tt các hàm và thông s cho tng hàm: Hàm phân phi Mt đ Tích ly nh bc Mô phng Chun dnorm(x, mean, sd) pnorm(q, mean, sd) qnorm(p, mean, sd) rnorm(n, mean, sd) Nh phân dbinom(k, n, p) pbinom(q, n, p) qbinom (p, n, p) rbinom(k, n, prob) Poisson dpois(k, lambda) ppois(q, lambda) qpois(p, lambda) rpois(n, lambda) Uniform dunif(x, min, max) punif(q, min, max) qunif(p, min, max) runif(n, min, max) Negative binomial dnbinom(x, k, p) pnbinom(q, k, p) qnbinom (p,k,prob) rbinom(n, n, prob) Beta dbeta(x, shape1, shape2) pbeta(q, shape1, shape2) qbeta(p, shape1, shape2) rbeta(n, shape1, shape2) Gamma dgamma(x, shape, rate, scale) gamma(q, shape, rate, scale) qgamma(p, shape, rate, scale) rgamma(n, shape, rate, scale) Geometric dgeom(x, p) pgeom(q, p) qgeom(p, prob) rgeom(n, prob) Exponential dexp(x, rate) pexp(q, rate) qexp(p, rate) rexp(n, rate) Weibull dnorm(x, mean, sd) pnorm(q, mean, sd) qnorm(p, mean, sd) rnorm(n, mean, sd) Cauchy dcauchy(x, location, scale) pcauchy(q, location, scale) qcauchy(p, location, scale) rcauchy(n, location, scale) F df(x, df1, df2) pf(q, df1, df2) qf(p, df1, df2) rf(n, df1, df2) T dt(x, df) pt(q, df) qt(p, df) rt(n, df) Chi-squared dchisq(x, df) pchi(q, df) qchisq(p, df) rchisq(n, df) Chú thích: Trong bng trên, df = degrees of freedome (bc t do); prob = probability (xác sut); n = sample size (s lng mu). Các thông s khác có th tham kho thêm cho tng lut phân phi. Riêng các lut phân phi F, t, Chi-squared còn có mt thông s khác na là non-centrality parameter (ncp) đc cho s 0. Tuy nhiên ngi s dng có th cho mt thông s khác thích hp, nu cn. 6.3 Các hàm phân phi xác sut (probability distribution function) 6.3.1 Hàm phân phi nh phân (Binomial distribution) Nh tên gi, hàm phân phi nh phân ch có hai giá tr: nam / n, sng / cht, có / không, v.v… Hàm nh phân đc phát biu bng đnh lí nh sau: Nu mt th nghim 5 đc tin hành n ln, mi ln cho ra kt qu hoc là thành công hoc là tht bi, và gm xác sut thành công đc bit trc là p, thì xác sut có k ln th nghim thành công là: () () |, 1 nk nk k Pknp Cp p − =−, trong đó k == 0, 1, 2, . . . , n. hiu đnh lí đó rõ ràng hn, chúng ta s xem qua qua vài ví d sau đây. Ví d 1: Hàm mt đ nh phân (Binomial density probability function). Trong ví d trên, lp hc có 10 ngi, trong đó có 6 na. Nu 3 bn đc chn mt cách ngu nhiên, xác sut mà chúng ta có 2 bn n là bao nhiêu? Chúng ta có th tr li câu hi này mt cách tng đi th công bng cách xem xét tt c các trng hp có th xy ra. Mi ln chn có 2 kh khng (nam hay n), và 3 ln chn, chúng ta có 2 3 = 8 trng hp nh sau. Bn 1 Bn 2 Bn 3 Xác sut Nam Nam Nam (0.4)(0.4)(0.4) = 0.064 Nam Nam N (0.4)(0.4)(0.6) = 0.096 Nam N Nam (0.4)(0.6)(0.4) = 0.096 Nam N N (0.4)(0.6)(0.6) = 0.144 N Nam Nam (0.6)(0.4)(0.4) = 0.096 N Nam N (0.6)(0.4)(0.6) = 0.144 N N Nam (0.6)(0.6)(0.4) = 0.144 N N N (0.6)(0.6)(0.6) = 0.216 Tt c các trng hp 1.000 Chng ta bit trc rng trong nhóm 10 hc sinh có 6 n, và do đó, xác sut n là 0.60. (Nói cách khác, xác sut chn mt bn nam là 0.4). Do đó, xác sut mà tt c 3 bn đc chn đu là nam gii là: 0.4 x 0.4 x 0.4 = 0.064. Trong bng trên, chúng ta thy có 3 trng hp mà trong đó có 2 bn gái: đó là trng hp Nam-N-N, N-N-Nam, và N-Nam-N, c 3 đu có xác sut 0.144. Thành ra, xác sut chn đúng 2 bn n trong s 3 bn đc chn là 3x0.144= 0.432. Trong R, có hàm dbinom(k, n, p) có th giúp chúng ta tính công thc () () |, 1 nk nk k Pknp Cp p − =− mt cách nhanh chóng. Trong trng hp trên, chúng ta ch cn đn gin lnh: > dbinom(2, 3, 0.60) [1] 0.432 Ví d 2: Hàm nh phân tích ly (Cumulative Binomial probability distribution). Xác sut thuc chng loãng xng có hiu nghim là khong 70% (tc là p = 0.70). Nu chúng ta điu tr 10 bnh nhân, xác sut có ti thiu 8 bnh nhân vi kt qu tích cc là bao nhiêu? Nói cách khác, nu gi X là s bnh nhân đc điu tr thành công, chúng ta cn tìm P(X ≥ 8) = ? tr li câu hi này, chúng ta s dng hàm pbinom(k, n, p). Xin nhc li rng hàm pbinom(k, n, p)cho chúng ta P(X ≤ k). Do đó, P(X ≥ 8) = 1 – P(X ≤ 7). Thành ra, đáp s bng R cho câu hi là: 6 > 1-pbinom(7, 10, 0.70) [1] 0.3827828 Ví d 3: Mô phng hàm nh phân: Bit rng trong mt qun th dân s có khong 20% ngi mc bnh cao huyt áp; nu chúng ta tin hành chn mu 1000 ln, mi ln chn 20 ngi trong qun th đó mt cách ngu nhiên, s phân phi s bnh nhân cao huyt áp s nh th nào? tr li câu hi này, chúng ta có th ng dng hàm rbinom (n, k, p) trong R vi nhng thông s nh sau: > b <- rbinom(1000, 20, 0.20) Trong lnh trên, kt qu mô phng đc tm thi cha trong đi tng tên là b. bit b có gì, chúng ta đm bng lnh table: > table(b) b 0 1 2 3 4 5 6 7 8 9 10 6 45 147 192 229 169 105 68 23 13 3 Dòng s liu th nht (0, 5, 6, …, 10) là s bnh nhân mc bnh cao huyt áp trong s 20 ngi mà chúng ta chn. Dòng s liu th hai cho chúng ta bit s ln chn mu trong 1000 ln xy ra. Do đó, có 6 mu không có bnh nhân cao huyt áp nào, 45 mu vi ch 1 bnh nhân cao huyt áp, v.v… Có l cách đ hiu là v đ th các tn s trên bng lnh hist nh sau: > hist(b, main="Number of hypertensive patients") Number of hypertensive patients b Frequency 0246810 0 50 100 150 200 Biu đ 1. Phân phi s bnh nhân cao huyt áp trong s 20 ngi đc chn ngu nhiên trong mt qun th gm 20% bnh nhân cao 7 huyt áp, và chn mu đc lp li 1000 ln. Qua biu đ trên, chúng ta thy xác sut có 4 bnh nhân cao huyt áp (trong mi ln chn mu 20 ngi) là cao nht (22.9%). iu này cng có th hiu đc, bi vì t l cao huyt áp là 20%, cho nên chúng ta kì vng rng trung bình 4 ngi trong s 20 ngi đc chn phi là cao huyt áp. Tuy nhiên, điu quan trng mà biu đ trên th hin là có khi chúng ta quan sát đn 10 bnh nhân cao huyt áp dù xác sut cho mu này rt thp (ch 3/1000). Ví d 4: ng dng hàm phân phi nh phân: Hai mi khách hàng đc mi ung hai loi bia A và B, và đc hi h thích bia nào. Kt qu cho thy 16 ngi thích bia A. Vn đ đt ra là kt qu này có đ đ kt lun rng bia A đc nhiu ngi thích hn bia B, hay là kt qu ch là do các yu t ngu nhiên gây nên? Chúng ta bt đu gii quyt vn đ bng cách gi thit rng nu không có khác nhau, thì xác sut p=0.50 thích bia A và q=0.5 thích bia B. Nu gi thit này đúng, thì xác sut mà chúng ta quan sát 16 ngi trong s 20 ngi thích bia A là bao nhiêu. Chúng ta có th tính xác sut này bng R rt đn gin: > 1- pbinom(15, 20, 0.5) [1] 0.005908966 áp s là xác sut 0.005 hay 0.5%. Nói cách khác, nu qu tht hai bia ging nhau thì xác sut mà 16/20 ngi thích bia A ch 0.5%. Tc là, chúng ta có bng chng cho thy kh nng bia A qu tht đc nhiu ngi thích hn bia B, ch không phi do yu t ngu nhiên. Chú ý, chúng ta dùng 15 (thay vì 16), là bi vì P(X ≥ 16) = 1 – P(X ≤ 15). Mà trong trng hp ta đang bàn, P(X ≤ 15) = pbinom(15, 20, 0.5). 6.3.2 Hàm phân phi Poisson (Poisson distribution) Hàm phân phi Poisson, nói chung, rt ging vi hàm nh phân, ngoi tr thông s p thng rt nh và n thng rt ln. Vì th, hàm Poisson thng đc s dng đ mô t các bin s rt him xy ra (nh s ngi mc ung th trong mt dân s chng hn). Hàm Poisson còn đc ng dng khá nhiu và thành công trong các nghiên cu k thut và th trng nh s lng khách hàng đn mt nhà hàng mi gi. Ví d 5: Hàm mt đ Poisson (Poisson density probability function). Qua theo dõi nhiu tháng, ngi ta bit đc t l đánh sai chính t ca mt th kí đánh máy. Tính trung bình c khong 2.000 ch thì th kí đánh sai 1 ch. Hi xác sut mà th kí đánh sai chính t 2 ch, hn 2 ch là bao nhiêu? Vì tn s khá thp, chúng ta có th gi đnh rng bin s “sai chính t” (tm đt tên là bin s X) là mt hàm ngu nhiên theo lut phân phi Poisson. đây, chúng ta có 8 t l sai chính t trung bình là 1( λ = 1). Lut phân phi Poisson phát biu rng xác sut mà X = k, vi điu kin t l trung bình λ , : () | ! k e PX k k λ λ λ − == Do đó, đáp s cho câu hi trên là: () 22 1 2 | 1 0.1839 2! e PX λ − === = . áp s này có th tính bng R mt cách nhanh chóng hn bng hàm dpois nh sau: > dpois(2, 1) [1] 0.1839397 Chúng ta cng có th tính xác sut sai 1 ch, và xác sut không sai ch nào: > dpois(1, 1) [1] 0.3678794 > dpois(0, 1) [1] 0.3678794 Chú ý trong hàm trên, chúng ta ch đn gin cung cp thông s k = 2 và ( λ = 1. Trên đây là xác sut mà th kí đánh sai chính t đúng 2 ch. Nhng xác sut mà th kí đánh sai chính t hn 2 ch (tc 3, 4, 5, … ch) có th c tính bng: ()( ) ( ) 2 3 4 ( 5) .PX PX PX PX>= =+ =+ =+ = ( ) 12PX− ≤ = 1 – 0.3678 – 0.3678 – 0.1839 = 0.08 Bng R, chúng ta có th tính nh sau: # P(X ≤ 2) > ppois(2, 1) [1] 0.9196986 # 1-P(X ≤ 2) > 1-ppois(2, 1) [1] 0.0803014 6.3.3 Hàm phân phi chun (Normal distribution) Hai lut phân phi mà chúng ta va xem xét trên đây thuc vào nhóm phân phi áp dng cho các bin s phi liên tc (discrete distributions), mà trong đó bin s có nhng giá tr theo bc th hay th loi. i vi các bin s liên tc, có vài lut phân phi 9 thích hp khác, mà quan trng nht là phân phi chun. Phân phi chun là nn tng quan trng nht ca phân tích thng kê. Có th nói không ngoa rng hu ht lí thuyt thng kê đc xây dng trên nn tng ca phân phi chun. Hàm mt đ phân phi chun có hai thông s: trung bình µ và phng sai σ 2 (hay đ lch chun σ ). Gi X là mt bin s (nh chiu cao chng hn), hàm mt đ phân phi chun phát biu rng xác sut mà X = x là: () () () 2 2 2 1 |, exp 2 2 x PX x f x µ µσ σ πσ − === − Ví d 6: Hàm mt đ phân phi chun (Normal density probability function). Chiu cao trung bình hin nay ph n Vit Nam là 156 cm, vi đ lch chun là 4.6 cm. Cng bit rng chiu cao này tuân theo lut phân phi chun. Vi hai thông s µ=156, σ=4.6, chúng ta có th xây dng mt hàm phân phi chiu cao cho toàn b qun th ph n Vit Nam, và hàm này có hình dng nh sau: 130 140 150 160 170 180 190 200 0.00 0.02 0.04 0.06 0.08 Probability distribution of height in Vietnamese women Height f(height) Biu đ 2. Phân phi chiu cao ph n Vit Nam vi trung bình 156 cm và đ lch chun 4.6 cm. Trng hoành là chiu cao và trc tung là xác sut cho mi chiu cao. Biu đ trên đc v bng hai lnh sau đây. Lnh đu tiên nhm to ra mt bin s height có giá tr 130, 131, 132, …, 200 cm. Lnh th hai là v biu đ vi điu kin trung bình là 156 cm và đ lch chun là 4.6 cm. > height <- seq(130, 200, 1) > plot(height, dnorm(height, 156, 4.6), type="l", ylab=”f(height)”, xlab=”Height”, 10 main="Probability distribution of height in Vietnamese women") Vi hai thông s trên (và biu đ), chúng ta có th c tính xác sut cho bt c chiu cao nào. Chng hn nh xác sut mt ph n Vit Nam có chiu cao 160 cm là: P(X = 160 | µ=156, σ=4.6) = () () 2 2 160 156 1 exp 4.6 2 3.1416 24.6 − − × = 0.0594 Hàm dnorm(x, mean, sd)trong R có th tính toán xác sut này cho chúng ta mt cách gn nh: > dnorm(160, mean=156, sd=4.6) [1] 0.05942343 Hàm xác sut chun tích ly (cumulative normal probability function). Vì chiu cao là mt bin s liên tc, trong thc t chúng ta ít khi nào mun tìm xác sut cho mt giá tr c th x, mà thng tìm xác sut cho mt khong giá tr a đn b. Chng hn nh chúng ta mun bit xác sut chiu cao t 150 đn 160 cm (tc là P(160 ≤ X ≤ 150), hay xác sut chiu cao thp hn 145 cm, tc P(X < 145). tìm đáp s các câu hi nh th, chúng ta cn đn hàm xác sut chun tích ly, đc đnh ngha nh sau: P(a ≤ X ≤ b) = () b a f xdx ∫ Thành ra, P(160 ≤ X ≤ 150) chính là din tích tính t trc hoành = 150 đn 160 ca biu đ 2. Trong R có hàm pnorm(x, mean, sd) dùng đ tính xác sut tích ly cho mt phân phi chun rt có ích. pnorm (a, mean, sd) = () a f xdx −∞ ∫ = P(X ≤ a | mean, sd) Chng hn nh xác sut chiu cao ph n Vit Nam bng hoc thp hn 150 cm là 9.6%: > pnorm(150, 156, 4.6) [1] 0.0960575 Hay xác sut chiu cao ph n Vit Nam bng hoc cao hn 165 cm là: > 1-pnorm(164, 156, 4.6) [1] 0.04100591 Nói cách khác, ch có khong 4.1% ph n Vit Nam có chiu cao bng hay cao hn 165 cm. . trng hp nh sau. Bn 1 Bn 2 Bn 3 Xác sut Nam Nam Nam (0.4)(0.4)(0.4) = 0 .064 Nam Nam N (0.4)(0.4)(0.6) = 0.096 Nam N Nam (0.4)(0.6)(0.4) = 0.096 Nam. xác sut mà tt c 3 bn đc chn đu là nam gii là: 0.4 x 0.4 x 0.4 = 0 .064 . Trong bng trên, chúng ta thy có 3 trng hp mà trong đó có 2 bn gái: