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 Cw D (i) (degree centrality measu- re) on solmun asteen ja voimakkuuden tulo, jota säädetään viritysparamet- rilla: Cw D (i) = k 1 i  s i ; 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 Cw Dout(i) = (k out i ) 1  (souti ) ja Cw Din(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 Cw D (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 +   + xhl1j); jossa h1, ..., hl1 ovat välisolmuja solmun i ja j välisillä poluilla ja xih1 , ..., xhl1j 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 whl1j ); jossa h1, ..., hl1 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 whl1j ); 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 (Cw Dout) 30.03 0.61 [28.84, 31.22] 33.37 0.68 [32.04, 34.69] tuloasteen keskeisyysmitta (Cw Din) 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