Markov Zinciri, bir dizi olasılıksal kurala göre bir durumdan diğerine geçişlerin yaşandığı matematiksel bir sistemdir. Markov zincirleri stokastik süreçlerdir, ancak "bellek"ten yoksun olmalarıyla ayrılırlar. Yani, sistemin bir sonraki durumunun olasılığı yalnızca sistemin mevcut durumuna bağlıdır; önceki durumlara bağlı değildir. Buna Markov özelliği denir (aşağıda görülmektedir):
İşlevsel bir Markov zinciri modeli kurmak için bir geçiş matrisi Pt tanımlamak esastır. Geçiş matrisi, sistemdeki farklı durumlar arasındaki geçiş olasılıklarına ilişkin bilgileri içerir. Geçiş matrisinin geçerli olması için her satırın bir olasılık vektörü olması ve terimlerinin toplamının 1 olması gerekir.
Geçiş Matrislerinin, ardışık matrislerin çarpımının bir zaman aralığı boyunca geçiş olasılıklarını tanımlayabilmesi gibi bir özelliği vardır. Bu nedenle, aşağıdaki hesaplamayı yaparak k adım sonra belirli bir durumda bulunmanın olasılığı modellenebilir:
Bu eğitici ayrıca soğurucu (absorbing) Markov zincirlerini de kapsar. Bu zincirlerde, en az bir durum vardır ki ona ulaşıldığında orada kalma olasılığı 1'dir (o durumdan ayrılamazsınız).
Soğurucu Markov Zincirleri Nelerdir?
Soğurucu Markov zinciri, bazı durumlara girildiğinde bu durumlardan çıkmanın imkânsız olduğu bir Markov zinciridir. Ancak, bu tek başına bir Markov zincirinin soğurucu olarak kabul edilmesi için yeterli değildir. Bir zincirin soğurucu olması için, diğer tüm geçici durumların soğurucu duruma 1 olasılıkla ulaşabilmesi gerekir.
Soğurucu Markov zincirlerinin, zaman-homojen normal Markov zincirlerinden ayrışan kendine özgü özellikleri vardır. Bu özelliklerden biri, geçiş matrisinin yazılma biçimidir. t geçici durum ve r soğurucu durum içeren bir zincirde, geçiş matrisi P aşağıdaki kanonik biçimde yazılabilir:
Burada Q bir t x t matris, R bir t x r matris, 0 bir r x t sıfır matrisi ve Ir bir r x r birim matristir. Özellikle, geçiş matrisinin temel matrise ayrıştırılması, her bir durumdan soğurulmaya kadar beklenen adım sayısı gibi bazı hesaplamalara olanak tanır. Temel matris N şu şekilde hesaplanır:
Burada It bir t x t birim matristir
Beklenen adım sayısı, beklenen değerin doğrusallığı kavramına dayanır ve şu şekilde hesaplanır:
Burada 1, tüm girdileri 1 olan ve uzunluğu geçici durum sayısı ile aynı olan bir sütun vektörüdür
Ayrıca, herhangi bir geçici durumdan başlayarak belirli bir soğurucu durumda soğurulma olasılığını da hesaplayabiliriz. Bu olasılık şu şekilde hesaplanır:
Satış Hızının Analizi
Markov zincirleri finans, oyun teorisi ve genetik gibi birçok alanda yaygın olarak kullanılır. Ancak bu eğiticinin temeli, bir şirketin satış sürecinin uzunluğunu modellemek için bunları nasıl kullanacağımızdır; zira bu bir Markov süreci olabilir. Bu, bir anlaşmanın başarıyla kapanmadan önce geçtiği adımları ayrıntılandıran dizilerin Markov özelliğini sağlayıp sağlamadığının test edilmesiyle doğrulandı.
Bu analiz, belirli bir sektör için zaman-homojen Markov zincirlerini kullanabilmek adına, satış sürecimizde bir anlaşmanın ilerleme olasılıklarının aydan aya sabit olduğu varsayımını taşımaktadır. Yani, durumlar arasındaki geçiş olasılıklarının zaman geçtikçe sabit kaldığı (adım sayısı k arttıkça değişmeyen) bir Markov zinciri.
Hesaplanan olasılıklar şunlardı:
Belirli bir ay için bir anlaşmanın satış temsilcisi aşamalarımızdan hesap yöneticisi aşamalarımıza geçme olasılığı ile bu aşamalarda kalma olasılığı.
Belirli bir ay için bir anlaşmanın hesap yöneticisi aşamalarımızdan başarıyla kapanmış anlaşma durumuna geçme olasılığı ile bu aşamalarda kalma olasılığı.
Belirli bir ay için bir anlaşmanın başarıyla kapanmış anlaşma durumunda kalma olasılığı, bu 1'di. Bu nedenle, "kapalı" durumu soğurucu bir durumdur.
Bu analiz R programlama dili kullanılarak gerçekleştirildi. R'de çok çeşitli Markov zinciri türlerini ele alabilen kullanışlı bir Markov Chain paketi bulunmaktadır.
Öncelikle, satış dizilerimizin Markov özelliğini takip edip etmediğini kontrol ettik. Bu amaçla, Markov Chain paketi, olay dizilerinden türetilen bir dizi olasılık tablosu üzerinde Ki-kare testleri gerçekleştirerek verilen bir olay dizisinin Markov özelliğini takip edip etmediğini test eden verifyMarkovProperty() adlı kullanışlı bir fonksiyon içerir. Büyük p-değerleri, dizinin Markov özelliğini takip ettiği yönündeki sıfır hipotezinin reddedilmemesi gerektiğini gösterir. İlk buluşmadan kapanış anına kadar bir anlaşmanın her ay nerede olduğunu gösteren örnek bir satış dizisi aşağıda verilmiştir:
library(markovchain)
library(dplyr)# SDR Funnel is our sales representative stages, AE Funnel is our account executive stages, and CW is a successfully closed deal
seq <- c('SDR Funnel','SDR Funnel','AE Funnel','AE Funnel','AE Funnel','AE Funnel','AE Funnel','AE Funnel','CW')
verifyMarkovProperty(seq)Altyapı:
## Testing markovianity property on given data sequence## Chi - square statistic is: 0.5733333 degrees of freedom are: 27 and corresponding p-value is: 1Altyapı:
Gösterilen p-değeri 0,05'in üzerinde olduğundan, dizinin Markov özelliğini takip ettiği yönündeki sıfır hipotezini reddetmiyoruz.
Bu doğrulandıktan sonra, verilerimizden türetilen geçiş olasılıklarıyla birlikte Markov zinciri yapısını görselleştirdik. Bu kod, geçiş matrisini ve durumların adlarını tanımlayarak bir Markov zinciri nesnesi oluşturur. Ayrıca Markov zincirini ve geçiş olasılıklarını görüntüler.
source('TransProb.R')
source('MatDataBase.R')
source('GatherTransMat.R')
transElec <- GatherTransMat('Manufacturing','Between 100M and 500M','Between 500 and 1k')Altyapı:
print(transElec)
markov2 <- new('markovchain',
transitionMatrix = transElec,# These are the transition probabilities of a random industry
states = c('SDR','AE','CW'))
layout <- matrix(c(0,0,0,1,1,0), ncol =2, byrow =TRUE)
plot(markov2, node.size =10, layout = layout)Altyapı:
Soğurucu bir Markov zincirimiz olduğundan, soğurulmaya kadar beklenen süreyi hesaplarız. Vektörün ilk girdisi, SDR hunisinden kapanışa kadar beklenen adım sayısını; ikinci girdi ise AE hunisinden başlarsak beklenen adım sayısını verir.
# Extract Q from the transition matrix
Q <- transElec[1:2,1:2]# Generate It
It <- diag(2)#Calculate fundamental matrix
N <- solve(It-Q)#Generate column vector of 1s
one <- t(t(c(1,1)))# Calculate the expected steps by matrix multiplication
expected <- N%*%one
print(expected)Altyapı:
Bununla birlikte, beklenen adım sayısı ile karşılaştırmak için adım sayısı arttıkça olasılıkların nasıl değiştiğini de görselleştirebiliriz. Bu nedenle, bir anlaşmanın 24 adım boyunca üç aşamadan herhangi birinde olma olasılıklarını da inceledik.
library(ggplot2)
initState <- c(1,0,0)# The initial state will be SDR Funnel (mimicking setting an initial discovery appointment)# Initiate probability vectors
SDRProb <- c()
AEProb <- c()
CW <- c()# Calculate probabilities for 24 steps.for(k in1:24){
nsteps <- initState*markov2^k
SDRProb[k]<- nsteps[1,1]
AEProb[k]<- nsteps[1,2]
CW[k]<- nsteps[1,3]}# Make dataframes and merge them
SDRProb <- as.data.frame(SDRProb)
SDRProb$Group <-'SDR'
SDRProb$Iter <-1:24
names(SDRProb)[1]<-'Value'
AEProb <- as.data.frame(AEProb)
AEProb$Group <-'AE'
AEProb$Iter <-1:24
names(AEProb)[1]<-'Value'
CW <- as.data.frame(CW)
CW$Group <-'CW'
CW$Iter <-1:24
names(CW)[1]<-'Value'
steps <- rbind(SDRProb,AEProb,CW)# Plot the probabilities using ggplot
ggplot(steps, aes(x = Iter, y = Value, col = Group))+
geom_line()+
xlab('Chain Step')+
ylab('Probability')+
ggtitle('24 Step Chain Probability Prediction')+
theme(plot.title = element_text(hjust =0.5))Altyapı:
Her iki sonucu birleştirirsek, 6-9 adım sonrasında CW durumunun en olası durum haline geldiği açıkça görülüyor. Geçiş olasılıklarının aylık geçiş olasılıkları olduğunu dikkate alırsak, bu sektörde tipik satış hızının ilk randevudan başarıyla kapanışa kadar 6 ila 9 ay arasında olabileceği söylenebilir. Oldukça uzun bir satış süreci.
Sonuç
Bu analizin amacı, Markov zincirlerinin ve soğurucu Markov zincirlerinin temel ilkelerinin iş dünyasıyla ilgili bir soruyu yanıtlamak için nasıl kullanılabileceğini göstermektir. Bu durumda, zaman-homojen varsayımlarına rağmen Markov zinciri sonuçları oldukça isabetliydi; çünkü yapılan ek ampirik analizler, bu analizde kullanılan sektör için ortalama satış hızının 208 gün, yani neredeyse 7 ay olduğunu ortaya koydu. Umarız bu örnek, Markov zincirlerini kendi başınıza daha fazla keşfetmeniz ve iş sorularınıza uygulamanız için size ilham verir.
R hakkında daha fazla bilgi edinmek istiyorsanız, DataCamp'in Orta Düzey R kursunu alın.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Markov Zinciri Nedir?
Markov Zinciri, bir dizi olasılıksal kurala göre bir durumdan diğerine geçişlerin yaşandığı matematiksel bir sistemdir. Markov zincirleri stokastik süreçlerdir, ancak "bellek"ten yoksun olmalarıyla ayrılırlar. Yani, sistemin bir sonraki durumunun olasılığı yalnızca sistemin mevcut durumuna bağlıdır; önceki durumlara bağlı değildir. Buna Markov özelliği denir (aşağıda görülmektedir):
İşlevsel bir Markov zinciri modeli kurmak için bir geçiş matrisi Pt tanımlamak esastır. Geçiş matrisi, sistemdeki farklı durumlar arasındaki geçiş olasılıklarına ilişkin bilgileri içerir. Geçiş matrisinin geçerli olması için her satırın bir olasılık vektörü olması ve terimlerinin toplamının 1 olması gerekir.
Geçiş Matrislerinin, ardışık matrislerin çarpımının bir zaman aralığı boyunca geçiş olasılıklarını tanımlayabilmesi gibi bir özelliği vardır. Bu nedenle, aşağıdaki hesaplamayı yaparak k adım sonra belirli bir durumda bulunmanın olasılığı modellenebilir:
Bu eğitici ayrıca soğurucu (absorbing) Markov zincirlerini de kapsar. Bu zincirlerde, en az bir durum vardır ki ona ulaşıldığında orada kalma olasılığı 1'dir (o durumdan ayrılamazsınız).
Soğurucu Markov Zincirleri Nelerdir?
Soğurucu Markov zinciri, bazı durumlara girildiğinde bu durumlardan çıkmanın imkânsız olduğu bir Markov zinciridir. Ancak, bu tek başına bir Markov zincirinin soğurucu olarak kabul edilmesi için yeterli değildir. Bir zincirin soğurucu olması için, diğer tüm geçici durumların soğurucu duruma 1 olasılıkla ulaşabilmesi gerekir.
Soğurucu Markov zincirlerinin, zaman-homojen normal Markov zincirlerinden ayrışan kendine özgü özellikleri vardır. Bu özelliklerden biri, geçiş matrisinin yazılma biçimidir. t geçici durum ve r soğurucu durum içeren bir zincirde, geçiş matrisi P aşağıdaki kanonik biçimde yazılabilir:
Burada Q bir t x t matris, R bir t x r matris, 0 bir r x t sıfır matrisi ve Ir bir r x r birim matristir. Özellikle, geçiş matrisinin temel matrise ayrıştırılması, her bir durumdan soğurulmaya kadar beklenen adım sayısı gibi bazı hesaplamalara olanak tanır. Temel matris N şu şekilde hesaplanır:
Burada It bir t x t birim matristir
Beklenen adım sayısı, beklenen değerin doğrusallığı kavramına dayanır ve şu şekilde hesaplanır:
Burada 1, tüm girdileri 1 olan ve uzunluğu geçici durum sayısı ile aynı olan bir sütun vektörüdür
Ayrıca, herhangi bir geçici durumdan başlayarak belirli bir soğurucu durumda soğurulma olasılığını da hesaplayabiliriz. Bu olasılık şu şekilde hesaplanır:
Satış Hızının Analizi
Markov zincirleri finans, oyun teorisi ve genetik gibi birçok alanda yaygın olarak kullanılır. Ancak bu eğiticinin temeli, bir şirketin satış sürecinin uzunluğunu modellemek için bunları nasıl kullanacağımızdır; zira bu bir Markov süreci olabilir. Bu, bir anlaşmanın başarıyla kapanmadan önce geçtiği adımları ayrıntılandıran dizilerin Markov özelliğini sağlayıp sağlamadığının test edilmesiyle doğrulandı.
Bu analiz, belirli bir sektör için zaman-homojen Markov zincirlerini kullanabilmek adına, satış sürecimizde bir anlaşmanın ilerleme olasılıklarının aydan aya sabit olduğu varsayımını taşımaktadır. Yani, durumlar arasındaki geçiş olasılıklarının zaman geçtikçe sabit kaldığı (adım sayısı k arttıkça değişmeyen) bir Markov zinciri.
Hesaplanan olasılıklar şunlardı:
Bu analiz R programlama dili kullanılarak gerçekleştirildi. R'de çok çeşitli Markov zinciri türlerini ele alabilen kullanışlı bir Markov Chain paketi bulunmaktadır.
Öncelikle, satış dizilerimizin Markov özelliğini takip edip etmediğini kontrol ettik. Bu amaçla, Markov Chain paketi, olay dizilerinden türetilen bir dizi olasılık tablosu üzerinde Ki-kare testleri gerçekleştirerek verilen bir olay dizisinin Markov özelliğini takip edip etmediğini test eden verifyMarkovProperty() adlı kullanışlı bir fonksiyon içerir. Büyük p-değerleri, dizinin Markov özelliğini takip ettiği yönündeki sıfır hipotezinin reddedilmemesi gerektiğini gösterir. İlk buluşmadan kapanış anına kadar bir anlaşmanın her ay nerede olduğunu gösteren örnek bir satış dizisi aşağıda verilmiştir:
Gösterilen p-değeri 0,05'in üzerinde olduğundan, dizinin Markov özelliğini takip ettiği yönündeki sıfır hipotezini reddetmiyoruz.
Bu doğrulandıktan sonra, verilerimizden türetilen geçiş olasılıklarıyla birlikte Markov zinciri yapısını görselleştirdik. Bu kod, geçiş matrisini ve durumların adlarını tanımlayarak bir Markov zinciri nesnesi oluşturur. Ayrıca Markov zincirini ve geçiş olasılıklarını görüntüler.
Soğurucu bir Markov zincirimiz olduğundan, soğurulmaya kadar beklenen süreyi hesaplarız. Vektörün ilk girdisi, SDR hunisinden kapanışa kadar beklenen adım sayısını; ikinci girdi ise AE hunisinden başlarsak beklenen adım sayısını verir.
Bununla birlikte, beklenen adım sayısı ile karşılaştırmak için adım sayısı arttıkça olasılıkların nasıl değiştiğini de görselleştirebiliriz. Bu nedenle, bir anlaşmanın 24 adım boyunca üç aşamadan herhangi birinde olma olasılıklarını da inceledik.
Her iki sonucu birleştirirsek, 6-9 adım sonrasında CW durumunun en olası durum haline geldiği açıkça görülüyor. Geçiş olasılıklarının aylık geçiş olasılıkları olduğunu dikkate alırsak, bu sektörde tipik satış hızının ilk randevudan başarıyla kapanışa kadar 6 ila 9 ay arasında olabileceği söylenebilir. Oldukça uzun bir satış süreci.
Sonuç
Bu analizin amacı, Markov zincirlerinin ve soğurucu Markov zincirlerinin temel ilkelerinin iş dünyasıyla ilgili bir soruyu yanıtlamak için nasıl kullanılabileceğini göstermektir. Bu durumda, zaman-homojen varsayımlarına rağmen Markov zinciri sonuçları oldukça isabetliydi; çünkü yapılan ek ampirik analizler, bu analizde kullanılan sektör için ortalama satış hızının 208 gün, yani neredeyse 7 ay olduğunu ortaya koydu. Umarız bu örnek, Markov zincirlerini kendi başınıza daha fazla keşfetmeniz ve iş sorularınıza uygulamanız için size ilham verir.
R hakkında daha fazla bilgi edinmek istiyorsanız, DataCamp'in Orta Düzey R kursunu alın.
Check out our Markov Chains in Python: Beginner Tutorial.