Sana-assosiaatioverkostojen Analyysi
Emmi Rytkölä
Pro Gradu -tutkielma
Huhtikuu 2024
Tarkastajat:
prof. Kari Auranen
apulaisprof. Janne Kujala
MATEMATIIKAN JA TILASTOTIETEEN LAITOS
Turun yliopiston laatujärjestelmän mukaisesti tämän julkaisun
alkuperäisyys on tarkastettu Turnitin OriginalityCheck-järjestelmällä
TURUN YLIOPISTO
Matematiikan ja tilastotieteen laitos
Emmi Rytkölä: Sana-assosiaatioverkostojen analyysi
Pro gradu -tutkielma, 28 s., 14 liites.
Tilastotiede
Huhtikuu 2024
Tässä pro gradu -tutkielmassa käytetään Turun Yliopston psykologian laitok-
sen keräämää sana-assosiaatioaineistoa ja pyritään tekemään graafiteoriaan
perustuvaa analyysia tästä aineistosta.
Ihmiset oppivat uusia sanoja sen kontekstin kautta, jossa sana esiintyy. Lap-
si oppii ensimmäisiä sanoja fyysisen kontekstin kautta, mutta vanhempana
hän voi päätellä uusien sanojen merkityksen siitä, minkä tunnettujen sanojen
kanssa ne usein esiintyvät. Näin ihminen muodostaa assosiaatioita sanojen
välille, ja nämä assosiaatiot muuttuvat iän myötä. Sanojen välisiä assosiaa-
tioita voidaan tutkia graafiteorian avulla.
Graafiteoria on matematiikan osa-alue, jonka avulla tutkitaan asioiden
välisiä yhteyksiä piirtämällä yhteyksistä graafeja (tai verkostoja). Sana-
assosiaatioaineistosta piirretty graafi on kaksimuotoinen graafi, jonka on pro-
jisoitava yksimuotoiseksi graafiksi jotta sen analysointi olisi helpompaa. Täs-
tä graafista voidaan laskea graafitason suureita: asteen keskeisyysmitta, klus-
terointikerroin ja polun pituus. Klusterointikertoimen ja polun pituuden avul-
la voidaan myös tehdä arvio siitä, onko graafi pieni maailma -graafi. Lisäksi
voidaan laskea sanatason suure, entropia.
Kun graafiteoriaa sovellettiin sana-assosiaatioaineistoon, saatiin näyttöä sii-
tä, että ikääntyneillä aikuisilla on keskivertaisesti vähemmän yhteyksiä sa-
nojen välillä kuin nuorilla aikuisilla ja että molempien ikäryhmien sana-
assosiaatioverkostot ovat pieni maailma -graafeja. Pienen koehenkilömäärän
takia tarvitaan kuitenkin lisää tutkimusta, jotta voitaisiin varmuudella pu-
hua näiden ikäryhmien välisestä erosta kielen organisoinnissa.
Asiasanat: graafiteoria, verkkoteoria, sana-assosiaatio, kielen organisointi.
Sisällys
1 Johdanto 1
2 Sana-assosiaatiotutkimuksista 2
3 Graafiteoriaa 3
3.1 Graafiteorian peruskäsitteitä . . . . . . . . . . . . . . . . . . . 4
3.2 Kaksimuotoisen graafin projisointi yksimuotoiseksi . . . . . . . 6
3.3 Aste, voimakkuus ja asteen keskeisyysmitta . . . . . . . . . . 9
3.4 Klusterointikerroin . . . . . . . . . . . . . . . . . . . . . . . . 10
3.5 Polun pituus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.6 Satunnainen graafi . . . . . . . . . . . . . . . . . . . . . . . . 12
3.7 Pieni maailma . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.8 Entropia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.9 Tilastolliset menetelmät . . . . . . . . . . . . . . . . . . . . . 14
3.10 Analyysiohjelmistot . . . . . . . . . . . . . . . . . . . . . . . . 15
4 Aineiston analyysi 15
4.1 Aineisto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2 Tutkimuksen voimasta . . . . . . . . . . . . . . . . . . . . . . 17
4.3 Entropia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.4 Graafianalyysi . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.4.1 Pieni maailma . . . . . . . . . . . . . . . . . . . . . . . 21
5 Pohdinta 21
5.1 Pieni maailma -indeksistä . . . . . . . . . . . . . . . . . . . . 23
5.2 Rajoituksia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.3 Lopuksi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Viitteet 26
Liitteet 29
A R-koodi 29
B Ärsykesanat 38
C Residuaalit 40
1 Johdanto
Tässä tutkielmassa tarkastellaan sitä, miten ihmiset organisoivat kieltä ja
miten tämän organisoinnin voi esittää verkoston eli graafin avulla. Tutkiel-
ma alkaa lyhyellä johdannolla sana-assosiaatiotutkimuksiin luvussa 2, jonka
jälkeen siirytään graafiteoriaan sekä sen peruskäsitteiden ja tutkielmassa käy-
tettyjen suureiden esittelyyn luvussa 3. Luvussa 4 käytetään näitä peruskäsit-
teitä ja suureita sana-assosiaatioaineiston analyysiin. Luvussa 5 on pohdintaa
aineistosta, sen analyysista ja tuloksista. Tämän tutkielman tavoitteena on
esittää graafiteoriaa ja sen sovellusta sana-assosiaatiotutkimuksessa.
Graafiteoria on matematiikan osa-alue, jonka avulla tutkitaan asioiden
välisiä yhteyksiä piirtämällä yhteyksistä graafeja [1]. Graafiteorian alku voi-
daan jäljittää Leonhard Eulerin 1741 kirjoittamaan paperiin, joka pyrki vas-
taamaan Königsbergin siltaongelmaan. Königsbergin (nykyisin Kaliningrad)
jakaa kahteen Pregel-joki, jossa on kaksi saarta. Joen yli kulkee yhteensä seit-
semän siltaa. Tuon ajan matemaatikoilta kysyttiin, onko mahdollista kävellä
Königsbergin läpi kulkemalla jokaisen sillan yli vain kerran. Matemaatikot
väittivät, että tämä kysymys ei kuulu matematiikan alaan, mutta kun Euler
tutki asiaa, hän piirsi kuvan ongelmasta käyttäen graafia (kuva 1), ja täten
syntyi graafiteorian alku. Hän pystyi graafin avulla todistamaan, että ei ole
mahdollista kulkea Königsbergin läpi käyttämällä jokaista siltaa vain ker-
ran. Tämän jälkeen graafiteoriaa on sovellettu moneen eri alaan topologian
ulkopuolella, kuten tietotekniikkaan (esimerkiksi internetti), sosiologiaan, ja
kielitieteeseen. [2][3]
Tutkielman päälähteenä on käytetty Dubossarskyn ym. artikkelia Quan-
tifying the Structure of Free Association Networks Across the Life Span [4],
jossa käsitellään sana-assosiaatioita eri ikäisillä hollantilaisilla koehenkilöil-
lä. Vastaavanlaisia tutkimuksia on myös tehty mm. englannin kielellä [5] ja
Brasilian portugalin kielellä [6], mutta ei suomen kielellä. Tässä tutkielmassa
käytetty aineisto on meneillään olevasta Minna Lehtosen ja Kati Renvallin
suomen kieleen liittyvästä tutkimusprojektista.
1
Kuva 1: Königsbergin sillat; kuva on kirjasta Linkit : verkostojen uusi teoria
[3].
2 Sana-assosiaatiotutkimuksista
Ihmiset oppivat kieltä kielelle altistumisen kautta eli kuuntelemalla toisten
puhetta ja päättelemällä sanojen tarkoituksen kontekstista. Varsinkin var-
haislapsuudessa konteksti on suurimmaksi osaksi fyysinen, mutta kun ihmi-
nen on jo oppinut joitakin sanoja, hän voi päätellä uusien sanojen merki-
tyksen sen perusteella, minkä tunnettujen sanojen kanssa ne usein esiintyvät
samanaikaisesti [7]. Kun lapsi altistuu yhä enemmän kielelle keskusteluun
osallistumisen ja myöhemmin lukemisen välityksellä, hänen sanavarastonsa
kasvaa nopeasti. Vaikka kasvu on vähäisempää lapsuuden jälkeen, ihmisen
sanavarasto kehittyy koko eliniän. Koska ihmiset oppivat uusia sanoja ko-
ko elämän läpi, myös sana-assosiaatiot muuttuvat iän myötä [4]. Tällaisen
muutoksen tutkimiseen voi käyttää sana-assosiaatiotutkimuksia [4][5][6].
Yleisesti sana-assosiaatiotutkimuksissa käytetään kahta eri tyyppistä
sana-assosiaatiotehtävää. Vapaassa assosiaatiotehtävässä (free association
task) koehenkilölle annetaan jokin ärsykesana ja hänen on nimettävä, mikä
sana (tai mitä sanoja) hänelle tulee ensimmäiseksi mieleen. Näitä koehenki-
lön nimeämiä sanoja kutsutaan kohdesanoiksi. Semanttinen assosiaatiotehtä-
vä (semantic association task ) on muuten samanlainen, mutta ärsykesanan
ja kohdesanan yhteyden on perustuttava ärsykesanan merkitykseen. Tässä
tutkielmassa käsitelty aineisto on kerätty käyttäen vapaata assosiaatiotehtä-
2
vää. Tämä tarkoittaa, että assosiaatio voi olla mikä tahansa suhde sanojen
välillä; esimerkiksi niillä voi olla syy-seuraussuhde (paperi – haava), ne voivat
olla synonyymejä (puhua – jutella) tai vastakohtia (oikea – vasen), ne voivat
usein ilmestyä yhdessä (taito – luistelu), tai ne voivat vain kuulostaa/näyttää
samalta (pää – jää). [6]
Ennen oletettiin, että sanojen välisiä yhteyksiä voidaan kuvata puun avul-
la. Nyky-ymmärrys kuitenkin on, että sanojen yhteyksiä voidaan kuvata par-
haiten graafiteoriaan perustuvien verkkojen eli graafien avulla. Graafin tar-
koitus on edustaa, miten sanat kognitiivisesti järjestyvät aivoissamme. Kielen
rakenteen tutkimuksen mukaan tämä järjestyminen voi vaikuttaa mm. kogni-
tiivisen toiminnan nopeuteen, esimerkiksi muistiprosesseihin. Kun tutkitaan
eri ikäisten assosiaatioverkostoja, voidaan siis paremmin ymmärtää mm. kie-
len oppimista ja ikääntymiseen liittyvää muistin heikkenemistä. [4][6]
3 Graafiteoriaa
Graafiteoria (tai verkkoteoria) on matematiikan osa-alue, jonka avulla tutki-
taan asioiden välisiä yhteyksiä piirtämällä yhteyksistä graafeja eli verkostoja
[1]. Tässä tutkielmassa käsitellään graafeja, jotka kuvaavat sanojen välisiä as-
sosiaatioita. Tällaista graafia kuvaavat mitat voidaan jakaa sanatason (word-
level) ja graafitason (network-level ) suureisiin. Sanatason suureet lasketaan
jokaiselle ärsykesanalle erikseen, ja niiden tarkoitus on tutkia, kuinka annet-
tujen kohdesanojen monipuolisuus muuttuu iän myötä. Graafitason suureet
kuvaavat graafin rakennetta ja sitä, miten tämä muuttuu iän myötä. Tässä
tutkielmassa ainoa käytetty sanatason suure on entropia (luku 3.8); muut
käytetyt suureet (luvut 3.3–3.7) ovat graafitason suureita.
Tässä tutkielmassa käytetty suomenkielinen graafiteorian sanasto perus-
tuu suurimmaksi osaksi Koiviston ja Niemistön graafiteoriaa koskevaan ope-
tusmonisteeseen [8]. Se, miten tässä tutkielmassa sovelletaan graafiteoriaa
sana-assosiaatioaineiston analyysiin, perustuu Dubossarskyn ym. artikkeliin
[4].
3
3.1 Graafiteorian peruskäsitteitä
Aloitetaan erilaisten graafien määritelmistä.
Määritelmä 3.1. Yksinkertainen graafi (simple graph) G on pari (V;E),
jossa V 6= ; on äärellinen joukko ja E on äärellinen joukko järjestämättömiä
pareja fu; vg, u; v 2 V; u 6= v. Joukon V alkioita kutsutaan solmuiksi (node;
vertex ) ja joukon E alkioita särmiksi (edge).
Kuva 2: Yksinkertainen graafi, jossa solmujen joukko V = fA;B;C;D;Eg ja
särmien joukko E = ffA;Bg; fA;Cg; fA;Dg; fB;Dg; fD;Egg.
Määritelmä 3.2. Suunnattu graafi (directed network ) G on pari (V;E),
jossa V 6= ; on äärellinen joukko ja E on äärellinen joukko järjestettyjä
pareja (u; v), u; v 2 V . Suunnatun graafin särmiä kutsutaan myös kaariksi.
Kuva 2 esittää yksinkertaista graafia, jolla on viisi solmua ja viisi särmää.
Kuva 3 esitää suunnattua graafia, jolla on kolme solmua ja neljä kaarta.
Määritelmä 3.3. Painotettu graafi (weighted network ) on graafin yleistys,
jossa jokaiseen särmään on liitetty jokin luku (paino). Merkitään särmän
fi; jg painoa wij.
Kuva 4 esittää painotettua graafia, jossa on kolme solmua ja kolme sär-
mää. Graafin voi myös esittää matriisimuodossa; tätä kutsutaan vierusmat-
riisiksi.
4
Kuva 3: Suunnattu graafi, jossa solmujen joukko V = fA;B;Cg ja kaarien
joukko E = f(A;B); (B;A); (A;C); (C;B)}.
Määritelmä 3.4. Olkoon G = (V;E) n-solmuinen graafi, jossa V =
fv1; v2; : : : ; vng. Graafin G vierusmatriisi (adjacency matrix ) A on n n-
matriisi, jonka alkio (i; j) on
aij = särmien lukumäärä solmusta vi solmuun vj:
Määritelmä 3.4 on yleinen eli se pätee erityyppisille graafeille. Jos G on
painottamaton graafi, aij voi olla vain 0 tai 1. Jos G on painotettu graa-
fi, alkiot aij ovat särmien painoja wij. Jos G on suuntaamaton graafi, A on
symmetrinen matriisi. Jos G on suunnattu graafi, A ei välttämättä ole sym-
metrinen, ja tässä tapauksessa A on käytännössä melkein aina epäsymmet-
rinen. On myös olemassa graafeja, joissa solmusta voi olla särmä tai särmiä
itseensä (näitä särmiä kutsutaan luupeiksi). Emme käsittele tällaisia graa-
feja tässä tutkielmassa, joten tässä tutkielmassa kaikkien vierusmatriisien
diagonaalialkiot ovat aina nollia.
Esimerkki 3.5. Kuvan 3 suunnatun graafin G = ffA;B;Cg; ffA;Bg;
fB;Ag; fA;Cg; fB;Cggg vierusmatriisi on
A =
0B@0 1 11 0 0
0 1 0
1CA :
5
Kuva 4: Painotettu graafi, jossa solmujen joukko V = fA;B;Cg ja särmien
joukko E = ffA;Bg; fA;Cg; fB;Cgg. Särmien painot ovat wAB = 3, wAC =
4, ja wBC = 2.
Esimerkki 3.6. Kuvan 4 painotetun, suuntaamattoman graafin G =
ffA;B;Cg; ffA;Bg; fA;Cg; fB;Cggg vierusmatriisi on
A =
0B@0 3 43 0 2
4 2 0
1CA :
3.2 Kaksimuotoisen graafin projisointi yksimuotoiseksi
Tämän tutkielman tavoitteena on tehdä graafiteoriaan perustuvaa analyy-
sia sana-assosiaatioaineistosta. Tutkielman aineistossa on kahden tyyppisiä
sanoja, ärsykesanoja ja kohdesanoja, joten vastaavasti myös aineistosta luo-
dussa graafissa on lähtökohtaisesti kahden tyyppisiä solmuja. Lisäksi aineis-
tosta luodussa graafissa kaikki kaaret kulkevat ärsykesanoista kohdesanoi-
hin (eikä esimerkiksi ärsykesanasta toiseen ärsykesanaan). Tällainen graa-
fi on kaksimuotoinen graafi (two-mode network; bipartite network ). Suurin
osa graafiteoriasta perustuu oletukseen, että graafi on yksimuotoinen graafi
(one-mode network ), jolloin graafissa on vain yhdenlaisia solmuja. Analyy-
sin helpottamiseksi kaksimuotoinen graafi on siis projisoitava yksimuotoisek-
si painotetuksi (suunnatuksi) graafiksi. Yksimuotoisessa projektiossa solmut
ovat ärsykesanoja. Kaarien painot wij perustuvat siihen, kuinka monta yh-
teistä kohdesanaa ärsykesanalla i on ärsykesanan j kanssa, normeerattuna
6
kohdesanojen yleisyydellä:
wij =
PX
p=1
wi;p
Np 1 (1)
jossa summaus on ärsykesanojen i ja j yhteisten kohdesanojen yli ja
wij = kaaren paino yksimuotoisessa graafissa solmusta vi solmuun vj;
P = kuinka monta yhteistä kohdesanaa ärsykesanoilla i ja j on,
wi;p = kuinka monta kertaa ärsykesana i sai ärsykesanan j kanssa
yhteisen kohdesanan p;
Np = kuinka monta ärsykesanaa sai kohdesanan p vastauksena:
On luonteenomaista, että luodussa yksimuotoisessa suunnatussa graafissa
kaaren paino wij ei useinkaan ole sama kuin paino wji. [4]
Esimerkki 3.7. Käytetään esimerkkinä ärsykesanoja nainen, lapsi, ja ah-
das. Oletetaan, että joku koehenkilö antaa ärsykesanalle nainen kohdesanat
{mies, tyttö, poika}, ärsykesanalle lapsi kohdesanat {pieni, tyttö, poika}, ja
ärsykesanalle ahdas kohdesanat {ahdistus, pieni, kapea}. Tällöin yksimuo-
toisessa graafissa voidaan piirtää kaari sanasta nainen sanaan lapsi, sanasta
lapsi sanaan nainen, sanasta lapsi sanaan ahdas, sekä sanasta ahdas sanaan
lapsi.
Oletetaan, että yhteensä koko aineistossa 3 koehenkilöä antoi ärsykesa-
nalle nainen kohdesanat {tyttö, poika}, 5 koehenkilöä antoi ärsykesanalle
lapsi kohdesanan pieni, 3 antoi kohdesanan tyttö ja 4 kohdesanan poika, sekä
2 koehenkilöä antoi ärsykesanalle ahdas kohdesanan pieni. Oletetaan myös,
että joku koehenkilö antoi myös ärsykesanoille kevyt ja iso kohdesanan pieni.
7
Tällöin yksimuotoisen graafin kaarille saadaan painot:
w12 =
2X
p=1
w1;p
Np 1 =
3
2 1 +
3
2 1 = 6 sanasta nainen sanaan lapsi,
w21 =
2X
p=1
w2;p
Np 1 =
3
2 1 +
4
2 1 = 7 sanasta lapsi sanaan nainen,
w23 =
1X
p=1
w2;p
Np 1 =
5
4 1 =
5
3
sanasta lapsi sanaan ahdas, ja
w32 =
1X
p=1
w3;p
Np 1 =
2
4 1 =
2
3
sanasta ahdas sanaan lapsi.
Esimerkin visualisoi kuva 5.
Kuva 5: Vasemmalla on tekstissä esitetyn esimerkin mukainen kaksimuotoi-
nen graafi ja oikealla tästä luotu yksimuotoinen, painotettu suuntaamaton
graafi.
On huomioitava, että toisin kuin kaksimuotoinen graafi, luotu yksimuo-
toinen graafi ei edusta sanojen kognitiivista järjestymistä. Sen sijaan yksi-
muotoinen graafi kuvaa sana-assosiaatioaineiston rakenteellisia ominaisuuk-
sia. [4]
8
Seuraavaksi määritellään solmun aste, solmun voima, asteen keskeisyys-
mitta, klusterointikerroin, ja polun pituus. Näiden laskemisessa käytetään
projisoitua yksimuotoista graafia.
3.3 Aste, voimakkuus ja asteen keskeisyysmitta
Määritelmä 3.8. Solmun lähtöaste (out-degree) kout on niiden kaarien lu-
kumäärä, jotka lähtevät solmusta. Solmun tuloaste (in-degree) kin on niiden
kaarien lukumäärä, jotka saapuvat solmuun. Lähtö- ja tuloasteet ovat siis
kouti =
nX
j=1
xij; k
in
j =
nX
i=1
xij;
jossa xij = 1, jos on olemassa kaari joka kulkee solmusta vi solmuun vj,
ja xij = 0 muuten; n on solmujen lukumäärä [9]. Solmun aste k on niiden
kaarien lukumäärä, jotka ovat kytkeytyneet solmuun [10].
Solmun aste siis kuvaa vain sitä, kuinka monta kaarta on kytkeytynyt
solmuun. Kun kyseessä on painotettu graafi, solmun kytkeytyvyyttä voidaan
kuvata myös kaarien painojen summana.
Määritelmä 3.9. Solmun voimakkuus (node strength) on solmuun kytkeyty-
neiden kaarien painojen summa. Kun on kyseessä suunnattu graafi, voidaan
laskea lähtö- ja tulovoimakkuudet sout ja sin:
souti =
nX
j=1
wij; s
in
j =
nX
i=1
wij;
jossa wij ovat painotetun suunnatun graafin vierusmatriisin alkioita; toisin
sanoen, wij on kaaren paino solmusta vi solmuun vj.
Koska solmun aste sekä voimakkuus ovat tärkeitä indikaattoreita siitä,
kuinka kytkeytynyt solmu on, on kehitetty kaava, joka ottaa huomioon mo-
lemmat. Tätä menetelmää kutsutaan Opsahlin menetelmäksi [10].
Määritelmä 3.10. Asteen keskeisyysmitta CwD (i) (degree centrality measu-
re) on solmun asteen ja voimakkuuden tulo, jota säädetään viritysparamet-
rilla:
CwD (i) = k
1
i si ;
9
jossa
ki = solmun i aste;
si = solmun i voimakkuus;
= positiivinen viritysparametri.
Voidaan myös laskea lähtö- ja tuloasteiden keskeisyysmitat samalla taval-
la eli
CwD out(i) = (k
out
i )
1 (souti ) ja
CwD in(i) = (k
in
i )
1 (sini ):
Viritysparametrin valinta riippuu siitä, halutaanko painottaa kaarien
määrää (solmun astetta) vai kaarien painoja (solmun voimakkuutta), vai ha-
lutaanko ottaa molemmat huomioon tasapuolisesti. Jos valitaan = 0, me-
netelmä jättää huomioimatta solmun voimakkuuden. Jos valitaan = 1,
menetelmä jättää huomioimatta solmun asteen. Kun = 0:5, aste ja voi-
makkuus otetaan tasavertaisesti huomioon. Jos valitaan > 1, solmun aste
pienentää asteen keskeisyysmittaa. [10][11]
Dubossarsky ym. [4] kutsuvat mittaa CwD (i) asteeksi, mutta tässä tut-
kielmassa käytetään kuitenkin Opsahlin käyttämää termiä asteen keskeisyys-
mitta.
Asteen keskeisyysmitta lasketaan jokaiselle solmulle (eli ärsykesanalle)
erikseen. Tämän jälkeen voidaan laskea koko graafin keskimääräinen asteen
keskeisyysmitta summaamalla kaikkien solmujen asteen keskeisyysmitat ja
jakamalla solmujen lukumäärällä.
3.4 Klusterointikerroin
Klusterointikerroin ci mittaa solmun yhteiskytkeytyvyyttä solmun naapurei-
den kanssa. Se mittaa sitä, kuinka paljon painoista, jotka lähtevät solmusta
i sen naapureihin, jää paikalliseen naapurustoon. [4]
Määritelmä 3.11. Solmun i painotettu klusterointikerroin (weighted clus-
10
tering coefficient) on:
ci =
1
souti (ki 1)
X
1j, ln
j, l 6=i
wij + wil
2
aijailajl;
jossa
ki = solmun i aste;
souti = solmun i lähtövoimakkuus;
wij = kaaren (i; j) paino;
A = (aij) = graafin painoton vierusmatriisi, jonka alkiot aij = 1
jos wij 0 ja aij = 0 muuten.
On huomioitava, että aijailajl = 1 jos ja vain jos solmut i, j ja l muodostavat
kolmion graafissa. [12][13]
Kun graafi on luotu oikeasta aineistosta, klusterointikerroin käyttäytyy
epätriviaalisesti seuraten potenssilakia asteen k funktiona [13]. Keskimääräi-
nen klusterointikerroin C saadaan laskemalla kaikkien solmujen klusterointi-
kertoimien keskiarvo [14].
3.5 Polun pituus
Määritelmä 3.12. Polun pituus (shortest path) l kahden solmun välillä on
lyhyimmän mahdollisen polun pituus, kun kuljetaan kaaria pitkin. [4]
Kun kyseessä on graafi, joka ei ole painotettu, polun pituus solmusta i
solmuun j voidaan laskea seuraavasti:
d(i; j) = min(xih1 + + xhl 1j);
jossa h1, ..., hl 1 ovat välisolmuja solmun i ja j välisillä poluilla ja xih1 ,
..., xhl 1j ovat kaikki 1. Tätä voidaan kutsua binääriseksi polun pituudeksi
(binary shortest distance). [10]
11
Kun kyseessä on painotettu graafi, myös painot pitää ottaa huomioon
siten, että mitä suurempi paino, sitä lyhyempi polku on. Polun pituus pai-
notetussa graafissa voidaan määritellään seuraavasti:
dw(i; j) = min(
1
wih1
+ + 1
whl 1j
);
jossa h1, ..., hl 1 ovat välisolmuja solmun i ja j välisillä poluilla. [10]
Tässä tutkielmassa käytetään kuitenkin normalisoituja kaarten painoja,
jakamalla kaarien painot graafin painojen keskiarvolla [4]. Polun pituus voi-
daan täten määritellä
dw(i; j) = min(
w
wih1
+ + w
whl 1j
);
jossa w on graafin painojen keskiarvo.
Keskimääräinen polun pituus L saadaan laskemalla kaikkien solmuparien
polun pituuksien keskiarvo [14]. Tämä luku ottaa huomioon koko graafin.
Voidaan myös laskea lokaali polkujen pituus (local shortest path) li jo-
kaiselle solmulle i erikseen, laskemalla keskiarvo niiden polkujen pituuksista,
jotka lähtevät solmusta i [15]. Tämä luku on indikaattori siitä, kuinka hyvin
solmu on yhteydessä mihin tahansa muuhun solmuun graafissa.
3.6 Satunnainen graafi
Satunnaisen graafin voi generoida käyttämällä Erdös-Rényin satunnaisen
graafin mallia. Erdös-Rényi mallista on kaksi eri versiota. Tässä tutkielmas-
sa käytetään mallin versiota
n;M , jossa graafi valitaan satunnaisesti kaikista
mahdollisista graafeista, joilla on n solmua ja M särmää. Toinen vaihtoeh-
to olisi ottaa huomioon särmän olemassa olemisen todennäköisyys särmien
määrän sijaan. [16]
Määritelmä 3.13. Olkoon En;M kaikkien graafien joukko, joilla on n solmua
jaM särmää. Satunnainen graafi
n;M on joukosta En;M satunnaisesti valittu
alkio. Jokaisella joukon En;M alkiolla on sama todennäköisyys tulla valituksi
(1=
(n2)
M
). [16]
12
Erdös-Renyin satunnaisesta graafista
n;M laskettu aste krand seuraa bi-
nomijakaumaa Bin(n, p), jossa p = 1=
(n2)
M
. Sen keskimääräinen aste voidaan
laskea Krand = p(n 1). Graafin keskimääräistä astetta käyttämällä voidaan
estimoida sen keskimääräinen klusterikerroin ja polun pituus:
Crand = p Krand
n
; ja
Lrand logKrand(n) =
log(n)
log(p(n 1)) :
Kun solmujen määrä n kasvaa, Erdös-Renyin satunnaisen graafin keskimää-
räinen klusterointikerroin lähestyy nollaa, ja sen keskimääräinen polun pituus
lähestyy jotain vakiota. [19]
Erdös-Rényin satunnainen graafi voi olla suunnattu, mutta se on aina pai-
nottamaton. On myös esitetty tapa generoida painotettu satunnainen graafi
vastaavanlaisesti [18], mutta tässä tutkielmassa käytetään vain Erdös-Rényin
graafia.
3.7 Pieni maailma
Pieni maailma -graafi (small-world newtwork ) on verkosto, jolla on tiiviisti
toisiinsa liittyvät solmuklusterit ja jonka polkujen pituudet ovat keskimäärin
lyhyitä. Tällaisen graafin kriteerinä on pidetty, että sen keskimääräinen po-
lun pituus L on lähes sama kuin vastaavanlaisella satunnaisella gaafilla ja sen
keskimääräinen klusterointikerroin C on suurempi kuin vastaavanlaisella sa-
tunnaisella graafilla. Voidaan siis käyttää kriteerejä L Lrand ja C > Crand.
Se, onko kyseessä pieni maailma -graafi, voidaan myös määrittää käyttämällä
pieni maailma -indeksiä. Verkostoa voidaan kutsua pieni maailma -graafiksi
jos SWI > 1. [14]
Määritelmä 3.14. Pieni maailma -indeksi SWI (small-world index ) saa-
daan normalisoimalla keskimääräinen klusterikerroin C ja keskimääräinen
polun pituus L jakamalla nämä vastaavan satunnaisen graafin samoilla mi-
toilla ja jakamalla normalisoitu klusterikerroin normalisoidulla keskimääräi-
sellä polun pituudella, eli
SWI =
C
Crand
=
L
Lrand
;
13
jossa C ja L ovat keskimääräinen klusterikerroin ja keskimääräinen polun
pituus, ja Crand ja Lrand ovat samat mitat sellaisessa Erdös-Rényin satunnai-
sessa graafissa, jolla on sama koko ja tiheys. [4]
3.8 Entropia
Entropialla lasketaan, mikä osuus vastauksista tietylle ärsykesanalle on sama
kohdesana. Entropia kuvaa siis vastauksien monipuolisuutta; entropia on pie-
ni sellaisille ärsykesanoille, joille moni koehenkilö antoi samoja vastauksia,
ja suuri ärsykesanoille, jotka saivat paljon erilaisia vastauksia. Toisin kuin
asteen keskeisyysmitan, klusterointikertoimen ja polun pituuden laskelmis-
sa, joissa käytetään projisoitua yksimuotoista graafia, entropian laskennassa
käytetään alkuperäistä kaksimuotoista graafia.
Jokaiselle ärsykesanalle lasketaan erikseen vastausvektori
(p(x1); : : : ; p(xn)), jossa n on vastaustyyppien (erilaisten kohdesano-
jen) lukumäärä ja p(xk) on kohdesanan xk lukumäärä jaettuna ärsykesanan
kaikkien kohdesanojen lukumäärällä.
Määritelmä 3.15. Ärsykesanan i normalisoitu entropia (normalised entro-
py; metric entropy) hi on sen vastausvektorin keskiarvo, eli
hi =
niX
k=1
p(xk) log(p(xk))
log(ni)
;
jossa
ni = ärsykesanalle i annettujen ainutlaatuisten kohdesanojen lukumäärä,
p(xk) = kohdesanan xk osuus kaikista kohdesanoista, jotka annettiin
vastauksena ärsykesanalle k:
Keskimääräinen entropia H saadaan laskemalla kaikkien ärsykesanojen ent-
ropioiden keskiarvo. [4]
3.9 Tilastolliset menetelmät
Tilastollisena menetelmänä tässä tutkielmassa käytetään monen muuttujan
varianssianalyysiä (MANOVA; multivariate analysis of variance), jossa se-
14
littävä muuttuja on ikäryhmä ja selitettävät muuttujat ovat tuloasteen kes-
keisyysmitta, lähtöasteen keskeisyysmitta, klusterointikerroin ja lokaali pol-
kujen pituus. Lisäksi käytetään yksisuuntaista varianssianalyysia (ANOVA;
analysis of variance) jokaiselle suurelle erikseen, kun selittävä muuttuja on
ikäryhmä ja selitettävä muuttuja on entropia, tuloasteen keskeisyysmitta,
lähtöasteen keskeisyysmitta, klusterointikerroin tai lokaali polkujen pituus.
Jos suureet eivät seuraa normaalijakaumaa, käytetään myös epäparametris-
ta Mann–Whitneyn U-testiä eli Wilcoxonin järjestyssummatestiä. Normaali-
suutta testattiin Shapiro–Wilk -testillä.
3.10 Analyysiohjelmistot
Aineiston analyysissä käytin erityisesti R Studion paketteja tnet ja igraph.
Klusterointikerroimet laskettiin funktiolla clustering_w (kun kyseessä on
painotettu graafi) paketissa tnet ja funktiolla ClustBCG paketissa igraph.
Aste ja voima laskettiin funktiolla degree_w ja polun pituudet funktiolla dis-
tance_w (kun kyseessä on painotettu graafi) paketissa tnet. Paketissa igraph
on funktio erdos.renyi.game, joka generoi Erdös-Rényin satunnaisen graafin.
Yksisuuntainen varianssianalyysi tehtiin käyttämällä funktiota lm ja monen
muuttujan varianssianalyysi käyttämällä funktiota manova paketissa stats.
Käytetty R-koodi on liitteessä A.
4 Aineiston analyysi
4.1 Aineisto
Turun yliopiston psykologian laitoksen sana-assosiaatiotutkimukseen rekry-
toitiin suomea äidinkielenä puhuvia 18–40-vuotiaita nuoria aikuisia ja yli
60-vuotiaita ikääntyneitä aikuisia, joilla ei ollut diagnosoitua kognitiivista
heikentymää tai neuropsykologista häiriötä. Molemmilla ikäryhmillä käytet-
tiin 270 sanan sanalistaa (liite B). Tämä sanalista jaettiin 24 suppeampaan
sanalistaan, joissa on 45 sanaa per lista. Jokaiselle koehenkilölle arvottiin
satunnaisesti yksi suppeammasta sanalistasta; tämän satunnaisuuden takia
15
ikäryhmä koehenkilöitä R1 R2 R3 yhteensä ainutlaatuisia suhde
18–40 62 2786 2734 2689 8209 3373 0.411
60–100 52 2335 2292 2191 6818 2574 0.378
Taulukko 1: Vastausten lukumäärät sana-assosiaatiotutkimuksessa. Sarak-
keissa ”R1”, ”R2”, ja ”R3” ovat ensimmäisten, toisten, ja kolmansien vastauk-
sien lukumäärät; ”yhteensä” on vastauksien määrä yhteensä; ”ainutlaatuisia”
on sellaisten vastausten lukumäärä, joissa annettu kohdesana esiintyi koko
aineistossa vain kerran; ”suhde” on ainutlaatuisten vastausten lukumäärän
suhde kaikken vastausten lukumäärään.
joillekin sanoille saatiin vähemmän vastauksia kuin toisille. Koehenkilön pyy-
dettiin antamaan kolme assosiaatiota jokaiselle ärsykesanalle. Yhdelle ärsy-
kesanalle annettujen vastausten määrän vaihteluväli oli 9–51.
Aineisto kerättiin käyttämällä vapaata assosiaatiotehtävää. Sana-
assosiaatiotehtävä suoritettiin tietokoneella, internetpohjaisella Soile-
alustalla. Ärsykesanat esitettiin kirjallisesti ja tehtävään vastattiin kirjoita-
malla.
Koehenkilöiden antamat assosiaatiot eli kohdesanat on muokattu korjaa-
malla mahdollisimman paljon kirjoitusvirheitä (esim. nennyttä = mennyttä)
ja poistamalla vastauksia, jotka eivät ole sanoja (esim. jos on vahingossa
kirjoittanut vain yhden kirjaimen sanan sijaan). Lisäksi kaikki sanat, jot-
ka oli annettu monikossa, muunnettiin niiden yksikkömuotoon (esim. marjat
= marja), ja kaikki taivutetut sanat on pyritty muuntamaan niiden perus-
muotoon (esim. erilaista = erilainen). Vastauksien kirjainkoot muunnettiin
pieniksi kirjaimiksi ja varmistettu, että jokainen vastaus on vain yksi vas-
taus (ei esimerkiksi kaikki kolme vastausta kirjoitettu yhdeksi vastaukseksi).
Taulukko 1 esittää vastausten lukumäärät kahdessa ikäryhmässä.
Tutkimukseen osallistui 62 nuorta aikuista (18–40 vuotiaita) ja 52 ikään-
tynyttä aikuista (60–100 vuotiaita). Yhteensä vastauksia oli 8209 nuorelta
aikuiselta ja 6818 ikääntyneeltä.
16
4.2 Tutkimuksen voimasta
Tässä luvussa lasketaan, kuinka suureen tilastolliseen voimaan tämän työn
tutkimuksen koko riittää, kun lähtökohtana pidetään Dubossarskyn artikke-
lin [4] tietoja eri ikäryhmien välisistä eroista. Tarkastellaan esimerkin vuoksi
klusterointikerrointa.
Dubossarskyn ym. artikkelin [4] kuvasta 4 voi arvioida klusterointikertoi-
melle ikäluokittaiset keskiarvot x60v = 0:1025, x70v = 0:1045, x18v = 0:1160,
x30v = 0:1125, ja x40v = 0:1095, sekä keskiarvon keskivirheen =
p
nD =
0:0028, jossa on klusterikertoimen hajonta ja nD on yhdessä ikäryhmässä
käytettyjen ärsykesanojen lukumäärä.
Dubosarskyn ym. artikkelin tietojen perusteella ikääntyneiden (A) ja
nuorten (B) aikuisten sanaverkostojen klusterointikertoimet ja niiden hajon-
ta arvioitiin seuraavasti:
xA = (x60v + x70v)=2 = (0:1025 + 0:1045)=2 = 0:1035;
xB = (x18v + x30v + x40v)=3 = (0:1160 + 0:1125 + 0:1095)=3 0:1127;
= 0:0028 pnD = 0:0028
p
420 0:0574;
jossa xA on keskimääräinen klusterointikerroin ikääntyneiden aikuisten ryh-
mässä, xB on keskimääräinen klusterointikerroin nuorten aikuisten ryhmäs-
sä, ja on klusterikertoimen hajonta. Oletetaan, että klusterointikertoimet
noudattavat normaalijakaumaa yllä esitetyin parametrein.
Lasketaan tutkimuksemme voima käyttäen kaavaa [17]
D = (q1 =2 + q1 )
s
2
nA
+
2
nB
;
17
jossa
D = jxA xBj 0:01 = ero eri ikäryhmien klusterointikertoimissa
Dubossarskyn ym. artikkelissa,
nA = 270 = käytettyjen ärsykesanojen lukumäärä ikääntyneiden aikuisten ryhmässä
Turun yliopiston tutkimusprojektissa,
nB = 270 = käytettyjen ärsykesanojen lukumäärä nuorien aikuisten ryhmässä
Turun yliopiston tutkimusprojektissa,
= 5% = 0:05 = tyypin 1 virhe;
q1 =2 = 1:96 = standardinormaalijakauman 1 =2 kvantiili,
1 = voimakkuus,
q1 = standardinormaalijakauman 1 kvantiili:
Tästä saadaan
0:01 = (1:96 + q1 )
r
0:05742
270
+
0:05742
270
=) q1 = 0:01q
0:05742
270
+ 0:0574
2
270
1:96 0:06:
Koska oletetaan, että aineistomme noudattaa normaalijakaumaa ja tiede-
tään, että standardinormaalijakauman kvantiili q0:5239 = 0:06, saadaan tut-
kimuksen voimaksi klusterointikertoimen osalta
1 = 0:5239 52%:
4.3 Entropia
Taulukkoon 2 on kirjattu entropian keskiarvot, keskiarvojen keskivirheet, se-
kä 95 %:n luottamusvälit molemmissa ikäryhmissä. Ikäryhmien välillä ei ollut
merkittävää eroa. Entropia on aina välillä [0; 1], eli saamamme entropia on
suuri molemmissa ikärymissä. Yksisuuntainen varianssianalyysi sekä Mann–
Whitney U-testi osoittivat, että ikäryhmät eivät eronneet entropian suhteen
(p = 0:53 ja p = 0:88).
18
ikääntyneet aikuiset nuoret aikuiset
keskiarvo 0.954 0.956
keskiarvon keskivirhe 0.002 0.002
95 %:n luottamusväli [0.950, 0.959] [0.953, 0.960]
Taulukko 2: Entropian (H) keskiarvo, keskiarvon keskivirhe ja 95 %:n luot-
tamusväli.
4.4 Graafianalyysi
Kuva 6 esittää aineistosta tehtyjä graafeja ilman projisointia. Näiden kaksi-
muotoisten graafien rakentamisen jälkeen graafit projisoitiin yksimuotoisiksi
luvussa 3.2 esitetyn menettelyn mukaisesti. Nämä yksimuotoiset graafit on
visualisoitu kuvassa 7. Loput analyysistä käsittelee tätä projisoitua graafia.
Verrattuna nuorten aikuisten graafiin ikääntyneiden graafi (kuva 7) on
hieman laajempi ja sen ulkoreunoilla näyttäisi olevan enemmän solmuja, jot-
ka eivät ole vahvasti yhteyksissä toisiin solmuihin.
Kuva 6: Visualisaatio kaksimuotoisista graafeista; vasemmalla ikääntyneet ja
oikealla nuoret aikuiset.
Taulukkoon 3 on kirjattu lähtöasteen keskeisyysmitan, tuloasteen keskei-
syysmitan, klusterointikertoimen ja polun pituuden keskiarvot ja keskiarvo-
jen keskivirheet molemmissa ikäryhmissä, sekä näiden suureiden 95%:n luot-
tamusvälit. Sekä lähtö- että tuloasteen keskeisyysmitat olivat merkittävästi
19
Kuva 7: Visualisaatio projisoiduista yksimuotoisista graafeista; vasemmalla
ikääntyneet ja oikealla nuoret aikuiset.
suuremmat nuorten aikuisten ryhmässä. Tämä viittaa siihen, että ikääntynei-
den graafin solmuilla oli keskivertaisesti vähemmän yhteyksiä kuin nuorten
aikuisten graafin solmuilla. Myös polun pituudet ovat merkittävästi pidempiä
ikääntyneiden aikuisten graafissa kuin nuorten aikuisten, mikä myös viittaa
siihen, että ikääntyneiden graafin solmut eivät ole yhtä hyvin yhteyksissä
toisiinsa. Klusterointikertoimella ei ollut merkittävää eroa eri ikäryhmien vä-
lillä.
Yksisuuntaisen varianssianalyysiin perustuvat päätelmät olivat luonnol-
lisesti samanlaiset kuin luottamusvälien estimointiin perustuvat. Ikäryhmät
poikkesivat toisistaan tilastollisesti merkitsevästi tuloasteen ja lähtöasteen
keskeisyysmitan sekä polun pituuden suhteen (kaikissa p 0:0001). Kluste-
rointikertoimilla ei ollut eroa (p = 0:58). Monen muuttujan varianssianalyysi
johti samalaisiin päätelmiin (p < 0:0001 kun malliin otettiin mukaan klus-
terointikerroin, sekä silloin kun se jätettiin pois mallista). Varianssianalyy-
si kuitenkin olettaa vastemuuttujan normaalisuuden. Koska sekä Shapiro–
Wilkin normaalisuustesti että residuaalien tarkastelu (liite C) viittasivat
siihen, että normaalisuusoletus ei toteudu, tehtiin myös epäparametrinen
Mann–Whitney U-testi näille parametreille. Myös tämä testi viittasi siihen,
että eri ikäryhmillä erosivat merkittävästi toisistaan tulo-asteen (W = 44969,
p < 0:0001), lähtö-asteen (W = 43888, p = 0:0001), ja polun pituuden
(W = 25002, p < 0:0001) suhteen. Ikäryhmät eivät eronneet merkittävästi
20
klusterointikertoimen suhteen (W = 38436, p = 0:27).
ikääntyneet aikuiset nuoret aikuiset
keskiarvo
keskiarvon
keskivirhe
95 %:n
luottamusväli
keskiarvo
keskiarvon
keskivirhe
95 %:n
luottamusväli
lähtöasteen
keskeisyysmitta (CwD out)
30.03 0.61 [28.84, 31.22] 33.37 0.68 [32.04, 34.69]
tuloasteen
keskeisyysmitta (CwD in)
30.22 0.62 [29.01, 31.43] 33.46 0.65 [32.18, 34.73]
klusterointikerroin (C) 0.3597 0.0046 [0.3507, 0.3587] 0.3631 0.0041 [0.3550, 0.3712]
polun pituus (L) 0.7852 0.0065 [0.7725, 0.7979] 0.7302 0.0057 [0.7191, 0.7413]
Taulukko 3: Keskeisyysmittojen, klusterointikertoimen ja polunpituuden kes-
kiarvot, keskiarvojen keskivirheet ja 95 %:n luottamusvälit ikääntyneiden ai-
kuisten (n = 52) ja nuorten aikuisten (n = 62) ikäryhmissä.
4.4.1 Pieni maailma
Nuorten aikuisten graafin pieni maailma -indeksiksi saatiin 3:81 ja ikäänty-
neiden aikuisten graafille 3:87. Molempien ikäryhmien graafit ovat siis pie-
ni maailma -graafeja koska niiden pieni maailma -indeksit ovat suurempia
kuin yksi, eivätkä ne eroa paljon toisistaan tältä osin. Se, että graafien pie-
ni maailma -indeksien välillä ei ollut eroa oli oletettavissa, koska ikäryhmien
klusterointikertoimissa ei ollut merkittävää eroa.
5 Pohdinta
Tässä tutkielmassa tutkittiin kahden eri ikäryhmän (18–40-vuotiaiden ja yli
60-vuotiaiden) sana-assosiaatioverkostoja ja niiden välisiä eroja, jotta pys-
tyisimme ymmärtämään, miten ikä vaikuttaa kielen organisointiin. Tulokset
viittaavat siihen, että ikääntyneillä aikuisilla on keskivertaisesti vähemmän
yhteyksiä sanojen välillä kuin nuorilla aikuisilla. Saimme myös näyttöä sii-
21
tä, että molempien ikäryhmien sana-assosiaatioverkostot ovat pieni maailma
-graafeja eli että ne eroavat merkittävästi satunnaisesta graafista.
Dubossarskyn ym. artikkelissa [4] käytettiin samoja menetelmiä kuin täs-
sä tutkielmassa. Suurimmat erot tutkimusten välillä olivat, että hollantilai-
sessa tutkimuksessa oli enemmän ikäryhmiä sekä koehenkilöitä ja ärsykesano-
ja per ikäryhmä ja heidän tutkimuksensa tehtiin hollannin kielellä, kuin tässä
tutkielmassa käsitelty tutkimus tehtiin suomen kielellä. Suurimmaksi osaksi
kuitenkin saatiin samanlaisia tuloksia kuin Dubossarskyn ym. artikkelissa.
Tuloasteen sekä lähtöasteen keskeisyysmitta olivat suurempia nuorten ai-
kuisten ryhmässä kuin ikääntyneiden. Dubossarsky ym. saivat samantyyppi-
sen tuloksen; keskeisyysmitat ovat pieniä lapsuudessa, suurimpia nuorena ai-
kuisena, ja pienenevät vanhemmiten. Tässä tutkielmassa lasketut keskeisyys-
mitat olivat kuitenkin ylipäätänsä suurempia kuin Dubossarskyn ym. keskei-
syysmitat, eli tässä tutkielmassa käsiteltyjen graafien solmuilla oli keskimää-
räisesti enemmän yhteyksiä. Toisin sanoen, ärsykesanoille annettiin (suhteel-
lisesti) enemmän samoja kohdesanoja tässä tutkimuksessa kuin Dubossars-
kyn ym. tutkimuksessa. On mahdollista, että tämä tulos johtuu siitä, että
Dubossarskyn tutkimuksessa käytettiin yli 400 ärsykesanaa ja tässä tutkiel-
massa käsitelty tutkimus käytti vain 270 ärsykesanaa. On myös mahdollista,
että ero johtuu käytetystä kielestä tai valituista ärsykesanoista.
Polun pituudet olivat lyhyempiä nuorten aikuisten ryhmässä kuin ikään-
tyneiden, mikä myös viittaa siihen, että nuorten aikuisten graafin solmut ovat
kytkeytyneempiä toisiinsa kuin ikääntyneiden aikuisten graafin solmut. Du-
bossarsky ym. saivat samantyyppisen tuloksen; polun pituudet olivat pitkiä
lapsena, lyhyimpiä nuorena aikuisena, ja pidempiä ikääntyessä. Dubossars-
kyn ym. polun pituudet olivat pidempiä kuin meidän tutkimuksessamme.
Tämä mahdollisesti johtuu vain siitä, että tässä tutkielmassa käsitellyt graa-
fit olivat pienempiä (vähemmän ärsykesanoja) verrattuna Dubossarskyn ym.
graafeihin.
Tässä tutkielmassa ei löydetty eroja klusterikertoimessa kahden ikäluokan
välillä. Dubossarskyn ym. artikkeli sen sijaan kuvasi kuvattiin suuri vähene-
mä klusterikertoimessa iän myötä. Tätä olisi hyvä tutkia uudelleen suurem-
malla koehenkilömäärällä ja kenties käyttämällä suurempaa ärsykesanalistaa.
22
Tässä tutkielmassa ei myöskään löydetty eroa keskimääräisessä entropias-
sa eri ikäryhmissä. Dubossarskyn ym. raportoivat, että entropia kasvaa iän
myötä.
5.1 Pieni maailma -indeksistä
Jotkut asiantuntijat ovat kyseenalaistaneet sen, onko pieni maailma -indeksi,
kuten se on tässä tutkielmassa laskettu, hyvä tapa kvantifioida pientä maa-
ilmallisuutta. Kuten luvussa 3.7 on määritelty, pieni maailma -graafilla on
suuri keskimääräinen klusterointikerroin ja pieni polun pituus, ja pieni maa-
ilma -indeksi vertaa näitä satunnaisen graafin klusterointikertoimeen ja po-
lun pituuten. Toinen tapa mitata pientä maailmallisuutta olisi verrata niitä
myös hilagraafin (lattice network ) klusterointikertoimeen ja polun pituuten.
Hilagraafeilla on suuri klusterointikerroin, ja satunnaisella graafilla on pieni
polun pituus, joten yksi ehdotettu tapa kvantifioida pientä maailmallisuut-
ta on käyttää hilagraafista laskettua keskimääräistä klusterointikerrointa ja
satunnaisen graafin keskimääräistä polun pituutta ja laskea erotus
! =
Lrand
L
C
Clatt
;
jossa L ja C ovat kesimääräinen polun pituus ja keskimääräinen klusteroin-
tikerroin, Lrand on generoidun Erdös-Rényin satunnaisen graafin keskimää-
räinen polun pituus ja Clatt on generoidun hilagraafin keskimääräinen klus-
terointikerroin. Käyttäen tällaista määritelmää voidaan sanoa, että graafi on
pieni maailma jos ! 0, satunnainen jos ! > 0, ja hilagraafi jos ! < 0.
Mitta ! voi olla parempi kuin käyttämämme indeksi SWI sen vuoksi, et-
tä graafin koko vaikuttaa pieni maailma -indeksiin SWI voimakkaasti, mikä
vaikeuttaa graafien vertailua; graafin koko ei vaikuta paljon pieni maailma -
mittaan !. Lisäksi graafit, joissa on erittäin pieni klusterointikerroin, voidaan
virheellisesti määritellä pieniksi maailmaksi, kun luotetaan pienen maailma
-indeksiin SWI, ja tämäkin ongelma voidaan ratkaista käyttämällä mittaa
!. [20]
Toinen ehdotettu tapa kvantifioida pientä maailmallisuutta on käyttää
23
kahden graafin normalisoitua indeksiä (double-graph normalised index )
SWI2 =
L Llatt
Lrand Llatt
C Crand
Clatt Crand ;
jossa L ja C ovat keskimääräinen polun pituus ja keskimääräinen kluste-
rointikerroin, Lrand ja Crand ovat vastaavat mitat generoidussa Erdös-Rényin
satunnaisessa graafissa ja Llatt ja Clatt ovat vastaavat mitat generoidussa hila-
graafissa. Kahden graafin normalisoitu indeksi SWI2 = 1 vain jos L = Lrand
ja C = Clatt, mikä on ominaista pieni maailma -graafille, ja lähellä nollaa,
jos vain yksi tai ei kumpikaan kriteeri täyty. Voidaan siis sanoa, että graafi
on pieni maailma jos SWI2 1. [21]
Syy, miksi tässä tutkielmassa käytettiin indeksiä SWI yllä esiteltyjen
vaihtoehtojen sijasta, on se, että tätä indeksiä yhä käytetään mm. neurobio-
logian ja psykologian aloilla [20] ja muut sana-assosiaatiotutkimukset käyt-
tivät tätä indeksiä [4]. Lisäksi sana-assosiaatioaineistosta luodut graafit ovat
suurinpiirtein saman kokoisia, koska niillä on yhtä paljon solmuja (ärsykesa-
noja), joten graafien vertailu ei ole ongelma. Tällaiset vaihtoehdot kannattaisi
kuitenkin ottaa huomioon myös tällä tieteenalalla.
5.2 Rajoituksia
Tässä tutkielmassa käytetyn aineiston keruussa oli vaikeuksia varsinkin
ikääntyneiden aikuisten ikäryhmässä, mikä johti siihen, että tutkimukseen
ei saatu haluttua koehenkilömäärää. Tästä syystä voima näyttää ikäryhmien
välinen ero klusterointikertoimessa laskettiin luvussa 4.2. Voima oli pieni, mi-
kä viittaa siihen, että mahdollisuus osoittaa ero klusterointikertoimessa oli
huono. Lisäksi on mahdollista, että juuri pienen koehenkilömäärän vuoksi
lasketut suureet eivät seuraa normaalijakaumaa, mikä tuottaa lisää ongelmia
tulosten tulkinnassa. Aineistossa oli vielä vähemmän vastauksia ikääntynei-
den aikuisten ikäryhmältä kuin nuorten aikuisten, mikä saattaa myös olla
syynä joihinkin ikäryhmien välisiin eroihin. Ikääntyneiden aikuisten graafin
solmuilla ei ollut yhtä paljon yhteyksiä kuin nuorten aikuisten graafin sol-
muilla. On mahdollista, että tämä seurasi siitä, että tutkimukseen saatiin mu-
kaan vähemmän ikääntyneitä aikuisia (n = 52) kuin nuoria aikuisia (n = 62);
24
enemmän koehenkilöitä tietenkin johtaa siihen, että saadaan enemmän koh-
desanoja. Tässä tutkielmassa ei myöskään otettuu huomioon yksilöiden väli-
siä eroja ryhmän sisällä, joten on myös mahdollista, että pienen koehenkilö-
määrästä johtuen yksi poikkeava havainto johti merkittäviin eroihin ryhmien
keskiarvojen välillä.
Käytetty rekrytointiprosessi myös johti siihen, että koehenkilöt eivät
edusta populaatiota. Paljon koehenkilöitä rekrytoitiin samasta ryhmästä
(mm. yliopiston tai harrastuksien kautta), mikä on saattanut aiheuttaa pal-
jon homogeenisuutta tutkimusryhmän sisällä. Lisäksi koehenkilöt olivat suu-
rimmaksi osaksi myös sellaisia henkilöitä, joita kiinnosti aihealue tai tutki-
mukseen osallistumisesta saatu palkinto (mahdollisuus voittaa lahjakortti).
5.3 Lopuksi
Tässä tutkielmassa pyrittiin vastaamaan kysymykseen, miten ihmiset orga-
nisoivat kieltä, sekä visualisoimaan tämän organisoinnin verkoston eli graafin
avulla. Vaikka onnistuttiin soveltamaan graafiteoriaa valittuun tutkimusalu-
eeseen ja visualisoimaan sana-assosiaatiotutkimuksen tuloksia graafin avul-
la, tämä tutkielma ei antanut selviä vastauksia siitä, miten kieli organisoituu
aivoissa (ja miten tämä eroaa eri ikäryhmissä). Konkreettisemman vastauk-
sen saamiseen tarvittaisiin suurempi aineisto eli aineisto jossa on enemmän
koehenkilöitä, mutta mahdollisesti myös suurempi ärsykesanalista.
25
Viitteet
[1] J.D. Nystuen, M.F. Dacey. A graph theory interpretation of nodal re-
gions. Papers in Regional Science 7 (1961), No. 1, 29-42.
[2] K. Kohlstedt, The Seven Bridge Problem: How an Urban
Puzzle Inspired a New Field of Mathematics. 99 % Invisible.
.
[3] A.L. Barabási. Linkit – Verkostojen uusi teoria. Helsinki, Terra Cognita,
2002. (Suomentanut Kimmo Pietiläinen. Alkuperäinen: Linked: The New
Science of Networks, Brockman Inc.)
[4] H. Dubossarsky, S. De Deyne, T.T. Hills. Quantifying the Structure of
Free Association Networks Across the Life Span. Developmental Psyc-
hology 53 (2017), No. 8, 1560-1570.
[5] D.L. Nelson, C.L. McEvoy, T.A. Schreiber. The University of South
Florida free association, rhyme, and word fragment norms. Behavior
Research Methods, Instruments, & Computers 36 (2004), 402–407.
.
[6] M. Zortea, B. Menegola, A. Villavicencio, J. Fumagalli de Salles. Graph
Analysis of Semantic Word Association among Children, Adults, and
the Elderly. Psicologia: Reflexão e Crítica 27 (2014), No. 1, 90-99.
[7] T.T. Hills, M. Maouene, J. Maouene, A. Sheya, L. Smith. Longitudinal
analysis of early semantic networks: Preferential attachment or prefe-
rential acquisition? Psychological Science 20 (2009b), No. 6, 729–739.
[8] P. Koivisto, R. Niemistö. Graafiteoriaa. Tampere, Tampereen yliopisto.
2018, 2. painos. (Tampereen yliopisto, Opintomoniste).
[9] M.E.J Newman, Networks: An Introduction. Oxford University Press.
2010, 1. painos.
26
[10] T. Opsahl, F. Agneessens, J. Skvoretz, Node centrality in weighted
networks: Generalizing degree and shortest paths. Social Networks 32
(2010), 245-251.
[11] J. Holloway, H. Sposito, J. Tan, B. Bieri, Package ’mi-
graph’. R-package version 1.3.2, (2024). .
[12] N. Masuda, M. Sakaki, T. Ezaki, T. Watanabe. Clustering Coef-
ficients for Correlation Networks. Frontiers in Neuroinformatics.
.
[13] A. Barrat, M. Barthélemy, R. Pastor-Satorras, A. Vespignani. The archi-
tecture of complex weighted networks. Proceedings of the National Aca-
demy of Sciences of the United States of America 101 (2004), No. 11,
3747–3752. .
[14] M.D. Humphries, K. Gurney. Network ‘Small-World-Ness’:
A Quantitative Method for Determining Canonical Network
Equivalence. PLoS ONE 3 (2008), No. 4: e0002051.
.
[15] Clustering Coefficient in Graph Theory. Geeks for Geeks.
.
[16] M. Karoński, A. Ruciński. The Origins of the Theory of Random Graphs.
In: R.L. Graham, J. Nešetřil (eds), The Mathematics of Paul Erdös I.
Algorithms and Combinatorics. Springer. 1997, 13. painos.
[17] C. DiMagio. Power Tools for Epidemiologists. ICEPaC.
.
[18] D. Garlaschelli. The weighted random graph model. New Journal of
Physics 11 (2009). .
27
[19] C.L. Hsu, Erdos-Renyi Random Graph. An Explorer of Things.
.
[20] Q.K. Telesford, K.E. Joyce, S. Hayasaka, J.H. Bur-
dette, P.J. Laurienti. The Ubiquity of Small-World
Networks. Brain Connectivity 5 (2011), No. 1, 367-375.
.
[21] Z.P. Neal. How small is it? Comparing indices of small worldliness.
Network science. 5 (2017), No. 1, 30-44.
28
Liite A R-koodi
l i b r a r y ( ope ra to r s )
l i b r a r y ( t i dyve r s e )
l i b r a r y ( s t a tne t )
l i b r a r y ( p lyr )
l i b r a r y (migraph )
l i b r a r y ( igraph )
l i b r a r y ( tnet )
l i b r a r y ( D i r e c t edC lus t e r ing )
l i b r a r y ( e f f e c t s i z e )
l i b r a r y ( ggp lot2 )
l i b r a r y ( bootst rap )
l i b r a r y ( boot )
l i b r a r y ( vcd )
l i b r a r y ( ggpubr )
## 1 . datan o r g a n i s o i n t i ####################
datadf <− as . data . frame ( data )
data000 <− datadf %>% f i l t e r (V2 != "0")
data_nozero <− data000 [ ! ( data000$V3=="") , ]
data_notext <− data_nozero [ ! ( data_nozero$V1=="stim ") , ]
f 1 <− f unc t i on ( data ) {
df <− data . frame ( )
f o r ( i in 1 : nrow ( data ) ) {
df [ i , 1 ] <− as . cha rac t e r ( data [ i , 1 ] )
df [ i , 2 ] <− as . cha rac t e r ( data [ i , 5 ] )
}
f o r ( j in 1 : nrow ( data ) ) {
df [ nrow ( data )+j , 1 ] <− as . cha rac t e r ( data [ j , 1 ] )
df [ nrow ( data )+j , 2 ] <− as . cha rac t e r ( data [ j , 8 ] )
}
f o r ( k in 1 : nrow ( data ) ) {
df [ nrow ( data )∗2+k , 1 ] <− as . cha rac t e r ( data [ k , 1 ] )
df [ nrow ( data )∗2+k , 2 ] <− as . cha rac t e r ( data [ k , 1 1 ] )
}
colnames ( df ) <− c (" arsykesana " , "kohdesana ")
df_ordered <− df [ order ( d f$arsykesana ) , ]
r e turn ( df_ordered )
}
f2 <− f unc t i on ( data ) {
df <− data . frame ( matrix (NA, nrow = 270 , nco l = 52) )
f o r ( i in 2 : nrow ( data ) ) {
str ingword <− paste ("^" , data [ i , 1 ] , "$ " , sep="")
i f ( any ( s t r_detect ( df [ , 1 ] , s t r ingword ) , na . rm = TRUE) ) {
J <− which ( df == data [ i , 1 ] , a r r . ind=TRUE)
j <− J [ 1 , 1 ] #df [ j , ? ]
count=1
whi le ( i s . na ( df [ j , count ] )==FALSE) {count <− count + 1}
df [ j , count ] <− data [ i , 2 ]
} e l s e {
camt=1
whi le ( i s . na ( df [ camt , 1 ] )==FALSE) {camt <− camt + 1}
df [ camt , 1 ] <− data [ i , 1 ]
df [ camt , 2 ] <− data [ i , 2 ]
}
}
colnames ( df ) <− c (" arsykesana " , "X1" , "X2" , "X3" , "X4" , "X5" , "X6" , "X7" , "X8" , "X9" ,
"X10" , "X11" , "X12" , "X13" , "X14" , "X15" , "X16" , "X17" , "X18" , "X19" , "X20" , "X21
" , "X22" , "X23" , "X24" , "X25" , "X26" , "X27" , "X28" , "X29" , "X30" , "X31" , "X32" , "
X33" , "X34" , "X35" , "X36" , "X37" , "X38" , "X39" , "X40" , "X41" , "X42" , "X43" , "X44" ,
"X45" , "X46" , "X47" , "X48" , "X49" , "X50" , "X51")
return ( df )
}
#### A i k n t y n e e t ####
29
data_A <− data_notext %>% f i l t e r (V3 == "a")
TA <− f 1 (data_A)
TA_1 <− TA[ ! ( TA$kohdesana=="−") , ]
A_ikaantyneet <− TA_1 [ ! ( TA_1$kohdesana=="") , ]
A_ikaantyneet <− mutate_all ( A_ikaantyneet , . funs=to lower )
A_ikaantyneet2 <− f 2 ( A_ikaantyneet )
#### B nuoret ####
data_B <− data_notext %>% f i l t e r (V3 == "b")
TB <− f 1 (data_B)
TB_1 <− TB[ ! ( TB$kohdesana=="−") , ]
B_nuoret <− TB_1 [ ! ( TB_1$kohdesana=="") , ]
B_nuoret <− mutate_all (B_nuoret , . funs=to lower )
B_nuoret2 <− f 2 (B_nuoret )
## 2 . kaksimuotoinen g r a a f i ####################
co l o r s <− c (" green " , " red ")
shapes <− c (" c i r c l e " , " square ")
#### A ikaantyneet ####
A_matrix <− as . matrix ( A_ikaantyneet )
gA <− graph . data . frame (A_matrix , d i r e c t ed = FALSE)
V(gA) $type <− V(gA)$name %in% A_matrix [ , 1 ]
V(gA) $ s i z e <− 1
p lo t (gA , layout = layout_with_graphopt , ver tex . l a b e l = NA, vertex . c o l o r = c o l o r s [V(gA)
$type +1] , ver tex . shape = shapes [V(gA) $type +1] , edge . c o l o r = "black " , edge . width =
0 . 1 )
#### B nuoret ####
B_matrix <− as . matrix (B_nuoret )
gB <− graph . data . frame (B_matrix , d i r e c t ed = FALSE)
V(gB) $type <− V(gB)$name %in% B_matrix [ , 1 ]
V(gB) $ s i z e <− 1
p lo t (gB , layout = layout_with_graphopt , ver tex . l a b e l = NA, vertex . c o l o r = c o l o r s [V(gB)
$type +1] , ver tex . shape = shapes [V(gB) $type +1] , edge . c o l o r = "black " , edge . width =
0 . 1 )
## 3 . yksimuotoinen pa inote t tu g r a a f i ####################
#### painot ####
f3 <− f unc t i on ( data , data2 ) {
net_weighted <− data . frame ( matrix (NA, nrow=270 , nco l =270) )
colnames ( net_weighted ) <− data2 [ , 1 ]
rownames ( net_weighted ) <− data2 [ , 1 ]
df = subset ( data2 , s e l e c t = −arsykesana )
f o r ( i in 1 :270) {
f o r ( j in 1 :270) {
i f ( i==j ) {
net_weighted [ i , j ] = 0
pr in t ( c ( i , j ) )
} e l s e {
VEC <− c ( )
f o r ( v in 1 : nco l ( df ) ) {
i f ( df [ i , v ] %in% df [ j , ] == TRUE & i s . na ( df [ i , v ] ) == FALSE) {
VEC <− append (VEC, df [ i , v ] )
}
}
unique_VEC <− unique (VEC)
P <− l ength (unique_VEC)
i f (P==0) {
net_weighted [ i , j ] = 0
pr in t ( c ( i , j ) )
} e l s e {
w_ij = 0
f o r (p in 1 :P) {
w_ip = 0
f o r (bb in 1 : l ength (VEC) ) {
i f (VEC[ bb ] == unique_VEC [P ] ) {
30
w_ip=w_ip+1
}
}
N_p = 0
str ingword <− paste ("^" , unique_VEC [P] , "$ " , sep="")
f o r ( k in 1 : nrow ( df ) ) {
i f ( any ( s t r_detect ( df [ k , ] , s t r ingword ) , na . rm = TRUE) ) {
N_p = N_p +1
}
}
w_ij = w_ij + w_ip / (N_p − 1)
}
net_weighted [ i , j ] = w_ij
p r in t ( c ( i , j ) )
}
}
}
}
return ( net_weighted )
}
A_weights_onemode_ikaantyneet <− f 3 ( data=A_ikaantyneet , data2=A_ikaantyneet2 )
B_weights_onemode_nuoret <− f 3 ( data=B_nuoret , data2=B_nuoret2 )
#### graa f i n p i i r t m i n e n ####
###### A ikaantyneet ####
matAA <− as . matrix ( A_weights_onemode_ikaantyneet )
gAA <− graph_from_adjacency_matrix (matAA, mode="d i r e c t ed " , weighted=TRUE, diag=FALSE)
p lo t (gAA, layout = layout_with_fr (gAA) , edge . width = 0.1∗ l og (E(gAA) $weight ) , edge . arrow .
s i z e =0.5 , ver tex . c o l o r="red " , ver tex . s i z e =2, ver tex . frame . c o l o r="red " , ver tex . l a b e l .
c o l o r="black " , edge . c o l o r = " grey " , ver tex . l a b e l . cex =0.8 , ver tex . l a b e l . d i s t =0, edge .
curved=0.2)
###### B nuoret ####
matBB <− as . matrix (B_weights_onemode_nuoret )
gBB <− graph_from_adjacency_matrix (matBB, mode="d i r e c t ed " , weighted=TRUE, diag=FALSE)
p lo t (gBB, layout = layout_with_fr (gBB) , edge . width = 0.1∗ l og (E(gBB) $weight ) , edge . arrow .
s i z e =0.5 , ver tex . c o l o r="red " , ver tex . s i z e =2, ver tex . frame . c o l o r="red " , ver tex . l a b e l .
c o l o r="black " , edge . c o l o r = " grey " , ver tex . l a b e l . cex =0.8 , ver tex . l a b e l . d i s t =0, edge .
curved=0.2)
## 4 . laskennat ####################
tnetA_ikaantyneet <− as . tnet ( A_weights_onemode_ikaantyneet )
tnetB_nuoret <− as . tnet (B_weights_onemode_nuoret )
#### aste ja voimakkuus ####
# tu l o a s t e ja −voimakkuus
kands_A_in <− degree_w ( tnetA_ikaantyneet , measure=c (" degree " ," output ") , type="in " , alpha
=1)
kands_B_in <− degree_w ( tnetB_nuoret , measure=c (" degree " ," output ") , type="in " , alpha=1)
# l h t a s t e ja −voimakkuus
kands_A_out <− degree_w ( tnetA_ikaantyneet , measure=c (" degree " ," output ") , type="out " ,
alpha=1)
kands_B_out <− degree_w ( tnetB_nuoret , measure=c (" degree " ," output ") , type="out " , alpha=1)
#### asteen ke ske i syysmi t ta ####
alpha = 0.5
central ity_A_in <− vector (mode="double " , l ength = 270)
f o r ( i in 1 :270) { central ity_A_in [ i ] = kands_A_in [ i ,2]^(1− alpha ) ∗ kands_A_in [ i , 3 ] ^ alpha
}
centrality_A_out <− vector (mode="double " , l ength = 270)
f o r ( i in 1 :270) { centrality_A_out [ i ] = kands_A_out [ i ,2]^(1− alpha ) ∗ kands_A_out [ i , 3 ] ^
alpha}
central ity_B_in <− vector (mode="double " , l ength = 270)
f o r ( i in 1 :270) { central ity_B_in [ i ] = kands_B_in [ i ,2]^(1− alpha ) ∗ kands_B_in [ i , 3 ] ^ alpha
}
central ity_B_out <− vector (mode="double " , l ength = 270)
31
f o r ( i in 1 :270) { central ity_B_out [ i ] = kands_B_out [ i ,2]^(1− alpha ) ∗ kands_B_out [ i , 3 ] ^
alpha}
degreest rengthcentra l i ty_A_in <− cbind (kands_A_in , central ity_A_in )
degreest rengthcentra l i ty_A_in <− cbind ( degreest rengthcentra l i ty_A_in [ , 1 ] , A_ikaantyneet2
[ , 1 ] , degreest rengthcentra l i ty_A_in [ , 2 ] , degreest rengthcentra l i ty_A_in [ , 3 ] ,
degreest rengthcentra l i ty_A_in [ , 4 ] )
colnames ( degreest rengthcentra l i ty_A_in ) = c (" solmu id " , " rsykesana " , " t u l o a s t e " , "
tulovoimakkuus " , "( tu l oa s t e en ) ke ske i syysmi t ta ")
degrees t rengthcentra l i ty_B_in <− cbind (kands_B_in , central ity_B_in )
degrees t rengthcentra l i ty_B_in <− cbind ( degrees t rengthcentra l i ty_B_in [ , 1 ] , B_nuoret2 [ , 1 ] ,
degrees t rengthcentra l i ty_B_in [ , 2 ] , degrees t rengthcentra l i ty_B_in [ , 3 ] ,
degrees t rengthcentra l i ty_B_in [ , 4 ] )
colnames ( degrees t rengthcentra l i ty_B_in ) = c (" solmu id " , " rsykesana " , " t u l o a s t e " , "
tulovoimakkuus " , "( tu l oa s t e en ) ke ske i syysmi t ta ")
degreestrengthcentra l i ty_A_out <− cbind (kands_A_out , centrality_A_out )
degreestrengthcentra l i ty_A_out <− cbind ( degreestrengthcentra l i ty_A_out [ , 1 ] ,
A_ikaantyneet2 [ , 1 ] , degreestrengthcentra l i ty_A_out [ , 2 ] ,
degreestrengthcentra l i ty_A_out [ , 3 ] , degreestrengthcentra l i ty_A_out [ , 4 ] )
colnames ( degreestrengthcentra l i ty_A_out ) = c (" solmu id " , " rsykesana " , " l h t a s t e " , "
l h t v o i m a k k u u s " , "( l h t a s t e e n ) ke ske i syysmi t ta ")
degreestrengthcentra l i ty_B_out <− cbind (kands_B_out , central ity_B_out )
degreestrengthcentra l i ty_B_out <− cbind ( degreestrengthcentra l i ty_B_out [ , 1 ] , B_nuoret2
[ , 1 ] , degreestrengthcentra l i ty_B_out [ , 2 ] , degreestrengthcentra l i ty_B_out [ , 3 ] ,
degreestrengthcentra l i ty_B_out [ , 4 ] )
colnames ( degreestrengthcentra l i ty_B_out ) = c (" solmu id " , " rsykesana " , " l h t a s t e " , "
l h t v o i m a k k u u s " , "( l h t a s t e e n ) ke ske i syysmi t ta ")
#### k l u s t e r o i n t i k e r r o i n ####
CA_all <− ClustBCG(mat = matAA, type = " d i r e c t ed ")
CA_global <− CA_all$GlobaltotalCC
CA_local <− CA_all$totalCC
CB_all <− ClustBCG(mat = matBB, type = " d i r e c t ed ")
CB_global <− CB_all$GlobaltotalCC
CB_local <− CB_all$totalCC
# k e s k i m r i n e n k l u s t e r o i n t i k e r r o i n :
CA <− c luster ing_w ( tnetA_ikaantyneet , measure = "am") #am = ar i thmet i c mean
CB <− c luster ing_w ( tnetB_nuoret , measure = "am")
###### kesk ia rvo ja ke sk iha jonta ####
CA_global
sd (CA_local ) / sq r t (270)
CA_global − 1 .96∗ ( sd (CA_local ) / sq r t (270) )
CA_global + 1 .96∗ ( sd (CA_local ) / sq r t (270) )
CB_global
sd (CB_local ) / sq r t (270)
CB_global − 1 .96∗ ( sd (CB_local ) / sq r t (270) )
CB_global + 1 .96∗ ( sd (CB_local ) / sq r t (270) )
#### polun pi tuus ####
d_A <− distance_w ( tnetA_ikaantyneet , d i r e c t ed=TRUE, gconly=FALSE, subsample=1, seed=NULL
)
d_B <− distance_w ( tnetB_nuoret , d i r e c t ed=TRUE, gconly=FALSE, subsample=1, seed=NULL)
LA_global <− mean(d_A, na . rm=TRUE)
LB_global <− mean(d_B, na . rm=TRUE)
LA_local <− c ( )
f o r ( i in 1 :270) {LA_local [ i ] <− mean(d_A[ i , ] , na . rm=TRUE)}
LB_local <− c ( )
f o r ( i in 1 :270) {LB_local [ i ] <− mean(d_B[ i , ] , na . rm=TRUE)}
#### e r d s r eny i satunnainen g r a a f i ####
f4 <− f unc t i on ( tnetA_or_B){
randomX <− erdos . r eny i . game (270 , nrow ( tnetA_or_B) , type = "gnm" , d i r e c t ed = TRUE,
loops = TRUE)
32
df <− matrix (NA, nrow = 270 , nco l = 270)
f o r ( i in 1 :270) { df [ i , ] <− randomX [ i ] }
tnetdata <− as . tnet ( df )
re turn ( tnetdata )
}
f5 <− f unc t i on ( tnetA_or_B){
randomX <− erdos . r eny i . game (270 , nrow ( tnetA_or_B) , type = "gnm" , d i r e c t ed = TRUE,
loops = TRUE)
df <− matrix (NA, nrow = 270 , nco l = 270)
f o r ( i in 1 :270) { df [ i , ] <− randomX [ i ] }
re turn ( df )
}
random_A <− f 4 ( tnetA_ikaantyneet )
random_B <− f 4 ( tnetB_nuoret )
CA_random <− c luster ing_w (random_A , measure = "am")
CB_random <− c luster ing_w (random_B , measure="am")
d_A_random <− distance_w (random_A , d i r e c t ed=TRUE, gconly=FALSE, subsample=1, seed=NULL)
d_B_random <− distance_w (random_B , d i r e c t ed=TRUE, gconly=FALSE, subsample=1, seed=NULL)
LA_random <− mean(d_A_random, na . rm=TRUE)
LB_random <− mean(d_B_random, na . rm=TRUE)
random_A_mat <− f 5 ( tnetA_ikaantyneet )
random_B_mat <− f 5 ( tnetB_nuoret )
#### p i en i maailma indek s i ####
SMI_A <− (CA / CA_random) / ( LA_global / LA_random)
SMI_B <− (CB / CB_random) / ( LB_global / LB_random)
#### entrop ia ####
A_ikaantyneet1 <− s o r t ( A_ikaantyneet )
B_nuoret1 <− s o r t (B_nuoret )
f6 <− f unc t i on ( data_sorted ) { ## counts the t o t a l s
t o t a l s <− data . frame ( )
m=1
n=0
f o r ( j in 1 :270) {
m=m+n
n=0
f o r ( i in 1 : nrow ( data_sorted ) ) {
{ i f ( data_sorted [ i ,1]==data_sorted [m, 1 ] ) {n=n+1}}
}
t o t a l s [ j , 1 ] = data_sorted [m, 1 ]
t o t a l s [ j , 2 ] = n
}
t o t a l s <− s o r t ( t o t a l s )
re turn ( t o t a l s )
}
f7 <− f unc t i on ( data_sorted , t o t a l s ) {
data3 <− matrix (NA, nrow = nrow ( data_sorted ) , nco l = 5)
colnames ( data3 ) <− c (" arsykesana " , "kohdesana " , " count " , " tota l_for_arsykesana " , "
probs ")
data3 <− as . data . frame ( data3 )
m = 1
t = m + t o t a l s [ 1 , 2 ] − 1
k = 1
f o r ( j in 1 :269) {
f r <− count ( data_sorted [m: t , 2 ] )
data3 [ k : ( k+nrow ( f r )−1) , 1 ] <− c ( rep ( t o t a l s [ j , 1 ] , nrow ( f r ) ) )
data3 [ k : ( k+nrow ( f r )−1) , 2 ] <− f r $x
data3 [ k : ( k+nrow ( f r )−1) , 3 ] <− f r $ f r e q
data3 [ k : ( k+nrow ( f r )−1) , 4 ] <− c ( rep ( t o t a l s [ j , 2 ] , nrow ( f r ) ) )
m = m + to t a l s [ j , 2 ]
t = m + t o t a l s [ j +1 ,2] − 1
k = k + nrow ( f r )
}
33
f r <− count ( data_sorted [m: t , 2 ] )
data3 [ k : ( k+nrow ( f r )−1) , 1 ] <− c ( rep ( t o t a l s [ 2 7 0 , 1 ] , nrow ( f r ) ) )
data3 [ k : ( k+nrow ( f r )−1) , 2 ] <− f r $x
data3 [ k : ( k+nrow ( f r )−1) , 3 ] <− f r $ f r e q
data3 [ k : ( k+nrow ( f r )−1) , 4 ] <− c ( rep ( t o t a l s [ 2 7 0 , 2 ] , nrow ( f r ) ) )
data3$count <− as . numeric ( data3$count )
data3$tota l_for_arsykesana <− as . numeric ( data3$tota l_for_arsykesana )
data3$probs <− data3$count / data3$tota l_for_arsykesana
data3$probs <− as . numeric ( data3$probs )
re turn ( na . omit ( data3 ) )
}
A_totals <− f 6 ( A_ikaantyneet1 )
B_totals <− f 6 (B_nuoret1 )
A_3 <− f 7 ( A_ikaantyneet1 , A_totals )
B_3 <− f 7 (B_nuoret1 , B_totals )
f_entropy <− f unc t i on ( data3 , t o t a l s ) {
H <− c ( )
f o r ( j in 1 : nrow ( t o t a l s ) ) {
C <− c ( )
f o r ( i in 1 : nrow ( data3 ) ) {
i f ( data3 [ i , 1 ] == t o t a l s [ j , 1 ] ) {
C[ i ] <− data3 [ i , 5 ]
} }
C <− C [ ! i s . na (C) ]
n = length (C)
h = 0
f o r (k in 1 : n) {
h = h + ( C[ k ] ∗ l og (C[ k ] ) ) / log (n)
}
h = −h
H[ j ] <− h
}
return (H)
}
A_entropy <− f_entropy (A_3, A_totals )
B_entropy <− f_entropy (B_3, B_totals )
## 5 . MANOVA/ANOVA ####################
# 1 = A ( ikaantyneet )
# 0 = B ( nuoret )
#### ANOVA ####
###### tu loa s t e en ke ske i syysmi t ta ####
AABB <− rep ( c (1) , each=270)
degrecent_A_in <− cbind (AABB, degreest rengthcentra l i ty_A_in )
degrecent_A_in <− as . data . frame ( degrecent_A_in )
colnames ( degrecent_A_in ) <− c ("AABB" , "solmu id " , " rsykesana " , " t u l o a s t e " , "
tulovoimakkuus " , "( tu l oa s t e en ) ke ske i syysmi t ta ")
AABB <− rep ( c (0) , each=270)
degrecent_B_in <− cbind (AABB, degrees t rengthcentra l i ty_B_in )
degrecent_B_in <− as . data . frame ( degrecent_B_in )
colnames ( degrecent_B_in ) <− c ("AABB" , "solmu id " , " rsykesana " , " t u l o a s t e " , "
tulovoimakkuus " , "( tu l oa s t e en ) ke ske i syysmi t ta ")
deg r e e s t r eng thc en t r a l i t y_ in <− rbind ( degrecent_A_in , degrecent_B_in )
anova_cent_in <− lm( deg r e e s t r eng thc en t r a l i t y_ in [ , 5 ] ~ degreestrengthcentral i ty_in$AABB )
summary( anova_cent_in )
###### l h t a s t e e n ke ske i syysmi t ta ####
AABB <− rep ( c (1) , each=270)
degrecent_A_out <− cbind (AABB, degreestrengthcentra l i ty_A_out )
degrecent_A_out <− as . data . frame ( degrecent_A_out )
colnames ( degrecent_A_out ) <− c ("AABB" , "solmu id " , " rsykesana " , " t u l o a s t e " , "
tulovoimakkuus " , "( tu l oa s t e en ) ke ske i syysmi t ta ")
AABB <− rep ( c (0) , each=270)
34
degrecent_B_out <− cbind (AABB, degreestrengthcentra l i ty_B_out )
degrecent_B_out <− as . data . frame ( degrecent_B_out )
colnames ( degrecent_B_out ) <− c ("AABB" , "solmu id " , " rsykesana " , " t u l o a s t e " , "
tulovoimakkuus " , "( tu l oa s t e en ) ke ske i syysmi t ta ")
deg r e e s t r eng thcen t ra l i t y_out <− rbind ( degrecent_A_out , degrecent_B_out )
anova_cent_out <− lm( deg r e e s t r eng thcen t ra l i t y_out [ , 5 ] ~
degreestrengthcentral ity_out$AABB )
summary( anova_cent_out )
###### k l u s t e r o i n t i k e r r o i n ja polun pi tuus ####
df_LA <− as . data . frame ( LA_local )
df_CA <− as . data . frame (CA_local )
df_LC_A <− cbind (df_LA , df_CA)
AABB <− rep ( c (1) , each=270)
df_LC_A <− cbind (AABB, df_LC_A)
df_LB <− as . data . frame ( LB_local )
df_CB <− as . data . frame (CB_local )
df_LC_B <− cbind (df_LB , df_CB)
AABB <− rep ( c (0) , each=270)
df_LC_B <− cbind (AABB, df_LC_B)
colnames (df_LC_A) <− c ("AABB" , " l o c a l_sho r t e s t " , " k l u s t e r i n g ")
colnames (df_LC_B) <− c ("AABB" , " l o c a l_sho r t e s t " , " k l u s t e r i n g ")
df_LC <− rbind (df_LC_A, df_LC_B)
######## k l u s t e r o i n t i k e r r o i n
anova_klust <− lm( k l u s t e r i n g ~ AABB, data = df_LC)
summary( anova_klust )
######## polun pi tuus
anova_length <− lm( l o c a l_sho r t e s t ~ AABB, data = df_LC)
summary( anova_length )
###### entrop ia ####
AABB <− rep ( c (1) , each=270)
A_ent <− cbind (AABB, A_entropy )
A_ent <− as . data . frame (A_ent)
colnames (A_ent) <− c ("AABB" , " entropy ")
AABB <− rep ( c (0) , each=270)
B_ent <− cbind (AABB, B_entropy )
B_ent <− as . data . frame (B_ent)
colnames (B_ent) <− c ("AABB" , " entropy ")
AB_entropy <− rbind (A_ent , B_ent)
anova_entropy <− lm( entropy ~ AABB, data = AB_entropy )
summary( anova_entropy )
#### MANOVA ####
all_measures <− cbind ( deg r e e s t r eng thcen t ra l i t y_ in$ ‘ solmu id ‘ , df_LC$AABB,
df_LC$local_shortest , df_LC$klustering , deg r e e s t r eng thcent ra l i t y_ in$ ‘ ( tu l oa s t e en )
keske i syysmit ta ‘ , deg ree s t r engthcent ra l i ty_out$ ‘ ( l h t a s t e e n ) keske i syysmit ta ‘ )
colnames ( al l_measures ) <− c (" solmu_ID" , "AABB" , " shor t e s tpa th " , " k l u s t e r i n g " , "
i n_cen t r a l i t y " , " out_cent ra l i ty ")
al l_measures <− as . data . frame ( al l_measures )
al l_measures [ , 1 ] <− as . numeric ( al l_measures [ , 1 ] )
al l_measures [ , 2 ] <− as . numeric ( al l_measures [ , 2 ] )
al l_measures [ , 3 ] <− as . numeric ( al l_measures [ , 3 ] )
al l_measures [ , 4 ] <− as . numeric ( al l_measures [ , 4 ] )
al l_measures [ , 5 ] <− as . numeric ( al l_measures [ , 5 ] )
al l_measures [ , 6 ] <− as . numeric ( al l_measures [ , 6 ] )
all_manova <− manova( cbind ( shortes tpath , k lu s t e r i ng , in_cent ra l i ty , out_cent ra l i ty ) ~
AABB, data = al l_measures )
all_manova
35
summary( all_manova )
e f f e c t s i z e : : eta_squared ( all_manova )
degrees_manova <− manova( cbind ( in_cent ra l i ty , out_cent ra l i ty ) ~ AABB, data =
al l_measures )
degrees_manova
summary( degrees_manova )
klustlength_manova <− manova( cbind ( shortes tpath , k l u s t e r i n g ) ~ AABB, data = al l_measures
)
klustlength_manova
summary( klustlength_manova )
summary . aov ( all_manova )
## 8 . normaalisuuden t e s t au s ####################
deg r e e s t r eng thc en t r a l i t y_ in [ , 6 ] <− as . numeric ( d eg r e e s t r eng thc en t r a l i t y_ in [ , 6 ] )
deg r e e s t r eng thcen t ra l i t y_out [ , 6 ] <− as . numeric ( deg r e e s t r eng thcen t ra l i t y_out [ , 6 ] )
shap i ro . t e s t ( central ity_A_in )
shap i ro . t e s t ( central ity_B_in )
shap i ro . t e s t ( d eg r e e s t r eng thc en t r a l i t y_ in [ , 6 ] )
shap i ro . t e s t ( centrality_A_out )
shap i ro . t e s t ( centrality_B_out )
shap i ro . t e s t ( deg r e e s t r eng thcen t ra l i t y_out [ , 6 ] )
shap i ro . t e s t ( LA_local )
shap i ro . t e s t ( LB_local )
shap i ro . t e s t ( df_LC$local_shortest )
shap i ro . t e s t (CA_local )
shap i ro . t e s t ( CB_local )
shap i ro . t e s t ( df_LC$kluster ing )
#### r e s i d u a a l i t ####
deg r e e s t r eng thc en t r a l i t y_ in [ , 6 ] <− as . numeric ( d eg r e e s t r eng thc en t r a l i t y_ in [ , 6 ] )
deg r e e s t r eng thcen t ra l i t y_out [ , 6 ] <− as . numeric ( deg r e e s t r eng thcen t ra l i t y_out [ , 6 ] )
qqnorm ( ( deg r e e s t r eng thc en t r a l i t y_ in [ , 6 ] − mean( deg r e e s t r eng thc en t r a l i t y_ in [ , 6 ] ) ) / sd (
deg r e e s t r eng thc en t r a l i t y_ in [ , 6 ] ) , main = " tu l oa s t e en ke ske i syysmi t ta ")
ab l i n e (0 , 1 )
ggqqplot ( d eg r e e s t r eng thc en t r a l i t y_ in [ , 6 ] , main = " tu l oa s t e en ke ske i syysmi t ta ")
qqnorm ( ( deg r e e s t r eng thcen t ra l i t y_out [ , 6 ] − mean( deg r e e s t r eng thcen t ra l i t y_out [ , 6 ] ) ) / sd (
deg r e e s t r eng thcen t ra l i t y_out [ , 6 ] ) , main= " l h t a s t e e n ke ske i syysmi t ta ")
ab l i n e (0 , 1 )
ggqqplot ( deg r e e s t r eng thcen t ra l i t y_out [ , 6 ] , main= " l h t a s t e e n ke ske i syysmi t ta ")
qqnorm ( ( df_LC$local_shortest − mean( df_LC$local_shortest ) ) / sd ( df_LC$local_shortest ) ,
main="polun pi tuus ")
ab l i n e (0 , 1 )
ggqqplot ( df_LC$local_shortest , main="polun pi tuus ")
qqnorm ( ( df_LC$kluster ing − mean( df_LC$kluster ing ) ) / sd ( df_LC$kluster ing ) , main="
k l u s t e r o i n t i k e r r o i n ")
ab l i n e (0 , 1 )
ggqqplot ( df_LC$klustering , main="k l u s t e r o i n t i k e r r o i n ")
qqnorm ( ( AB_entropy$entropy −
mean(AB_entropy$entropy ) ) /
sd (AB_entropy$entropy ) ,
main = " ent rop ia ")
ab l i n e (0 , 1 )
ggqqplot ( AB_entropy$entropy ,
main = " ent rop ia ")
## 9 . e p p a r am e t r i s e t t e s t i t ####################
# tu loa s t e en ke ske i syysmi t ta
deg r e e s t r eng thc en t r a l i t y_ in [ , 5 ] <− as . numeric ( d eg r e e s t r eng thc en t r a l i t y_ in [ , 5 ] )
wi lcox . t e s t ( d eg r e e s t r eng thc en t r a l i t y_ in [ , 5 ] ~ degreestrengthcentral i ty_in$AABB )
# l h t a s t e e n ke ske i syysmi t ta
deg r e e s t r eng thcen t ra l i t y_out [ , 5 ] <− as . numeric ( deg r e e s t r eng thcen t ra l i t y_out [ , 5 ] )
36
wi lcox . t e s t ( deg r e e s t r eng thcen t ra l i t y_out [ , 5 ] ~ degreestrengthcentral ity_out$AABB )
# k l u s t e r o i n t i k e r r o i n
wi lcox . t e s t ( k l u s t e r i n g ~ AABB, data = df_LC) # p = 0.2734
# polun pi tuus
wi lcox . t e s t ( l o c a l_sho r t e s t ~ AABB, data = df_LC)
# entrop ia
wi lcox . t e s t ( entropy ~ AABB, data = AB_entropy )
37
Liite B Ärsykesanat
ahdas ainainen ajatella ajattelu ajatus
alkuperäinen anoa anomus antaa apu
arvella arvokas asia aurinko auto
avara ehta ehto elämä ennakoida
epäillä epävarma erilainen erinomainen etana
etu fakta haastava halu haluta
hammas harmaa hauska helppo hymy
hyvä ilmapallo iloita iso jääkiekko
järkevä järvi juosta juttu kaatua
kakku kalastus kallio kasvaa katsoa
kaunis kehittää keltainen kerätä kevyt
kieriä kiivetä kirjava kirjoittaa kiva
kivi koira korjata korkea kova
kuolema kuoppa kuvitella kylmä kynä
kynnys kätellä käyttäytyä kääntää kömpelö
laahustaa lahja laiha laki lapio
lapsi lasi lehti lihava liikkua
litteä loikata luja lukea lukita
lumi luonne luotettava lyhyt lämmin
läpinäkyvä maalata mahdollinen mahtava maine
menestyä meri mieli mielipide mieluinen
miettiä musta mäki nainen nauraa
nauttia negatiivinen nopea nostaa nousta
nöyrä ohjata ohje ohut oikeudenmukainen
38
oiva oivaltaa olla omena ongelma
onnellinen onnistua ontto opetella osapuoli
osata ostaa outo paha pakko
pallo paperi parantaa pelata pieni
pimeä pohtia politiikka pomppia posti
pudota puhdas puhua puolustaa puu
pyöreä pyörä pystyvä pystyä pää
päätös rakentaa raskas ratkaista ratkaisu
rehellinen rehti remontoida riittää rikkoutua
rohjeta rohkeus ruoka ruskea rutistaa
saavuttamaton salaisuus sateenkaari sattua satuttaa
seikkaperäinen selvittää selvitä selviytyä sileä
sininen soittaa sopimus surullinen suunnitella
suuri syventyvä syödä sääntö särkyä
tahaton taitaa taitava taito taivas
tajuta talo talvi tanssia tapahtua
tarpeellinen tarve tasapuolinen tavata tehdä
tehtävä teko tie tieto tietää
tilanne tippua tiputtaa tiukka todellinen
toimia toive tulevaisuus tunne tuntematon
tutkia tutustua tuuli tuulla tyyny
työllistää tärkeä täysi upea urheilla
usko uskoa uskomaton uusia vaara
vaate vaatia vaatimaton vaatimus vaativa
vahva vaikuttava valhe valkoinen valmis
valmistautua valoisa vanha varma vasen
veitsi vene vesi vihreä vilpitön
vinkki virhe voida voimakas vuori
väärä välttämätön värittää yletä ylevä
yllätys ymmärtää yrittää ystävällinen äly
Taulukko 4: Sana-assosiaatiotutkimuksessa käytetyt ärsykesanat
39
Liite C Residuaalit
Lähtöasteen keskeisyysmitan residuaalit.
Tuloasteen keskeisyysmitan residuaalit.
40
Klusterointikertoimen residuaalit.
Polun pituuden residuaalit.
41
Entropian residuaalit.
42