naaraat < read.table('http://cs.joensuu.fi/pages/whamalai/dm13/naaraatvalikoitu.csv', head=t, sep=',')



Samankaltaiset tiedostot
HAVAITUT JA ODOTETUT FREKVENSSIT

vkp 4*(1+0)/(32-3)-1= vkp 2*(1+0)/(32-3)=

Sisällysluettelo ESIPUHE 1. PAINOKSEEN... 3 ESIPUHE 2. PAINOKSEEN... 3 SISÄLLYSLUETTELO... 4

TUTKIMUSAINEISTON KVANTITATIIVINEN ANALYYSI LTKY012. Timo Törmäkangas

4 Riippuvuus 1. Esimerkki 4. Korrelaation laskeminen SPSS-ohjelmalla rajatusta aineistosta

Korrelaatiokerroin. Hanna Heikkinen. Matemaattisten tieteiden laitos. 23. toukokuuta 2012

Vapaus. Määritelmä. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee:

I Data ja sen esiprosessointi

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

2.8. Kannanvaihto R n :ssä

1. Työpaikan työntekijöistä laaditussa taulukossa oli mm. seuraavat rivit ja sarakkeet

Determinantti. Määritelmä

Mat Tilastollisen analyysin perusteet, kevät 2007

Matemaattinen Analyysi, k2012, L1

Mat Tilastollisen analyysin perusteet, kevät 2007

Tilastollisen analyysin perusteet Luento 9: Moniulotteinen lineaarinen. regressio

Viherseinien efekti Tilastoanalyysi

YLEISKUVA - Kysymykset

Tekoäly ja koneoppiminen metsävaratiedon apuna

TA7, Ekonometrian johdantokurssi HARJOITUS 4 1 RATKAISUEHDOTUKSET

7 Osa 7: Pidempiä esimerkkejä R:n käytöstä

Vektoreiden virittämä aliavaruus

Tilastollisen analyysin perusteet Luento 11: Epäparametrinen vastine ANOVAlle

Regressioanalyysi. Vilkkumaa / Kuusinen 1

Määrällisen aineiston esittämistapoja. Aki Taanila

Lineaarialgebra ja matriisilaskenta II Syksy 2009 Laskuharjoitus 1 ( ) Ratkaisuehdotuksia Vesa Ala-Mattila

Regressioanalyysi. Kuusinen/Heliövaara 1

Lineaarialgebra, kertausta aiheita

Aki Taanila YHDEN SELITTÄJÄN REGRESSIO

1.Työpaikan työntekijöistä laaditussa taulukossa oli mm. seuraavat rivit ja sarakkeet

Havaitsevan tähtitieteen peruskurssi I. Datan käsittely. Jyri Lehtinen. kevät Helsingin yliopisto, Fysiikan laitos

Lineaarikuvauksen R n R m matriisi

S Laskennallinen Neurotiede

MS-A0501 Todennäköisyyslaskennan ja tilastotieteen peruskurssi. Viikko 3. Kaksiulotteiset satunnaismuuttujat

Keskipisteen lisääminen 2 k -faktorikokeeseen (ks. Montgomery 9-6)

Metsämuuronen: Tilastollisen kuvauksen perusteet ESIPUHE... 4 SISÄLLYSLUETTELO METODOLOGIAN PERUSTEIDEN KERTAUSTA AINEISTO...

Yhden selittäjän lineaarinen regressiomalli (jatkoa) Ensi viikolla ei pidetä luentoa eikä harjoituksia. Heliövaara 1

Milloin A diagonalisoituva?

TUTKIMUSOPAS. SPSS-opas

xi = yi = 586 Korrelaatiokerroin r: SS xy = x i y i ( x i ) ( y i )/n = SS xx = x 2 i ( x i ) 2 /n =

Ratkaisuehdotukset LH 3 / alkuvko 45

Moniulotteisia todennäköisyysjakaumia. Moniulotteisia todennäköisyysjakaumia. Moniulotteisia todennäköisyysjakaumia: Mitä opimme?

