Creativity is just connecting things. When you ask creative people how they did something, they feel a little guilty because they didn’t really do it, they just saw something. It seemed obvious to them after a while. That’s because they were able to connect experiences they’ve had and synthesize new things. Steve Jobs
In this study, it is aimed to raise awareness by showing Markov chain terminology, which has an important place in data science, and its applications in R.
Not! Markov zinciri, belirli olasılık kurallarına göre bir durumdan diğerine geçişleri deneyimleyen matematiksel bir sistemdir. Bir Markov zincirinin tanımlayıcı özelliği, süreç şimdiki durumuna nasıl ulaşırsa ulaşsın, gelecekteki olası durumların sabit olmasıdır. Başka bir deyişle, herhangi bir belirli duruma geçme olasılığı, yalnızca mevcut duruma ve geçen zamana bağlıdır. Durum uzayı veya tüm olası durumlar kümesi herhangi bir şey olabilir: harfler, sayılar, hava koşulları, sağlık durumu, satış hacmi veya hisse senedi verileri.
Markov zinciri stokastik bir süreçtir, ancak genel bir stokastik süreçten farklıdır. Çünkü bir Markov zinciri “hafızasız” yani “memory-less” olmalıdır. Yani, gelecekteki eylemlerin (olasılığı) mevcut duruma yol açan adımlara bağlı değildir. Buna Markov özelliği denir. Markov zincirleri teorisi kesinlikle çok sayıda “günlük” süreç Markov özelliğini sağladığı için önemli olsa da Markov özelliğini karşılamayan birçok yaygın stokastik özellik örneği vardır.
Olasılık teorisinde en yakın örnek, herhangi bir durum geçişi olasılığının zamandan bağımsız olduğu, zamana bağlı homojen bir Markov zinciridir. Böyle bir süreç, herhangi bir düğümden uzayan kenar etiketlerinin toplamının 1 olduğu etiketli bir yönlendirilmiş grafik ile görselleştirilebilir. Bu süreç aşağıda yazılan R kod bloğu ile görselleştirilmiştir. Kod bloğunda Heemod kütüphanesi matrisin oluşturulması, diyagramın çizimi için ise diagram kütüphanesi kullanılarak geçiş olasılığı grafiği çizilmiştir.
Not! Genellikle geçiş olasılıklarını bir matris içerisinde gösteririr. Geçiş olasılıklarının gösterildiği bu matris durum geçiş matrisi veya geçiş olasılık matrisi olarak adlandırılmaktadır.Genellikle geçiş olasılık matrisi \(P\) ile gösterilmektedir. Durumlar \(1,2,3,4,...,r\) şeklinde gösterilmektedir. Durum matrisini aşağıdaki eşitlikte yer alan matris ile gösterebiliriz.
\[P = \begin{vmatrix} P_{11} & P_{12}&...&P_{1r}\\ P_{21} & P_{22}&...&P_{2r}\\ . & .&.&.\\ . & .&.&.\\ . & .&.&.\\ P_{r1} & P_{r2}&...&P_{rr} \end{vmatrix}\]
Matriste \(P_{ij}\ge0\) olduğu için \(\sum_{k=1}^{r} P_{ik}=\sum_{k=1}^{r} P(X_{m+1=k}|X_{m=i})\) eşittir. Eşitlikte i durumları göstermektedir. Eşitliğimizin 1’e eşit olmasının nedeni ise olasılık kuramının doğal gereği bütün durum olasılıklarının toplamının 1’e eşit olmasıdır.Yani, herhangi bir durum geçiş matrisinin satırlarının toplamı bir olmalıdır.
Bir Markov zinciri genellikle bir durum geçiş diyagramı ile gösterilir. Üç olası durumumuz ölümcül hastalık grubunda kabul edilen Kanser, AIDS ve SMA hastalıkları olsun ve aşağıdaki geçiş olasılıklarına sahip bir Markov zinciri düşünelim. Örneğimizde bu hastalıklardan ölümlerin durum geçiş olasılıkları varsayımsal olarak aşağıdaki matristeki gibi olsun.
\[P = \begin{vmatrix} \displaystyle\frac{4}{8} & \displaystyle\frac{2}{8}&\displaystyle\frac{2}{8}\\ \displaystyle\frac{2}{8} & \displaystyle\frac{3}{8}&\displaystyle\frac{3}{8}\\ \displaystyle\frac{6}{8} & \displaystyle\frac{1}{8}&\displaystyle\frac{1}{8} \end{vmatrix}\]
kütüphane<-c("dplyr","tibble","report","tidyr","ggplot2","readr","readxl","ggpubr", "ggstance","scales", "rmarkdown", "knitr","writexl", "kableExtra", "markovchain", "diagram","heemod")
yükle<-sapply(kütüphane, require, character.only = TRUE, warn.conflicts = FALSE)
#Kütüphane yüklenme durumunu gösteren tablo
tablo=suppressWarnings(yükle, classes = "warning")
isim=names(tablo)
deger=as_tibble(tablo)
data.frame(Sıra=1:length(isim), Kütüphane=isim, Durumu=deger$value) %>% mutate(Durumu=if_else(Durumu==TRUE, "Yüklendi", "Paket Kurulumu Gerekli")) %>% kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Sıra | Kütüphane | Durumu |
---|---|---|
1 | dplyr | Yüklendi |
2 | tibble | Yüklendi |
3 | report | Yüklendi |
4 | tidyr | Yüklendi |
5 | ggplot2 | Yüklendi |
6 | readr | Yüklendi |
7 | readxl | Yüklendi |
8 | ggpubr | Yüklendi |
9 | ggstance | Yüklendi |
10 | scales | Yüklendi |
11 | rmarkdown | Yüklendi |
12 | knitr | Yüklendi |
13 | writexl | Yüklendi |
14 | kableExtra | Yüklendi |
15 | markovchain | Yüklendi |
16 | diagram | Yüklendi |
17 | heemod | Yüklendi |
Yukarıda durumlara ilişkin durum geçiş matrisinin diyagramını aşağıda yazılan kod bloğu ile çizebiliriz.Burada durum geçiş diyagramını oluştururken diagram kütüphanesi altyapısı kullanılmıştır.
m = matrix(c(4/8, 2/8, 2/8, 2/8, 3/8, 3/8, 6/8, 1/8, 1/8), nrow = 3, byrow = TRUE)
durum <- c("Kanser", "AIDS", "SMA")
row.names(m) <- durum
colnames(m) <- durum
m %>%
kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Kanser | AIDS | SMA | |
---|---|---|---|
Kanser | 0.50 | 0.250 | 0.250 |
AIDS | 0.25 | 0.375 | 0.375 |
SMA | 0.75 | 0.125 | 0.125 |
plotmat(m,
lwd = 1, pos = c(1,2),box.lwd = 2,
cex.txt = 0.8,
box.size = 0.1,
box.type = "circle",
box.prop = 0.5,
box.col = "light green",
arr.length=.2,
arr.width=.2,
self.cex = .6,
self.shifty = -.01,
self.shiftx = .14,
main = "Durum Geçiş Diyagramı")
Yukarıda çizilen geçiş diyagramını dilersek aşağıda yazılan kod bloğu ile de alternatif olarak çizebiliriz. Burada da bir önceki diyagram örneğinde olduğu gibi diagram kütüphanesi altyapısı kullanılmıştır. Tek fark, burada heemod kütüphanesi ile diagram kütüphanesinin birlikte kullanılmış olmasıdır.
vektor=c(4/8, 2/8, 2/8, 2/8, 3/8, 3/8, 6/8, 1/8, 1/8)
dm= define_transition(state_names = c("Kanser", "AIDS", "SMA"),
0.500, 0.250, 0.250,
0.250, 0.375, 0.375,
0.750, 0.125, 0.125)
plot(dm, relsize = 0.75)
Yukarıda çizilen geçiş diyagramını dilersek aşağıda yazılan kod bloğu ile bir diğer alternatif olarak çizebiliriz. Burada markovchain kütüphanesi durum geçiş diyagramını oluştururken igraph kütüphanesi altyapısını kullanmaktadır.
m = matrix(c(4/8, 2/8, 2/8, 2/8, 3/8, 3/8, 6/8, 1/8, 1/8), nrow = 3, byrow = TRUE)
dm = new('markovchain', transitionMatrix = m, states = c("Kanser", "AIDS", "SMA"), name = '3 Boyutlu Durum Geçiş Matrisi')
plot(dm, main = "Durum Geçiş Diyagramı",
vertex.size = 60,
vertex.color="light green",
vertex.frame.color= "white",
vertex.label.color = "black",
edge.width=2, edge.arrow.size=.5)
Burada durumlar arasındaki geçiş olasılıkları tablo düzeninde verilmiştir.
library(tibble)
m = matrix(c(4/8, 2/8, 2/8, 2/8, 3/8, 3/8, 6/8, 1/8, 1/8), nrow = 3, byrow = TRUE)
dm = new('markovchain', transitionMatrix = m, states = c("Kanser", "AIDS", "SMA"), name = '3 Boyutlu Durum Geçiş Matrisi')
# Durumlar
d=c("Kanserden AIDS'e geçiş olasılığı","Kanserden SMA'ya geçiş olasılığı","AIDS'ten SMA'ya geçiş olasılığı")
# Geçiş olasılıkları
o1=transitionProbability(dm, "Kanser", "AIDS")
o2=transitionProbability(dm, "Kanser", "SMA")
o3=transitionProbability(dm, "AIDS", "SMA")
tibble(Durumlar=d, "Olasılık Değeri"=c(o1,02,03))%>%
kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Durumlar | Olasılık Değeri |
---|---|
Kanserden AIDS’e geçiş olasılığı | 0.25 |
Kanserden SMA’ya geçiş olasılığı | 2.00 |
AIDS’ten SMA’ya geçiş olasılığı | 3.00 |
Bu başlık altında ise durum geçiş olasılık matrisinin adı ve başta ele aldığımız durumlar vektör düzeninde verilmiştir.
m = matrix(c(4/8, 2/8, 2/8, 2/8, 3/8, 3/8, 6/8, 1/8, 1/8), nrow = 3, byrow = TRUE)
dm = new('markovchain', transitionMatrix = m, states = c("Kanser", "AIDS", "SMA"), name = '3 Boyutlu Durum Geçiş Matrisi')
paste("Durum ",1:3,":", states(dm),sep = "", collapse = ", ") %>% as_tibble() %>% rename("Durumların Adları"=value) %>% kable() %>% kable_styling(bootstrap_options = c("striped", "hover"))# durumların adları
Durumların Adları |
---|
Durum 1:Kanser, Durum 2:AIDS, Durum 3:SMA |
# Alternatif
paste("Durum ",1:3,":", names(dm),sep = "", collapse = ", ") %>% as_tibble() %>% rename("Durumların Adları"=value) %>% kable() %>% kable_styling(bootstrap_options = c("striped", "hover"))# durumların adları
Durumların Adları |
---|
Durum 1:Kanser, Durum 2:AIDS, Durum 3:SMA |
tibble("Marcov Zincirinin Adı"=name(dm))%>% kable() %>% kable_styling(bootstrap_options = c("striped", "hover"))# markov zincirinin adı
Marcov Zincirinin Adı |
---|
3 Boyutlu Durum Geçiş Matrisi |
Not! Mevcut durum göz önüne alındığında, sonraki durumun koşullu dağılımı aşağıda yazılan conditionalDistribution() fonksiyonu ile yazılır. Koşullu olasılıktan bahsetmiş iken olasılık teorisindeki yerinden kısaca bahsedelim. Koşullu olasılık dağılımları sürekli ve kesikli rassal değişkenler için ele alınmaktadır.Koşullu olasılık dağılımı, bir alt popülasyon için bir olasılık dağılımıdır. Yani, koşullu olasılık dağılımı, bir alt popülasyondan rastgele seçilen bir kişi veya nesnenin ilgilenilen tek özelliğe sahip olma olasılığını tanımlar.Koşullu olasılığa günümüzde yaşanan COVID-19 pandemisi üzerinden örnek verebiliriz. Örneğin, rastgele seçilen bir kişi maske takmaz ise COVID-19’a yakalanma olasılığı nedir?
\(P(A|B)\) biçiminde gösterilen koşullu olasılıkta \(P(A|B)\), B gibi bir olayın gerçekleştiği bilindiğinde A olayının olasılığı ya da tam tersi olarak tanımlanır. Koşulluk olasılık \(P(A|B)=\displaystyle\frac{p(A \cap B)}{p(B)}\) şeklinde ifade edilebilir.
Aşağıda yazılan kod bloğunda Kanser, AIDS ve SMA durumlarının koşullu olasılık değerleri verilmiştir.
m = matrix(c(4/8, 2/8, 2/8, 2/8, 3/8, 3/8, 6/8, 1/8, 1/8), nrow = 3, byrow = TRUE)
dm = new('markovchain', transitionMatrix = m, states = c("Kanser", "AIDS", "SMA"), name = '3 Boyutlu Durum Geçiş Matrisi')
#Kanserin koşullu olasılığı
k=conditionalDistribution(dm, "Kanser")
#AIDS'in koşullu olasılığı
a=conditionalDistribution(dm, "AIDS")
#SMA'nın koşullu olasılığı
s=conditionalDistribution(dm, "SMA")
d=c("Kanserin koşullu olasılığı","AIDS'in koşullu olasılığı","SMA'nın koşullu olasılığı")
cbind(d, rbind(k,a,s))%>%
as_tibble() %>%
rename("Koşullu Olasılıklar"=d) %>%
kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Koşullu Olasılıklar | Kanser | AIDS | SMA |
---|---|---|---|
Kanserin koşullu olasılığı | 0.5 | 0.25 | 0.25 |
AIDS’in koşullu olasılığı | 0.25 | 0.375 | 0.375 |
SMA’nın koşullu olasılığı | 0.75 | 0.125 | 0.125 |
Not! Bir Markov zinciri için çıktısı, zincir orada başladığında ilk duruma geri dönmesi beklenen zamana sahip adlandırılmış bir vektördür. Vektörde bulunan durumlar sadece tekrarlayan durumlardır. Matris ergodik ise (yani indirgenemez), o zaman çıktıda tüm durumlar mevcuttur ve sıra Markov zinciri için durum sırası ile aynıdır.
m = matrix(c(4/8, 2/8, 2/8, 2/8, 3/8, 3/8, 6/8, 1/8, 1/8), nrow = 3, byrow = TRUE)
dm = new('markovchain', transitionMatrix = m, states = c("Kanser", "AIDS", "SMA"), name = '3 Boyutlu Durum Geçiş Matrisi')
meanRecurrenceTime(dm)%>% as_tibble() %>% rename("Ortalama Nüksetme Zamanı"=value)%>% add_column(Durumlar=c("Kanser", "AIDS", "SMA"), .before="Ortalama Nüksetme Zamanı")%>%
kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Durumlar | Ortalama Nüksetme Zamanı |
---|---|
Kanser | 2 |
AIDS | 4 |
SMA | 4 |
Bu kısımda ilk geçiş olasılıklarına göre dağılımı hesaplanan gözlemlerin sayısı verilmiştir.
m = matrix(c(4/8, 2/8, 2/8, 2/8, 3/8, 3/8, 6/8, 1/8, 1/8), nrow = 3, byrow = TRUE)
dm = new('markovchain', transitionMatrix = m, states = c("Kanser", "AIDS", "SMA"), name = '3 Boyutlu Durum Geçiş Matrisi')
firstPassage(dm, "SMA", 20)%>%
kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Kanser | AIDS | SMA |
---|---|---|
0.7500000 | 0.1250000 | 0.1250000 |
0.1250000 | 0.2031250 | 0.2343750 |
0.0625000 | 0.1425781 | 0.1894531 |
0.0312500 | 0.1145020 | 0.1364746 |
0.0156250 | 0.0893860 | 0.0957336 |
0.0078125 | 0.0701790 | 0.0667076 |
0.0039063 | 0.0550351 | 0.0464025 |
0.0019531 | 0.0431693 | 0.0322637 |
0.0009766 | 0.0338602 | 0.0224304 |
0.0004883 | 0.0265588 | 0.0155937 |
0.0002441 | 0.0208318 | 0.0108407 |
0.0001221 | 0.0163397 | 0.0075364 |
0.0000610 | 0.0128163 | 0.0052392 |
0.0000305 | 0.0100526 | 0.0036423 |
0.0000153 | 0.0078849 | 0.0025321 |
0.0000076 | 0.0061847 | 0.0017603 |
0.0000038 | 0.0048510 | 0.0012237 |
0.0000019 | 0.0038050 | 0.0008507 |
0.0000010 | 0.0029845 | 0.0005914 |
0.0000005 | 0.0023409 | 0.0004112 |
Not! Bu kısımda varsayımsal olarak şu anki durum olasılıkları ortaya konularak 6 ay sonraki durum olasılıkları ortaya konulmuştur.Aşağıdaki sonuçlardan bireyin 3 ay sonra Kanserden ölme olasığının \(\%50\), AIDS’ten ölme olasılığının ise \(\%25\) olduğu olduğu görülmektedir.Aşağıda yapılan işlem, mevcut durum vektörünün \([0.35, 0.15, 0.5]\) ve geçiş matrisiyle çarpılmasını gerektirir. Yani matrislerde çarpım kuralını işletiyoruz.Ardından ise elde ettiğimiz sonucun adım olarak kuvvetini yani üssünü alıyoruz. Bahsedilenler aşağıdaki eşitlikte özetlenmiştir.
\[[0.35, 0.15, 0.5]x\begin{vmatrix} \displaystyle\frac{4}{8} & \displaystyle\frac{2}{8}&\displaystyle\frac{2}{8}\\ \displaystyle\frac{2}{8} & \displaystyle\frac{3}{8}&\displaystyle\frac{3}{8}\\ \displaystyle\frac{6}{8} & \displaystyle\frac{1}{8}&\displaystyle\frac{1}{8} \end{vmatrix}^{6}=[0.5, 0.25, 0.25]\]
set.seed(61)
m = matrix(c(4/8, 2/8, 2/8, 2/8, 3/8, 3/8, 6/8, 1/8, 1/8), nrow = 3, byrow = TRUE)
dm = new('markovchain', transitionMatrix = m, states = c("Kanser", "AIDS", "SMA"), name = '3 Boyutlu Durum Geçiş Matrisi')
suan=c(0.35, 0.15, 0.5)
adım=6
sondurum<-suan*dm^adım
sondurum %>%
as_tibble() %>%
mutate_if(is.numeric, round,2)%>%
kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Kanser | AIDS | SMA |
---|---|---|
0.5 | 0.25 | 0.25 |
Not! Temelde ilk durum geçiş olasılıkları dağılımından gelen bir dizi durum oluşturulmuştur. Burada ilk durumdaki geçiş olasılıkları esas alınarak n=500 büyüklüğünde örneklem çekilmiştir. Ardından ise sıklık matrisi oluşturulmuştur.
m = matrix(c(4/8, 2/8, 2/8, 2/8, 3/8, 3/8, 6/8, 1/8, 1/8), nrow = 3, byrow = TRUE)
dm = new('markovchain', transitionMatrix = m, states = c("Kanser", "AIDS", "SMA"), name = '3 Boyutlu Durum Geçiş Matrisi')
dm <- markovchainSequence(n = 500, markovchain = dm)
createSequenceMatrix(dm) %>%
kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover"))
AIDS | Kanser | SMA | |
---|---|---|---|
AIDS | 47 | 29 | 46 |
Kanser | 58 | 120 | 69 |
SMA | 18 | 97 | 15 |
Not! Kararlı durumlar, özdeş özdeğerlere karşılık gelen özvektörlerden başlayarak tanımlanır.Kararlı durumlarda matriste negatif değerler bulunduğunda özvektör çıkarımı, yinelenen sınıflar alt matrisi üzerinde gerçekleştirilir.
m = matrix(c(4/8, 2/8, 2/8, 2/8, 3/8, 3/8, 6/8, 1/8, 1/8), nrow = 3, byrow = TRUE)
dm = new('markovchain', transitionMatrix = m, states = c("Kanser", "AIDS", "SMA"), name = '3 Boyutlu Durum Geçiş Matrisi')
steadyStates(dm) %>%
kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Kanser | AIDS | SMA |
---|---|---|
0.5 | 0.25 | 0.25 |
Burada kararlı durum olalsıkları kullanılarak tekrarlı 100 örneklem çekilmiştir. Ardından ise sıklık matrisi oluşturulmuştur.
m = matrix(c(4/8, 2/8, 2/8, 2/8, 3/8, 3/8, 6/8, 1/8, 1/8), nrow = 3, byrow = TRUE)
dm = new('markovchain', transitionMatrix = m, states = c("Kanser", "AIDS", "SMA"), name = '3 Boyutlu Durum Geçiş Matrisi')
v=steadyStates(dm)# istikrarlı durum olasılıkları
olasilik=as.vector(v)
gozlem = sample(c("Kanser", "AIDS", "SMA"), 100, olasilik, replace = TRUE)
createSequenceMatrix(gozlem)%>%
kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover")) #istikarlı durum matrisi
AIDS | Kanser | SMA | |
---|---|---|---|
AIDS | 12 | 8 | 5 |
Kanser | 11 | 27 | 12 |
SMA | 3 | 15 | 6 |
Not! Burada kurulan modelin Marcov zincirine uyumunu değerlendirmek için maksimum olasılık tahmini, ingilizce ifadeyle maximum likelihood estimation (mle), bootstrap örnekleme ve laplace yöntemleri kullanılmıştır. Karar vermek için ise parametre olarak log olabilirlik yöntemi kullanılmıştır. Log olabilirlik yöntemi belirli bir modelin verilere ne kadar iyi uyduğunun bir ölçüsüdür.
m = matrix(c(4/8, 2/8, 2/8, 2/8, 3/8, 3/8, 6/8, 1/8, 1/8), nrow = 3, byrow = TRUE)
dm = new('markovchain', transitionMatrix = m, states = c("Kanser", "AIDS", "SMA"), name = '3 Boyutlu Durum Geçiş Matrisi')
v=steadyStates(dm)# istikrarlı durum olasılıkları
olasilik=as.vector(v)
gozlem = sample(c("Kanser", "AIDS", "SMA"), 100, olasilik, replace = TRUE)
mle=markovchainFit(gozlem, method = "mle", name="MLE Marcov Zinciri")
bootstrap=markovchainFit(gozlem, method="bootstrap",nboot=5, name="Bootstrap Marcov Zinciri")
laplace=markovchainFit(gozlem, method="laplace", name="Laplace Marcov Zinciri")
tibble("Değerlendirme Yöntemleri"=c("mle", "bootstrap","laplace"), "Log Olabilirlik Değeri"=c(laplace$logLikelihood, bootstrap$logLikelihood, mle$logLikelihood))%>%
mutate_if(is.numeric, round,2)%>%
kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Değerlendirme Yöntemleri | Log Olabilirlik Değeri |
---|---|
mle | -98.82 |
bootstrap | -99.55 |
laplace | -98.82 |
Burada Marcov zincirinin büyüklüğü \(n=350\) olarak blirlenmiştir.
m = matrix(c(4/8, 2/8, 2/8, 2/8, 3/8, 3/8, 6/8, 1/8, 1/8), nrow = 3, byrow = TRUE)
dm = new('markovchain', transitionMatrix = m, states = c("Kanser", "AIDS", "SMA"), name = '3 Boyutlu Durum Geçiş Matrisi')
dm <- markovchainSequence(n = 350, markovchain = dm)
mle=markovchainFit(dm, method = "mle", name="MLE Marcov Zinciri")
bootstrap=markovchainFit(dm, method="bootstrap",nboot=5, name="Bootstrap Marcov Zinciri")
laplace=markovchainFit(dm, method="laplace", name="Laplace Marcov Zinciri")
tibble("Değerlendirme Yöntemleri"=c("mle", "bootstrap","laplace"), "Log Olabilirlik Değeri"=c(laplace$logLikelihood, bootstrap$logLikelihood, mle$logLikelihood))%>%
mutate_if(is.numeric, round,2)%>%
kbl() %>%
kable_styling(bootstrap_options = c("striped", "hover"))
Değerlendirme Yöntemleri | Log Olabilirlik Değeri |
---|---|
mle | -338.75 |
bootstrap | -338.99 |
laplace | -338.75 |
Özetle, veri biliminde önemli bir yere sahip Markov zincir terminolojisi ve R’daki uygulamaları gösterilerek farkındalık oluşturulması amaçlanmıştır.
Faydalı olması ve farkındalık oluşturması dileğiyle.
Bilimle ve teknolojiyle kalınız.
Not: Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.
Note: It can not be cited or copied without referencing.
https://cran.r-project.org/web/packages/heemod/vignettes/a_introduction.html
A First Course in Probability (8th Edition), Sheldon Ross, Prentice Hall 2010
Inferring Markov Chains: Bayesian Estimation, Model Comparison, Entropy Rate, and Out-of-Class Modeling, Christopher C. Strelioff, James P. Crutchfield, Alfred Hubler, Santa Fe Institute
Yalamanchi SB, Spedicato GA (2015). Bayesian Inference of First Order Markov Chains. R package version 0.2.5
Renaldo Feres, Notes for Math 450 Matlab listings for Markov chains
Karline Soetaert (2020). diagram: Functions for Visualising Simple Graphs (Networks), Plotting Flow Diagrams. R package version 1.6.5. https://CRAN.R-project.org/package=diagram
https://www.analyticsvidhya.com/blog/2014/07/markov-chain-simplified/
Filipovic-Pierucci A, Zarca K, Durand-Zaleski I (2017). “Markov Models for Health Economic Evaluation: The R Package heemod.” ArXiv e-prints. R package version 0.14.2, 1702.03252.