Heikki Hyhkön antama tehtävä Moodin vuosijuhlassa

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 6.2.2013 10:52

Helsingin yliopiston tilastotieteen opiskelijoiden yhdistys Moodi ry
vietti viime lauantaina (2.2.2013) 45-vuotisjuhlaansa. Olen ollut
aikoinaan (syksyllä 1979) myötävaikuttamassa tämän yhdistyksen syntyyn.

Aloitettuani tällöin tilastotieteen proffana päätin tehostaa alan
opetusta järjestämällä peräti vuoden mittaisen (4 tuntia viikossa)
cum laude -kurssin todennäköisyyslaskennasta ja tilastollisesta
analyysista. Kurssille olikin kysyntää, sillä sille ilmoittautui peräti
324 opiskelijaa, joista suoraan välikokeilla sen suoritti noin 150.

Huomatessani syksyn 1979 alkuvaiheilla, ettei tilastotieteen
opiskelijoilla vielä ollut omaa järjestöä, pyysin valtiotieteellisen
tiedekunnan opintosihteeriä mukaan erään luentoni jälkimmäiselle
tunnille keskustelemaan osanottajien kanssa yhdistyksen perustamisesta.
Itse poistuin kuennolta tuon keskustelun ajaksi. Tämä aloite johti
Moodin perustamiseen ja ymmärtääkseni yhdistys on toiminut varsin
aktiivisesti siitä lähtien, mistä "Moodin isänä" olen hyvin iloinen.

                    * * *

Eräs kaikkein aktiivisimmista Moodin jäsenistä on kautta aikojen ollut
Heikki Hyhkö, joka toimi näissäkin juhlissa seremoniamestarina.
Hän oli mm. järjestänyt tietokilpailun (noin 90:lle mukana olleesta
muodostetuille 6-jäsenisille joukkueille). Kilvassa kysyttiin
kaikenlaista tilastotieteen ja Moodin historiasta.
Kysymyksistä haastavin oli ehkä seuraava todennäköisyyslaskentaan
liittyvä:
"Jos noppaa heitetään kolme kertaa ja kahden suurimman pistemäärän
summasta vähennetään se kolmas eli pienin pistemäärä, niin mikä on
tuon erotuksen odotusarvo?"
Juhlan tuoksinassa ei kellään tietenkään ollut aikaa eikä mahdollisuutta
mietiskellä saati laskeskella mitään vaan oli tyydyttävä pelkkään
arvailuun, joka todennköisyysarvioinneissa helposti johtaa varsin
harhaisiin vastauksiin. Oma ryhmämme (jossa kanssani mukana olivat Hannu
Niemi, Kimmo Vehkalahti puolisoineen sekä Moodin nykyiset puheenjohtajat
Essi Wikman ja Janina Hietala) kyllä voitti kisan, mutta tuon tehtävän
kohdalla menimme aika lailla metsään. Arvauksemme oli 4.2, kun oikea
tulos on yli 6.

Näin jälkikäteen asiaa miettiessäni jäi "harmittamaan", sillä olisihan
pitänyt siinäkin tilanteessa osata päätellä jotenkin seuraavasti:
Pienin mahdollinen tulos on 1+1-1=1 ja suurin mahdollinen 6+6-1=11.
Tuloksen jakauma ei varmaankaan ole aivan symmetrinen mutta noiden
ääripäiden keskiarvo (1+11)/2=6 on luultavasti lähellä oikeata.
(Ehkä joissain muissa ryhmissä tämäntapaiseen päättelyyn
olikin kyetty ja siitä saan varmaankin nyt jälkikäteen kuulla.)

Aion nyt käsitellä tehtävää hieman tarkemmin. Toivon, että tehtävästä
aidosti kiinnostuneet yrittäisivät ratkaista sen, ennenkuin katselevat,
miten tässä yhteydessä menettelen.

Z
 Z
  Z
   Z
    Z
     Z
      Z
       Z
        Z
         Z
          Z
           Z
            Z
             Z
              Z
               Z
                Z
                 Z
                  Z
                   Z
                    Z
                     Z
                      Z
                       Z
                        Z
                         Z
                          Z
                           Z
                            Z

.....................................................
Käsittelen tehtävää Survon avulla. Musteella toimitaan aivan samalla
tavalla. Kaiken allaolevan voi siirtää leikepöydän kautta Survon/Musteen
toimituskenttään, toistaa laskelmat ja tarkastella yksityiskohtia.