VALTIOTIETEELLINEN TIEDEKUNTA TILASTOTIETEEN VALINTAKOE Ratkaisut ja arvostelu < X 170

Tässä dokumentissa on ensimmäisten harjoitusten malliratkaisut MATLABskripteinä. Voit kokeilla itse niiden ajamista ja toimintaa MATLABissa.

TILASTOLLISTEN MENETELMIEN KIRJO JA KÄYTTÖ LÄÄKETIETEEN TUTKIMUSJULKAISUISSA. Pentti Nieminen

MTTTP1, luento KERTAUSTA

Talousmatematiikan perusteet

Matriisi-vektori-kertolasku, lineaariset yhtälöryhmät

MTTTP1, luento KERTAUSTA

MTTTP1, luento KERTAUSTA

Matematiikan tukikurssi, kurssikerta 3

TESTINVALINTATEHTÄVIEN VASTAUKSET

Lineaarialgebra ja matriisilaskenta I

Determinantti. Määritelmä

Sovellettu todennäköisyyslaskenta B

Lineaarialgebra ja matriisilaskenta I

Pistetulo eli skalaaritulo

Johdatus tekoälyn taustalla olevaan matematiikkaan

Laskennallinen data-analyysi II

Tilastollinen vastepintamallinnus: kokeiden suunnittelu, regressiomallin analyysi, ja vasteen optimointi. Esimerkit laskettu JMP:llä

Demo 1: Simplex-menetelmä

MATHM Hypermedian jatko-opintoseminaari

4.3. Matemaattinen induktio

Sovellusohjelmointi Matlab-ympäristössä: Vertaisverkon koneiden klusterointi

Osittaistuenta Gaussin algoritmissa: Etsitään 1. sarakkeen itseisarvoltaan suurin alkio ja vaihdetaan tämä tukialkioiksi (eli ko. rivi 1. riviksi).

Moniulotteisia todennäköisyysjakaumia

Ominaisarvo ja ominaisvektori

Ilkka Mellin Todennäköisyyslaskenta Osa 3: Todennäköisyysjakaumia Moniulotteisia todennäköisyysjakaumia

Kandidaatintutkielman aineistonhankinta ja analyysi

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Tarkista vielä ennen analysoinnin aloittamista seuraavat seikat:

Rakenteiset tietotyypit Moniulotteiset taulukot

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Todennäköisyyslaskennan ja tilastotieteen peruskurssi Esimerkkikokoelma 3

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

1 Matriisit ja lineaariset yhtälöryhmät

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

Johdatus todennäköisyyslaskentaan Moniulotteisia todennäköisyysjakaumia. TKK (c) Ilkka Mellin (2005) 1

Tehtävä 1. (a) JYVÄSKYLÄN YLIOPISTO Matematiikan ja tilastotieteen laitos Parametrittomat ja robustit menetelmät Harjoitukset 7, vastaukset

5 Lineaariset yhtälöryhmät

Matematiikka B2 - TUDI

SISÄLTÖ 1 TILASTOJEN KÄYTTÖ...7 MITÄ TILASTOTIEDE ON?

Lehmän poikimiskäyttäytymistä indikoivien piirteideneristys. Tiedonlouhinta 2013 Sari Kajava, Ville Kumpulainen, Nina Hänninen

Sukupuoli Mies Nainen Yht. Suhtautuminen kannattaa uudistukseen ei kannata Yht

805306A Johdatus monimuuttujamenetelmiin, 5 op

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Mat Lineaarinen ohjelmointi

BIOSTATISTIIKKAA ESIMERKKIEN AVULLA. Kurssimoniste (luku 4) Janne Pitkäniemi. Helsingin Yliopisto Kansanterveystieteen laitos

8 KANNAT JA ORTOGONAALISUUS. 8.1 Lineaarinen riippumattomuus. Vaasan yliopiston julkaisuja 151

MS-C1340 Lineaarialgebra ja

TUTKIMUSAINEISTON ANALYYSI. LTKY012 Timo Törmäkangas

4.6 Matriisin kääntäminen rivioperaatioilla

