
# MATS262 Stokastiikka 1
# Kasinon keskituoton suuret poikkeamat
# Lasse Leskelä - 2012-04-23
#
# Tarkastellaan kasinoa, jossa pelataan yhden euron panoksin rulettia punaiselle
# ja mustalle panostaen. Yhdellä pelikierroksella asiakas voittaa euron tn:llä p
# ja häviää euron tn:llä 1 - p, missä p = 18/37.
#
# Kasinon tuotto n:ltä kierrokselta on V[n] = n - 2*S[n], missä
# S[n] = xi[1] + ... + xi[n] ja missä summattavat ovat riippumattomia
# Bernoulli-jakautuneita satunnaismuuttujia parametrilla p.
#
# Suurten lukujen lain perusteella kasinon keskituotto n:ltä kierrokselta V[n]/n
# lähestyy arvoa 1 - 2p = 1/37 melkein varmasti, kun n kasvaa.
#
# Harvinainen tapahtuma: Kasinon keskituotto V[n]/n suurelta määrältä kierroksia n
# jää alle 1 - 2p - delta jollain delta > 0. Tämän tapahtuman todennäköisyys on
# 
#   pdev[n] = P( S[n]/n > p + delta/2 ).
# 
# Arvioidakseen liiketoimintansa riskiä, kasinonomistajan tulee selvittää, miten nopeasti
# pdev[n] suppenee nollaan, kun n kasvaa.
#

# Tn, että asiakas voittaa.
p <- 18/37

# Harvinaisen tapahtuman kynnystaso.
delta <- 0.1
a <- p + delta/2

# Suurin pelikierrosten lukumäärä.
N <- 1000

# Lasketaan todennäköisyydet.
# Koska S[n] noudattaa binomijakaumaa parametrein n ja p, saadaan pdev[n] laskettua
# binomijakauman kertymäfunktion avulla.
#
pdev <- numeric(N)
for (n in 1:N) {
  pdev[n] <- pbinom(a*n,n,p, lower.tail = FALSE)
}

# Piiretään todennäköisyyksien logaritmit punaisella.
plot( log(pdev), type='p', pch='.', col='red')

# Sovitetaan suora.
vec1 <- log(pdev)
vec2 <- 1:N
fit <- lm(vec1 ~ vec2)
I <- -fit$coefficients[[2]]
abline(fit)

# Näytetään tulokset tekstimuodossa.
cat('xi[1]:n odotusarvo: p =', p, '\n')
cat('Harvinaisen tapahtuman kynnystaso: delta =', delta, '\n')
cat('Aritmeettisen keskiarvon kynnystaso: a = p + delta/2 = ', a, '\n')
cat('Log-plotin sovitetun suoran kulmakertoimen itseisarvo: I(a) =', I, '\n')