Raaka numeerinen ratkaisu onnistuu taulukoimalla (COMB) kaikki 3 nopan
tulosvaihtoehdot, 6^3=216 kpl tekstitiedostoon NOPAT3.TXT ja siirtämällä
tulokset (FILE SAVE) Survon datatiedostoksi NOPAT3.SVO, jolloin
noppien antamat pistemäärät tulevat muuttujien X1,X2,X3 arvoiksi.
Asetetaan pistemäärät nousevaan suuruusjärjestykseen, mikä onnistuu
kätevästi VARSTAT-komennon SORT-optiolla, jolloin X1 tulee olemaan
pienin, X2 keskimmäinen ja X3 suurin pistemääristä.
Lopullinen tehtävässä tutkittava satunnaismuuttuja on silloin
X2+X3-X1, jonka arvot lasketaan VAR-komennolla muuttujan X1 uudeksi
arvoksi. Nämä toimenpiteet lisättynä tulostuksen antavalla STAT-
komennolla tuottavat seuraavaa jälkeä toimituskenttään:

COMB L TO NOPAT3.TXT  / L=LATTICE,3 MIN=1,1,1 MAX=6,6,6
FILE SAVE NOPAT3.TXT TO NEW NOPAT3
VARSTAT NOPAT3,*,SORT
VAR X1=X2+X3-X1 TO NOPAT3
.........................
STAT NOPAT3,CUR+1 / VARS=X1
Basic statistics: NOPAT3 N=216
Variable: X1       X1 (##)
min=1         in obs.#1
max=11        in obs.#36
mean=6.4166667 stddev=1.922329  skewness=-0.0790616 kurtosis=-0.1651008
autocorrelation=0.62503
lower_Q=5         median=6         upper_Q=8
X1            f     %
       1      1   0.5 *
       2      4   1.9 ****
       3     10   4.6 **********
       4     19   8.8 *******************
       5     31  14.4 *******************************
       6     46  21.3 **********************************************
       7     45  20.8 *********************************************
       8     30  13.9 ******************************
       9     18   8.3 ******************
      10      9   4.2 *********
      11      3   1.4 ***
      11      1   0.5 *

.........................
Keskiarvoksi tulee pyöristettynä mean=6.4166667 mikä viittaa vahvasti
siihen, että tarkka odotusarvo lienee
6.41666666666..(10:ratio)=77/12 (-0.00000000000667)
(siis tässä konvertoituna murtoluvuksi suoraan Survolla).
Arvon yksinkertaisuus antaa aiheen kysyä, mistä moinen seuraa.
Päätin tarkastella asiaa yleisemmin "n-nopalla", joka antaa silmälukuja
1,2,3,...,n yhtäsuurin todennäköisyyksin 1/n.
Toistin edellä olevat laskelmat arvoilla n=1,2,3,4,5 muuttamalla
COMB-komennon viimeisen täsmennyksen MAX=6,6,6 erikseen kunkin n-arvon
mukaiseksi. Sain tulokset

n      mean        murtolausekkeena     eli
1      1             1                  1+0/(2*1)
2      2.25          2+1/4              2+1/(2*2)
3      3.3333333     3+1/3              3+2/(2*3)
4      4.375         4+3/8              4+3/(2*4)
5      5.4           5+4/10             5+4/(2*5)
6      6.41666...    6+5/12             6+5/(2*6)

Tämä viittaa vahvasti siihen, että yleisesti n-nopalla tuo odotusarvo
on n+(n-1)/(2*n). Tämä lauseke on helppo saattaa muotoon
E(n):=(n+1)*(2*n-1)/(2*n)
Tästä voi päätellä, että suurilla n-arvoilla E(n) on käytännössä n+1
sillä suhde (2*n-1)/(2*n) lähestyy nopeasti ykköstä.
Huomattakoon, että ensimmäisen intuitiivisen päättelyni mukaisesti
pienin arvo on edelleen 1, mutta suurin mahdollinen arvo nyt 2n-1 eli
jo näiden keskiarvo (1+2n-1)/2=n todella antaa "hyvän" asymptoottisen
tuloksen.

Moni matemaatikko saattaa hymähtää tällaisille intuitiivisille
ja kokeellisille päättelyille. Enhän ole varsinaisesti todistanut
tulosta oikeaksi, vain arvaillut. Vaikka tarkastaisin tuloksen
numeerisesti kuinka suurilla n-arvoilla tahansa, se ei vastaa
tarkkaa päättelyä.
Silti tällainen arvailu on monissa ongelmissa todella hyödyllistä ja
olen harrastanut sellaista useasti etenkin viime vuosina.
Vuosien 2008-9 eräiden arvailujeni seurauksena on syntynyt mm. neljän
matemaatikon kirjoittama artikkeli
http://link.springer.com/article/10.1007%2Fs00605-010-0236-6 
joka on (ainakin toistaiseksi ilmaiseksi) luettavissa myös sivulta
http://users.utu.fi/ksmato/papers/Gridlines.pdf 
ja jonka taustana on (puoli)kokeellinen juttuni
http://www.survo.fi/papers/PointsInGrid.pdf 

                    * * *

Odotusarvon "tarkka" perustelu:
==============================
Johtuen "odotusarvo-operaattorin E lineaarisuudesta" kysytty
odotusarvo n-nopalla on esitettävissä lausekkeena
E(n):=E2(n)+E3(n)-E1(n)
missä Ei(n) tarkoittaa suuruusjärjestyksessä i:nnen tuloksen
odotusarvoa. "Symmetriasyistä" on ilmeistä, että E2(n)=(n+1)/2 ja
että E3(n)=n+1-E1(n).
Jää siis selvitettäväksi vain mitä on E1(n).

Lasketaan pienimmän pisteluvun jakauman pistetodennäköisyydet eli
olkoon P(n,k) todennäköisyys sille, että kolmea n-noppaa heitettäessä
pienin tulos on k, k=1,2,...,n.
On selvää, että P(n,n)=1/n^3 ja on helppo päätellä, että yleinen
lauseke on
P(n,k):=((n-k+1)/n)^3-((n-k)/n)^3
(joka vaikuttaa hankalalta sieventää yksinkertaisempaan muotoon).
On mahdollista tarkistaa Survolla, että lauseke on ainakin sikäli
oikea, että todennäköisyyksien summaksi, joka Survon editoriaalisen
laskennan lausekkeena on
S(n):=for(k=1)to(n)sum(P(n,k))
tulisi 1
Jos siis aktivoidaan esim. S(6)=
saadaan tuo ykkönen
Vastaavasti odotusarvon lauseke on tällöin
F(n):=for(k=1)to(n)sum(k*P(n,k))
ja esim.
F(6)=2.0416666666666665

Odotusarvon lausekkeen sieventäminen käsityönä on hyvä algebrallinen
harjoitustehtävä, mutta tuloksen saatoin jälleen "arvata" laskemalla
F(n) esim. arvoilla n=1,2,...,6 ja muuntamalla tulokset suhdeluvuiksi.
Tällöin sain sievennetyksi lausekkeeksi yllättävän yksinkertaisen
E1(n):=(n+1)^2/(4*n)
Jos survoilijalla on käytettävissään jokin symbolisen matematiikan
ohjelma, sellaisella saa asian todistetuksi täysin hyväksytyllä
tavalla.
Omassa koneessani on Mathematica-ohjelma, jonka olen "orjuuttanut"
Survosta suoraan käytettäväksi niin, ettei laskennan aikana edes näe
Mathematicaa työssään.
Tehtävänanto tapahtuu tallettamalla tekstitiedoston, jossa Mathematican
kielellä ilmaistaan tehtävä, esim. sievennettävä lauseke.
Niinpä tässä tapauksessa talletetaan seuraavaa:

SAVEP CUR+1,CUR+1,K.TXT
Sum[k*((n - k + 1)^3 - (n - k)^3)/n^3, {k, 1, n}]

Sen jälkeen riittää aktivoida sukro /MATH, joka teettää työn ja
antaa tuloksen suoraan toimituskenttään näin:

/MATH K.TXT
LOADW _output.txt
In[2]:= Sum[k*((n - k + 1)^3 - (n - k)^3)/n^3, {k, 1, n}]
               2
        (1 + n)
Out[2]= --------
          4 n

eli saadaan juuri sitä mitä pitikin.

Kysytyn odotusarvon E(n) lauseke on tällöin
E(n)=E2(n)+E3(n)-E1(n)=(n+1)/2+n+1-E1(n)-E1(n)
    =(n+1)/2+n+1-(n+1)^2/(2*n)
mikä sievenee aikaisemmin arvattuun muotoon
E(n)=(n+1)*(2*n-1)/(2*n).

                    * * *

Kuten aikaisemmin totesin, tämän koko viestin voi siirtää leikepöydän
kautta Survon tai Musteen toimituskenttään, jolloin pääsee toistamaan
koko työn ja tarkastelemaan välituloksia. Näin Survo-tyylille
ominaisesti työ on kaikkine vaiheineen dokumentoinut itsensä.
En ole yllättynyt, jos joku kehittää vaihtoehtoisen ja ehkä lyhyemmän
tai helpomman ratkaisutavan, joten antakaa kuulua.

Vastaukset:

Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.