Voleybol ve DNA QBASIC programlama dilindeki aşağıdaki programı işletiniz. CLS : SCREEN 12 : WINDOW (-50, 120)-(120, -20) CIRCLE (0, 0), 5, 1 : CIRCLE (100, 0), 5, 1 :CIRCLE (50, 80), 5, 1 PRINT "Bir tusu basili tutunuz" PRINT "Son:Ctrl+Break+bir tus" TUS$ = INPUT$(1) RANDOMIZE TIMER P = RND SELECT CASE P CASE 0 TO 1 / 3 x=0 : y=0 CASE 1 / 3 TO 2 / 3 x = 100 : y = 0 CASE 2 / 3 TO 1 x = 50 : y = 80 END SELECT DO CIRCLE (0, 0), 5, 1 CIRCLE (100, 0), 5, 1 CIRCLE (50, 80), 5, 1 IF x <= 10 AND y < 10 THEN GOSUB 10 IF x >= 90 AND y <= 10 THEN GOSUB 20 IF y >= 50 THEN GOSUB 30 LOOP 10 x = 0 : y = 0 P = RND SELECT CASE P CASE 0 TO 1 / 2 a=1: b=0 CASE 1 / 2 TO 1 a = .5 : b = .8 END SELECT FOR I = 1 TO 20 x=x+a*5 : y=y+b*5 K=3 CIRCLE (x, y), K, 14 : PAINT (x, y), 14 GOSUB 60 NEXT I RETURN 20 x = 100 : y = 0 P = RND SELECT CASE P CASE 0 TO 1 / 2 a = -1 : b = 0 CASE 1 / 2 TO 1 a = -.5 : b = .8 END SELECT FOR I = 1 TO 20 x=x+a*5:y=y+b*5 K=3 CIRCLE (x, y), K, 14 PAINT (x, y), 14 GOSUB 60 NEXT I RETURN 30 x = 50 : y = 80 P = RND SELECT CASE P CASE 0 TO 1 a = -.5 : b = -.8 CASE 1 TO 1 a = .5 : b = -.8 END SELECT FOR I = 1 TO 20 x=x+a*5 y=y+b*5 K=3 CIRCLE (x, y), K, 14 PAINT (x, y), 14 GOSUB 60 NEXT I RETURN 60 TUS$ = INPUT$(1) CIRCLE (x, y), K, 0 PAINT (x, y), 0 RETURN Üç kişi aralarında voleybol oynamaktadır. Dikkat ettiyseniz, oyuculardan birisi top kendine geldiğinde hep aynı kişiye pas vermektedir. Bu Ahmet. Diğer iki oyuncu Bahar ve Ceren. Bahar ile Ceren top kendilerine geldiğinde topu iki arkadaşından birine, Ahmet ise top kendine geldiğinde hep Bahar’a pas vermektedir. Programa göre, Bahar ve Ceren 0.5 olasılıkla topu iki arkadaşından birine atmaktadır. Oyuncuların paslaşma olasılıkları değişmemektedir. Oyuncular, oyunun geçmişine bakarak paslaşma olasılıklarını değiştirebilir. Paslaşma olasılıkları zamanın (pas sayısının) fonksiyonu olabilir. Hattâ Ceren, topu atmadan önce paslaşma olasılıklarını, son 10 paslaşmaya bakarak belirliyor olabilir. Oyun içinde (süreçte) top üç kişiden (durumdan) birinde olmaktadır. Durum uzayı, E ={Bahar, Ceren, Ahmet} olan bir kesikli zaman stokastik süreci, belki de bir Markov Zinciri ile karşı karşıyayız. Hatırlatma: X1 , X 2 ,..., X n ,... dizisindeki rasgele değişkenlerin değerler aldığı küme E sonlu veya sayılabilir sonsuz ve her i1 , i2 ,..., in1 , in E için P( X n in / X1 i1 , X 2 i2 ,..., X n in1 ) P( X n in / X n in1 ) oluyorsa X n , n 1, 2,... sürecine Markov zinciri denir. Ahmet 0.5 0.5 1 Bahar 0.5 Ceren 0.5 Ahmet, Bahar ve Ceren’i sırasıyla A,B,C harfleri veya 1,2,3 rakamları ile kodlarsak durum uzayı da denen E kümesi, E 1, 2,3 olur. pij P( X n i / X n1 j ) , i, j 1, 2,3 olmak üzere, bir adım geçiş olasılıkları matrisi, P ( pij )33 1 0 0 0.5 0 0.5 0.5 0.5 0 olsun. Topun Cerende olduğu bilindiğinde, bir adım sonra durumların olasılıkları, é0 1 0ù ê ú [001] ê0.5 0 0.5ú= [0.5 0.5 0] ê ú ê0.5 0.5 0 ú ë û üç adım sonra durumların olasılıkları, é0 1 0 ùé 0 1 0 ùé 0 1 0ù ê úê úê ú [001] ê0.5 0 0.5úê0.5 0 0.5úê0.5 0 0.5ú= [0.375 0.375 0.25] ê úê úê ú ê0.5 0.5 0 úê0.5 0.5 0 úê0.5 0.5 0 ú ë ûë ûë û on adım sonra durumların olasılıkları, 10 é0 1 0ù ê ú [0 01] ê0.5 0 0.5ú = [0.33 0.45 0.22] ê ú ê0.5 0.5 0 ú ë û dır. Ayrıca, [0 0 1]*P^15=[0.33334 0.44431 0.22235] [0 0 1]*P^20=[0.33333 0.44445 0.22222] [0 0 1]*P^25=[0.33333 0.44444 0.22222] [0 0 1]*P^30=[0.33333 0.44444 0.22222] [0 0 1]*P^40=[0.33333 0.44444 0.22222] Matlab çıktılarını da gözden geçiriniz. Başlangıçta top Cerende olsun. Oyun epeyce oynandıktan sonra, belli bir adımda topun Cerende olması olasılığı 0.22222 dir. P^10 ans = 0.33398 0.4375 0.22852 0.33301 0.44824 0.21875 0.33301 0.44727 0.21973 0.33331 0.44476 0.22192 0.33334 0.44427 0.22238 0.33334 0.44431 0.22235 0.33333 0.44443 0.22223 0.33333 0.44445 0.22222 0.33333 0.44445 0.22222 0.33333 0.44444 0.22222 0.33333 0.44444 0.22222 0.33333 0.44444 0.22222 0.33333 0.44444 0.22222 0.33333 0.44444 0.22222 0.33333 0.44444 0.22222 >> P^15 ans = >> P^20 ans = >> P^25 ans = >> P^30 ans = çıktılarına bakılırsa, başlangıçta top kimde olursa olsun, oyun epeyce oynandıktan sonra, belli bir adımda topun Cerende olması olasılığı 0.22222 dir. Oyunculardan, özellikle Ahmet, Bahar’a pas atmakla birlikte topu havalandırarak kendisine düşecek şekilde ½ olasılıkla havaya atmaktadır. Bu durumda geçiş olasılıkları matrisi, 0.5 0.5 0 P 0.5 0 0.5 0.5 0.5 0 olmak üzere, P^10 ans = 0.5 0.33301 0.16699 0.5 0.33398 0.16602 0.5 0.33301 0.16699 0.5 0.33334 0.16666 0.5 0.33331 0.16669 0.5 0.33334 0.16666 0.5 0.33333 0.16667 0.5 0.33333 0.16667 0.5 0.33333 0.16667 0.5 0.33333 0.16667 0.5 0.33333 0.16667 0.5 0.33333 0.16667 P^15 ans = P^20 ans = P^25 ans = dır. Oyun epeyce oynandıktan sonra, belli bir adımda topun Cerende olması olasılığı 0.16667 olup, önceki oyuna göre daha düşüktür. Şimdi, ilk oyunun 50 paslaşmalı bir gelişimini izleyelim. Ahmet, Bahar ve Ceren sırasıyla 1,2,3 rakamları ile kodlanmış. clear all;close all;rand('seed',0) P=[0 1 0; .5 0 .5; .5 .5 0]; nn=size(P,1); Durum=1; for n=1:50 i=Durum; a=rand(1,1); Durum=1; for j=1:(nn-1) if a>sum(P(i,1:j)) Durum=j+1; end,end zincir(n)=Durum; end zincir zincir = 2 1 2 3 2 1 2 3 1 2 3 2 1 2 1 2 3 2 3 2 3 1 2 1 2 3 2 1 2 3 1 2 3 2 1 2 3 2 3 2 1 2 3 1 2 3 1 2 1 2 İkinci oyunun 50 paslaşmalı bir gelişimi, (P=[.5 .5 0;.5 0 .5; .5 .5 0]) zincir = 1 1 2 3 2 1 2 3 1 1 2 3 1 1 1 1 2 3 2 3 2 1 2 1 2 3 2 1 1 2 1 2 3 2 1 1 2 3 2 3 1 2 3 1 1 2 1 1 1 1 olmak üzere, bu oyunda 1 lerin daha çok gözlendiği hemen göze batmaktadır. Bu oyunda 1 ‘lerden sonra mutlaka 2 gelmemektedir. İkinci oyundaki son 3 atışta Ahmet rasgele de olsa topu 3 kez kendisine havalandırmıştır. Benzer bir durum 13. atıştan sonra da olmuştur. Ahmet’in topu üç kez ardı ardına kendisine vermesi olasılığı 0.125 dir. On kez ardı ardına kendisine vermesi olasılığı ise 0.00098 dir. Bu iki dizideki sayıların nasıl üretildiğini bilmiyor olsaydık, “rasgeleliği” tamamen bertaraf etmeden, farklı olduklarını nasıl söyleriz? Birincisinde 1 den 2 ye geçişte rasgelelik olmadığını, ikincisinde ise 1 1 1 1 serisinin rasgele olduğunu nasıl söyleriz? İstatistikçilerin işi. Bir DNA dizisindeki adenin (A), sitozin (C) guanin (G) ve timin (T) bazları yerlerini nasıl almıştır? Bilmiyorum. Genetikçiler bilir. Bir DNA dizisinde adeninden sonra adenin %32, sitozin %18, guanin %23, timin %27 olarak, sitozinden sonra adenin %37, sitozin %23, guanin %05, timin %35 olarak, guaninden sonra adenin %30, sitozin %21, guanin %25, timin %24 olarak ve timinden sonra adenin %23, sitozin %19, guanin %25, timin %33 olarak gözlenmiş olsun. Bu oranları geçiş olasılıkları olarak düşünüp, bu DNA dizilişinin bir Markov sürecindeki gelişme sonucu ortaya çıkıp çıkmadığını nasıl söyleriz? İstatistikçilere bir iş daha. Geçiş olasılıkları matrisi, P=[.32 .18 .23 .27 .37 .23 .05 .35 .30 .21 .25 .24 .23 .19 .25 .33] olan dört durumlu bir Markov zincirinde neler olmaktadır? Durumlar 1,2,3,4 rakamlari ile kodlansın. Aşağıdaki Matlab programı ile bu geçiş olasılıklarına dayalı Markov zincirinin simülasyonu yapılabilir. clear all;close all P=[.32 .18 .23 .27 .37 .23 .05 .35 .30 .21 .25 .24 .23 .19 .25 .33] nn=size(P,1); Durum=1 for n=1:50 i=Durum; a=rand(1,1); Durum=1; for j=1:(nn-1) if a>sum(P(i,1:j)) Durum=j+1; end end zincir(n)=Durum; end zincir Bu program ile üretilen bir dizi aşağıdaki gibidir. 1 4 1 4 3 2 3 1 4 4 2 2 2 3 4 3 1 4 1 2 3 1 3 4 1 4 2 4 1 3 2 1 4 3 3 4 4 2 4 2 3 4 1 3 3 1 2 1 4 2 Bu dizi için gözlenen frekanslar ve oranlar, A C G T 12 11 12 15 0.24 0.30 0.24 0.22 dır. Bu oranlara bağlı olarak hesaplanan entropi, H =1.9899 dır. Bilindiği gibi, entropi bir sistemin kararsızlık ölçüsü ile ilgili bir kavramdır. Kesikli durumlarda bulunabilen bir sistemin veya bir X rasgele değişkenin ( X rasgele değişkenin aldığı değerler sistemin bulunabileceği durumlar olmak üzere) H ( X ) ile gösterilen entropisi, n H ( X ) pi log pi E log( f ( X )) i 1 olarak tanımlanır. Logaritmanın tabanı genellikle 2 olarak alınır. Bu durumda, Durumlar x1 pi P( X xi ) x2 p1 1 2 p2 1 2 gibi bir sistemin entropisi, 2 1 1 1 1 H ( X ) pi log 2 pi ( log 2 log 2 ) 2 2 2 2 i 1 1 1 ( log 2 2 log 2 2) 1 2 2 olur. Entropinin tanımında logaritmanın tabanı 2 olarak seçildiğinde, eşit olasılıklı iki durumlu bir sistemin entropisi, entropi ölçü birimidir. Birim entropiye “bit” denir. Örneğin, düzgün bir paranın üç kez atılışındaki olasılıklara sahip, 8 durumlu bir sistemin entropisi, YYY YYT YTY TYY YTT TYT TTY TTT 1/8 1/8 1/8 1/8 1/8 1/8 1/8 1/8 1 1 H ( log 2 )8 3 (bit) 8 8 dır. N tane eşit olasılıklı durum gösteren bir sistemin entropisi N bit’tir. Sadece bir durumda bulunan bir sistemin entropisi sıfırdır. İki boyutlu durumda, entropi n H ( X , Y ) i 1 m P( X x , Y y ) log j 1 i j 2 P( X xi , Y y j ) olarak tanımlanır. Bağımsızlık durumunda, P( X xi , Y y j ) P( X xi ) P(Y y j ) olmak üzere, H ( X , Y ) H ( X ) H (Y ) dır. A, C, G, T bazları ile 16 tane ikili oluşturulabilir. Eşit olasılıklı 16 durumlu bir sistemin entropisi 4 bittir. Bir DNA dizisindeki A, C, G, T bazları ard arda ikililer olarak alınıp, AA , AC , AG , AT CA , CC , CG , CT GA , GC , GG , GT TA , TC , TG , TT ikililerinin frekansları ve oranları gözlenebilir. Gözlenen oranlardan hesaplanan entropi H 2 ile gösterilsin. İkilinin birinci elemanı ile ikinci elemanının bağımsızlığı hipotezi altında hesaplanan entropi de Hb ile gösterilsin. Bu değerleri ve ilgili ki-kare testlerini yapan aşağıdaki Matlab programını ve çıktılarını gözden geçiriniz. clc;clear all;close all;rand('seed',0) P=[.32 .18 .23 .27;.37 .23 .05 .35; .30 .21 .25 .24; .23 .19 .25 .33]; nn=size(P,1); Durum=1; for n=1:1000 i=Durum; a=rand(1,1); Durum=1; for j=1:(nn-1) if a>sum(P(i,1:j)) Durum=j+1; end,end zincir(n)=Durum; end S=zincir; syms A C G T for k=1:size(S,2) if S(k)==1 dna(k)=A; end if S(k)==2 dna(k)=C; end if S(k)==3 dna(k)=G; end if S(k)==4 dna(k)=T; end end dna 'Gozlenen frekansların cubuk diyagramı' hist(S) 'A,C,G,T bazlarının oranlarının eşitligi hipotezi' gozfr=hist(S,nn) bekfr=size(S,2)/nn*ones(1,nn); kikarehes=sum(((gozfr-bekfr).^2)./bekfr) p_value=1-chi2cdf(kikarehes,3) 'Entropi ve maksimum entropiden uzaklaşma' gozoran=gozfr/size(S,2); H=-sum(sum(gozoran.*(log(gozoran)./log(2)))) Hmax=log(nn)/log(2) D1=Hmax-H 'Ikili bazlar için gözlenen frekanslar' bb=zeros(nn,nn); for i=1:1:size(S,2)-1 for j=1:nn for k=1:nn if [j k]==[S(i) S(i+1)] bb(j,k)=bb(j,k)+1; end,end,end,end bb; 'İkili bazlarda oranların eşitliği hipotezi' gozfr=bb bekfr=sum(sum(bb))/nn^2*ones(nn,nn) kikarehes=sum(sum(((gozfr-bekfr).^2)./bekfr)) p_value=1-chi2cdf(kikarehes,(size(P,1)-1)*(size(P,2)-1)) 'Entropi ve maksimum entropiden uzaklaşma' gozoran=gozfr/sum(sum(bb)); H2=-sum(sum(gozoran.*(log(gozoran)./log(2)))) Hmax=log(nn*nn)/log(2) D2=Hmax-H2 'İkilinin birinci elemanı ile ikinci elemanın bağımsızlığı hipotezi' frj=sum(bb); fri=sum(bb'); bekfr=fri'*frj./sum(sum(bb)) kikarehes=sum(sum(((gozfr-bekfr).^2)./bekfr)) p_value=1-chi2cdf(kikarehes,(size(P,1)-1)*(size(P,2)-1)) 'Bağımsızlık durumundaki entropiden uzaklaşma' oran=bekfr/sum(sum(bb)); Hb=-sum(sum(oran.*(log(oran)./log(2)))) D2bagimsizlik=Hb-H2 Çıktı: Simülasyon ile üretilen 1000 baz uzunluğundaki dizi için gözlenen frekansların çubuk diyagramı: 300 250 200 150 100 50 0 0.5 1 1.5 2 2.5 3 3.5 4 A,C,G,T bazlarının oranlarının eşitligi hipotezi gozfr = 276 228 221 275 (276 - 250) 2 (228 - 250) 2 (221- 250) 2 (275 - 250) 2 kikarehes = =10.504 + + + 250 250 250 250 p_value = 0.014734 Entropi ve maksimum entropiden uzaklaşma: H = 1.9924 Hmax = 2 D1 = 0.007598 Ardı ardına alınan ikili bazlarda oranların eşitliği hipotezi: Ikili bazlar için gözlenen frekanslar gozfr = 89 49 76 62 73 73 10 72 63 43 60 55 50 63 75 86 bekfr = 62.438 62.438 62.438 62.438 62.438 62.438 62.438 62.438 62.438 62.438 62.438 62.438 62.438 62.438 62.438 62.438 kikarehes = 87.158 p_value = 5.9952e-015 Entropi ve maksimum entropiden uzaklaşma H2 = 3.9208 Hmax = 4 D2 = 0.079203 İkilinin birinci elemanı ile ikinci elemanın bağımsızlığı hipotezi bekfr = 75.976 62.991 61.057 75.976 62.763 52.036 50.438 62.763 60.836 50.438 48.89 60.836 75.425 62.535 60.615 75.425 kikarehes = 73.194 p_value = 3.5889e-012 Bağımsızlık durumundaki entropiden uzaklaşma Hb = 3.9851 D2bagimsizlik=Hb-H2 = 0.064268