Tässä harjoituksessa käydään läpi R-ohjelman käyttöä esimerkkidatan avulla. eli matriisissa on 200 riviä (havainnot) ja 7 saraketta (mittaus-arvot)

Ennakkotehtävän ratkaisu

Matriisilaskenta (TFM) MS-A0001 Hakula/Vuojamo Ratkaisut, Viikko 47, 2017

Insinöörimatematiikka D, laskuharjoituksien esimerkkiratkaisut

Tilastollisen analyysin perusteet Luento 6: Korrelaatio ja riippuvuus tilastotieteessä

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Transkriptio:

naaraat < read.table('http://cs.joensuu.fi/pages/whamalai/dm13/naaraatvalikoitu.csv', head=t, sep=',') printf < function(...) { print(sprintf(...)) c_by_method < NULL # Listataan ne muuttujaparit, joilla jokin korrelaatio on itseisarvoltaan >= 0.4. for (m in c('pearson', 'kendall', 'spearman')) { printf('method: %s', m) printf(' ') c < cor(naaraat, method = m) c_by_method[[m]] < as.matrix(c) for (i in 1:(length(c[1,]) 1)) { for (j in ((i+1):length(c[,1]))) { if(abs(c[i,j]) >= 0.4) { printf("%s vs. %s: %f", names(c[1,])[i], names(c[,1])[j], c[i,j]) printf('') # Koostetaan muuttujaparikohtaisten korrelaatiokertoimien eroista MSE:t, jolloin erikoisimmat poikkeamat on helppo löytää. c_avg < as.matrix( c_by_method[['kendall']] + c_by_method[['pearson']] + c_by_method[['spearman']] ) / 3 mse < ((c_by_method[['kendall']] c_avg) ** 2 + (c_by_method[['pearson']] c_avg) ** 2 + (c_by_method[['spearman']] c_avg) ** 2) / 3 mse > 0.34 * max(mse) # Toisistaan poikkeavimpia korrelaatiokertoimia saavat X4 X5, X4 X6, X4 X8, X5 X6 ja X6 X8. for(i in list(c(4,5), c(4,6), c(4,8), c(5,6), c(6,8))) { printf('%s %s', names(c[1,])[i[1]], names(c[,1])[i[2]]) for(m in c('pearson', 'kendall', 'spearman')) { printf(' %s: %f', m, c_by_method[[m]][i[1],i[2]]) # Näille muuttujapareille yhteistä on se, että Pearsonin korrelaatiokerroin on suurin, kun taas Kendallin ja Spearmanin kertoimet ovat samalla tasolla. # Tähän eräs ilmeinen syy on se, että Pearsonin korrelaatiokerroin on herkkä outliereille. # Jännimmältä vaikuttavat arvojen perusteella parit X4 X8 ja X4 X6 (kendall ja spearman negatiivisia), piirrelläänpä ainakin ne.. plot(naaraat[,4], naaraat[,8]) #Yksi outlier. plot(naaraat[,4], naaraat[,6]) #Näemmä pari selvää outlieria. plot(naaraat[,4], naaraat[,6]) #Näemmä pari selvää outlieria. plot(naaraat[,5], naaraat[,6]) #Muutama outlier. plot(naaraat[,6], naaraat[,8]) #Pari outlieriä.

#b kohta # Valitaan jokin sopiva raja arvo, joka tuottaa riittävästi mielenkiintoisia pareja. sum(mse < 0.0004 * max(mse)) # = 25 (diagonaalialkiot + 3 muuttujaparia) mse < 0.0004 * max(mse) # Tarkasteltavia pareja 1 5, 13 19 ja 14 18. plot(naaraat[,1], naaraat[,5]) plot(naaraat[,13], naaraat[,19]) plot(naaraat[,14], naaraat[,18]) # Tarkasteltujen muuttujien nimet: names(naaraat)[c(1,5,13,14,18,19)] #1 ja 19 eivät ole edes järjestysmuuttujia. # Näissä muuttujapareissa toinen muuttujista on selvästi luokitteleva ja toinen jatkuvaluonteinen. c_by_method[['pearson']][mse < 0.004 * max(mse)] #Pearsonin korrelaatiokertoimet niiden muuttujaparien osalta, joissa eri korrelaatiokerrointyypit eivät liiemmin poikkea toisistaan. # Havaitaan siis, että juuri näissä muuttujapareissa ei ole liiemmin korrelaatiotakaan (1.000 korrelaatiot ovat diagonaalialkiolta eli muuttujan korrelaatio itsensä kanssa, joka ei luonnollisestikaan meitä kiinnosta). ################################################################################ [1] "Method: pearson" [1] " " [1] "X1.vaika X13.batratio: 0.435682" [1] "X2.paino X7.thymusratio: 0.672252" [1] "X2.paino X9.neitsyt: 0.631371" [1] "X2.paino X10.rasitus: 0.538190" [1] "X2.paino X15.hanta: 0.840479" [1] "X2.paino X17.vart: 0.860995" [1] "X2.paino X18.painoind: 0.978825" [1] "X4.maksaratio X5.pernaratio: 0.544861" [1] "X4.maksaratio X6.sydanratio: 0.438972" [1] "X4.maksaratio X8.umpisratio: 0.583693" [1] "X5.pernaratio X6.sydanratio: 0.413823" [1] "X5.pernaratio X7.thymusratio: 0.461345" [1] "X6.sydanratio X7.thymusratio: 0.419244" [1] "X6.sydanratio X18.painoind: 0.415997" [1] "X7.thymusratio X9.neitsyt: 0.498809" [1] "X7.thymusratio X13.batratio: 0.466414" [1] "X7.thymusratio X15.hanta: 0.584725" [1] "X7.thymusratio X17.vart: 0.640737" [1] "X7.thymusratio X18.painoind: 0.659174" [1] "X9.neitsyt X10.rasitus: 0.730178" [1] "X9.neitsyt X15.hanta: 0.588542"

[1] "X9.neitsyt X17.vart: 0.583704" [1] "X9.neitsyt X18.painoind: 0.625617" [1] "X10.rasitus X15.hanta: 0.463264" [1] "X10.rasitus X17.vart: 0.449783" [1] "X10.rasitus X18.painoind: 0.542028" [1] "X11.gonratio X12.uusrasvaratio: 0.783236" [1] "X15.hanta X17.vart: 0.837446" [1] "X15.hanta X18.painoind: 0.819489" [1] "X17.vart X18.painoind: 0.773764" [1] "" [1] "Method: kendall" [1] " " [1] "X2.paino X7.thymusratio: 0.465082" [1] "X2.paino X9.neitsyt: 0.507948" [1] "X2.paino X10.rasitus: 0.440744" [1] "X2.paino X15.hanta: 0.659591" [1] "X2.paino X17.vart: 0.683527" [1] "X2.paino X18.painoind: 0.877423" [1] "X7.thymusratio X9.neitsyt: 0.435545" [1] "X7.thymusratio X15.hanta: 0.414413" [1] "X7.thymusratio X17.vart: 0.438647" [1] "X7.thymusratio X18.painoind: 0.446665" [1] "X9.neitsyt X10.rasitus: 0.720089" [1] "X9.neitsyt X15.hanta: 0.465024" [1] "X9.neitsyt X17.vart: 0.455947" [1] "X9.neitsyt X18.painoind: 0.511628" [1] "X10.rasitus X18.painoind: 0.452043" [1] "X11.gonratio X12.uusrasvaratio: 0.701713" [1] "X15.hanta X17.vart: 0.585338" [1] "X15.hanta X18.painoind: 0.622890" [1] "X17.vart X18.painoind: 0.555258" [1] "" [1] "Method: spearman" [1] " " [1] "X1.vaika X13.batratio: 0.431127" [1] "X2.paino X7.thymusratio: 0.652295" [1] "X2.paino X9.neitsyt: 0.620144" [1] "X2.paino X10.rasitus: 0.558903" [1] "X2.paino X15.hanta: 0.825739" [1] "X2.paino X17.vart: 0.838653" [1] "X2.paino X18.painoind: 0.977993" [1] "X6.sydanratio X10.rasitus: 0.403958" [1] "X6.sydanratio X18.painoind: 0.412165" [1] "X7.thymusratio X9.neitsyt: 0.532280" [1] "X7.thymusratio X10.rasitus: 0.406026" [1] "X7.thymusratio X15.hanta: 0.577959"

[1] "X7.thymusratio X17.vart: 0.604705" [1] "X7.thymusratio X18.painoind: 0.628491" [1] "X9.neitsyt X10.rasitus: 0.760027" [1] "X9.neitsyt X15.hanta: 0.559221" [1] "X9.neitsyt X17.vart: 0.541990" [1] "X9.neitsyt X18.painoind: 0.625139" [1] "X10.rasitus X15.hanta: 0.464712" [1] "X10.rasitus X17.vart: 0.443642" [1] "X10.rasitus X18.painoind: 0.572761" [1] "X11.gonratio X12.uusrasvaratio: 0.811415" [1] "X15.hanta X17.vart: 0.741243" [1] "X15.hanta X18.painoind: 0.796359" [1] "X17.vart X18.painoind: 0.720242" poikkeavuudet: [1] "X4.maksaratio X5.pernaratio" [1] " pearson: 0.544861" [1] " kendall: 0.178944" [1] " spearman: 0.261405" [1] "X4.maksaratio X6.sydanratio" [1] " pearson: 0.438972" [1] " kendall: 0.070826" [1] " spearman: 0.103988" [1] "X4.maksaratio X8.umpisratio" [1] " pearson: 0.583693" [1] " kendall: 0.176357" [1] " spearman: 0.251261" [1] "X5.pernaratio X6.sydanratio" [1] " pearson: 0.413823" [1] " kendall: 0.060604" [1] " spearman: 0.082895" [1] "X6.sydanratio X8.umpisratio" [1] " pearson: 0.365682" [1] " kendall: 0.026679" [1] " spearman: 0.039949" samankaltaisuudet: > c_by_method[['pearson']][mse < 0.004 * max(mse)] #Pearsonin korrelaatiokertoimet niiden muuttujaparien osalta, joissa eri korrelaatiokerrointyypit eivã t liiemmin poikkea toisistaan.

[1] 1.000000000 0.054850322 0.023685166 0.265659365 0.145417144 0.162898471 [7] 0.003797779 0.075237650 0.054850322 1.000000000 0.006087124 1.000000000 [13] 0.105056526 0.042104693 1.000000000 0.107813033 0.053916229 0.082301968 [19] 0.004186576 0.023685166 1.000000000 0.126852705 1.000000000 1.000000000 [25] 0.051479466 1.000000000 0.081114132 0.265659365 0.107813033 1.000000000 [31] 0.016616646 0.087808834 0.052251551 0.145417144 1.000000000 0.047357631 [37] 0.075434687 0.023343412 1.000000000 0.016616646 0.047357631 1.000000000 [43] 0.051309978 0.034490353 1.000000000 0.058349487 0.032488310 0.009027809 [49] 0.162898471 0.006087124 0.105056526 0.126852705 0.051479466 0.081114132 [55] 0.087808834 0.075434687 0.051309978 0.058349487 1.000000000 0.011444231 [61] 0.086977567 0.036881555 0.264948964 0.053916229 0.011444231 1.000000000 [67] 0.042104693 0.082301968 0.052251551 0.023343412 0.034490353 0.032488310 [73] 1.000000000 0.002825088 0.003797779 0.004186576 0.086977567 1.000000000 [79] 0.075237650 0.036881555 0.002825088 1.000000000 0.009027809 0.264948964 [85] 1.000000000 #muuttujaparit 1 ja 5 sekä 2 ja 8

Siis Correctly Classified Instances arvot ovat a: 78.1955 b(oletus): 73.3083 b(0): 78.9474 b(15): 76.6917 c: 74.812 d: 81.5789 e: 78.1955 f(naiivi): 57.8947 f(naiivi ): 75.9398 f(bayesnet): 68.0451 f(bayesnet ): 74.812 = datasta poistettu painot ja ratiot hantaa ja sydanta lukuunottamatta Huomioita Bayes luokittelija vaikuttaa pärjäävän paremmin useamman muuttujan ollessa jatkuvaluonteisia. Toisaalta Bayes luokittelija hyötyy (valistuneella arvauksella) siistitystä datasta. J48 suoriutuu likimain yhtä hyvin molemmissa tapauksissa. Luulisin jollain valistuneella arvauksella / peukalosäännöllä yhden piilotason neuroverkon kykenevään jopa parempaankin tulokseen kuin ilman piilotasoa. Heikoimmat tulokset diskretoidulla datalla ajettu naiivi Bayes sekä BayesNet. Paras tulos numeerista dataa vasten ajetulla BayesNetillä. Muuten tulokset ovat melko sievästi 70 80 %:n tuntumassa.

$ # Ensinnäkin muutama perustesti. Ensin kaksimuuttujainen data, jossa karteesisen tulon {0,1,2..63 x {0,1,2..63 kaikki alkiot. $ java cp cls Mutuali summary_testi_tas.csv 1 2 mi=2.220446049250313e 16 $ # Kaksimuuttujainen data, jossa laskeva suora (0,0), ( 1,1),.., ( 255,255). $ java cp cls Mutuali summary_testi_ lin.csv 1 2 mi=0.4549558887413734 $ cat summary_testi_ lin.csv #testi_ lin.csv 1, 255.0,0.0,3 2,0.0,255.0,4 $ nano summary_testi_ lin.csv $ cat summary_testi_ lin.csv #testi_ lin.csv 1, 255.0,0.0,4 2,0.0,255.0,4 $ java cp cls Mutuali summary_testi_ lin.csv 1 2 mi=1.0 $ # Vaikuttaisi ilmeisesti toimivan. $ # Nappasinpa kokeiltavaksi hieman kiihtyvyysdataa omasta harjoitustyöaiheesta. Ensimmäinen muuttuja (aika) on luonnollisesti tiputettu pois. $ java cp cls Mutuali summary_implant_axis.csv 3 4 mi=0.38659727185899917 2 3 mi=0.29756426418394666 2 4 mi=0.2477377080995442 $ # Siis mitä ilmeisemmin muuttujien välillä on hieman korrelaatiota, kuten olettaa saattaa. Vähiten keskenään korreloivat x ja z muuttuja.

lehma < read.table('http://cs.joensuu.fi/pages/whamalai/dm13/lehmakiiht.csv', head=t, sep=',') lehma$c < factor(lehma$c) koulutus < 1:1000 #valitaan tuhat riviä koulutusdataksi S < cov(lehma[koulutus, 6]) #kovarianssimatriisi talteen #olettamalla C järjestysmuuttujaksi voidaan lähteä kokeilemaan lineaariregressiomallia y < as.matrix(c(lehma[koulutus,6])) #selitettävä(t) muuttuja(t) x < as.matrix(cbind((rep(1, length(lehma[koulutus,6]))), lehma[koulutus, 6])) #selittävät muuttujat xtemp < solve(t(x) %*% x) %*% t(x) #hirvittävä pns häkkyrä, jollaisia laskettiin liniksessä #näillä voi vähän tutkia, mitä on saatu nyt aikaan #head(xtemp) #str(xtemp) #str(y) #mjaa, kai tarkoitus oli käyttää xtempiä, mutta käyhän se näinkin (regressiomallin mukaiset betakertoimet) betamat < solve(t(x) %*% x) %*% t(x) %*% y #tutkailuja #str(x) #str(y) #PCA: kovarianssimatriisin ominaisarvoja/ vektoreita tarvitaan PCA:han eigs < eigen(s) cumsum(eigs$values / sum(eigs$values)) #pari ekaa pääkomponenttia tuo esille valtaosan eroista #yksittäisten koordinaattien plottailut (vaihda # v tuosta vertailtavia sarakepareja, nykyisellään siis 2. ja 5. sarake luetaan x ja y koordinaateiksi) plot(lehma[koulutus,c(5,2)], col = c('blue', 'red', 'green')[lehma$c]) #PCA: vertailun vuoksi parin ekan pääkomponentin mukaan sovitellut havainnot plot(as.matrix(lehma[koulutus, 6]) %*% eigs$vectors[,1:2], col = c('blue', 'red', 'green')[lehma$c]) #näissähän alkaisi olla jo mahdollisuus karkeasti erotella toiminnot toisistaan #testataanpa jollakin yksittäisellä havainnolla as.matrix(cbind(1, lehma[1444, 6])) %*% betamat # ~1.086 lehma[1444,6] # = 1 #testataanpa loppudatalla kokonaisuudessaan (indeksoinnissa negatiivinen arvo siis meinaa "jätä pois", eli esim. lehma[ koulutus,] valitsee rivit, joita ei käytetty koulutukseen) arvatut < as.matrix(cbind(1, lehma[ koulutus, 6])) %*% betamat oikein < sum((round(arvatut) c(lehma[ koulutus,6])) == 0)

testilehmia < length(lehma[ koulutus,1]) #arvausprosentti: oikein / testilehmia #siis 82,26 % #################### PCA ###################### #huom! eigs laskettu jo edellä y < as.matrix(c(lehma[koulutus,6])) #selitettävä(t) muuttuja(t) x < as.matrix(cbind((rep(1, length(lehma[koulutus,6]))), as.matrix(lehma[koulutus, 6]) %*% eigs$vectors)) #selittävät muuttujat, tällä kertaa muunnettu pääkomponenttien mukaan betamat < solve(t(x) %*% x) %*% t(x) %*% y #testataanpa jollakin yksittäisellä havainnolla as.matrix(cbind(1, as.matrix(lehma[1444, 6]) %*% eigs$vectors)) %*% betamat # edelleen ~1.086 lehma[1444,6] # = 1 #testataanpa koko loppudatalla arvatut < as.matrix(cbind(1, as.matrix(lehma[ koulutus, 6]) %*% eigs$vectors)) %*% betamat oikein < sum((round(arvatut) c(lehma[ koulutus,6])) == 0) testilehmia < length(lehma[ koulutus,1]) #arvausprosentti: oikein / testilehmia #edelleen 82,26 % #################### PCA (muuttujia karsittu) ###################### #huom! eigs laskettu jo edellä y < as.matrix(c(lehma[koulutus,6])) #selitettävä(t) muuttuja(t) x < as.matrix(cbind((rep(1, length(lehma[koulutus,6]))), as.matrix(lehma[koulutus, 6]) %*% eigs$vectors[,1:2])) #selittävät muuttujat, tällä kertaa muunnettu pääkomponenttien mukaan betamat < solve(t(x) %*% x) %*% t(x) %*% y #testataanpa jollakin yksittäisellä havainnolla as.matrix(cbind(1, as.matrix(lehma[1444, 6]) %*% eigs$vectors[,1:2])) %*% betamat # nyt ~1.1342 lehma[1444,6] # = 1 #testataanpa koko loppudatalla arvatut < as.matrix(cbind(1, as.matrix(lehma[ koulutus, 6]) %*% eigs$vectors[,1:2])) %*% betamat oikein < sum((round(arvatut) c(lehma[ koulutus,6])) == 0) testilehmia < length(lehma[ koulutus,1])

#arvausprosentti: oikein / testilehmia #nyt 79,44 % (ennen 82,26 %) #siis typistämällä tarkasteltavia muuttujia sopivalla muunnoksella (PCA) viidestä kahteen kadotetaan tässä tapauksessa verrattain vähän luokittelutarkkuuden suhteen (alle 3 %:n ero) #parempia luokittelutuloksia ei luonnollisesti saada, mutta "luokittelutarkkuus / muuttujien lkm" lukuarvon kasvu on ainakin vaikuttava #pari esimerkkiplottausta (1 4, 5 2) muuttujapareista #PCA ja virheellisesti luokitellut havainnot