Luku 5 Taulukot ja kuvat
Tähän taulukoita ja kuvia, esimerkkiaineistoilla.
Kirjallisuutta on myös (Roux ja Rouanet 2004), ja (Greenacre ja Hastie 1987) esittelee geometrisen tulkinnan peruskäsitteet yksinkertaisen kahden luokittelumuuttujan korrespondenssianalyysin avaulla. Mitenköhän skandit toimivat lähteissä, bib-tiedostossa on niitä myös escape-muodossa (katso esim. (Åhlgren 1994), kritiikkiä on esittänyt (Ahlgren 1994))
Viitteet saa tulostusasetuksilla yhdelle sivulle, oletuksena on viitteiden esittäminen jokaisen sivun alareunassa.
5.1 Taulukoita
Tästä poistettu koodilohko data_1, ei tarvita jos ca-paketti on ladattu. Ja alaviiva on aikanakin ref-labeleissa kielletty. Koodilohkojen nimissä taitaa olla sallittu?
Taulukot tulostetaan funktiolla knitr::kable(). Taulukko numeroidaan ja se saa automaattisesti labelin etutunnisteella ‘tab’, ja siihen liitetään chunk-label (esim alla tab:smoketable1).
Tämä koodipätkä ei antaa yhden kappaleen esikatselussa virheilmoituksen, “smoke”-dataa ei löydy.
none | light | medium | heavy | |
---|---|---|---|---|
SM | 4 | 2 | 3 | 2 |
JM | 4 | 3 | 7 | 4 |
SE | 25 | 10 | 12 | 4 |
JE | 18 | 24 | 33 | 13 |
SC | 10 | 6 | 7 | 2 |
Taulukossa 5.1 on kahden luokittelumuuttujan keinotekoinen esimerkkiaineisto tupakonnin määrästä henkilöstöryhmittäin (SM = senior managemet, JM = junior management, SE ja JE vastaavasti ryhmälle employee, SC = secretary).
Useampi taulukko saadaan taulukkoympäristöön (table environment) yhdistämällä data-objektit listaksi.
# riviprofiilit
smoke.rpro <- smoke / rowSums (smoke)
# keskiarvoprofiili
smoke.avrpro <- colSums(smoke) / sum(smoke)
knitr::kable(
list(smoke.rpro, t(smoke.avrpro) ), digits = 3,
caption = 'Riviprofiilit ja keskiarvoprofiili', booktabs = TRUE
)
|
|
Taulukossa 5.2 on laskettu jokaisen rivin riviprofiilit. Ne saadan kun rivin luvut jaetaan rivin summalla. Yhden rivin taulukossa on esitetty riviprofiilien keskikarvo, sarakesummat jaettuna koko taulukon havaintojen lukumäärällä. Sen prosenttiluvut kertovat tupakoititapojen jakauman koko henkilöstössä.
Jos PDF-tulostuksessa ei haluta ns. kelluvaa taulukkoa (float), voi kable-funktiossa käyttää LaTeXin pakettia longtable. Silloin on myös muistettava ottaa paketti käyttöön (usepackage{}) LaTeX - pohjatiedostossa (preamble).
Pandoc tukee monia Markdownin taulukkotyyppejä. Viittaaminen vaaati labeloidun otsikon, ja sen on oltava otsikkotestin alussa määrämuotoisena (esim. ab:hienotaulu). Tämä vaatii tarkkuutta, jos taulukon pitää toimia html- ja LaTex-outputissa. kable-funktiota kannattaa käyttää!
5.2 Korrespondenssianalyysin numeeriset tulokset taulukoina
Korrespondenssianalyysin idea on vähentää aineiston dimensioita, ja esittää taulukon rivien ja sarakkeiden riippuvuudet yleensä kaksiulotteisena karttana.
Numeeriset tulokset ovat tärkeitä diagnostiikassa ja kartan laadun varmistuksessa. Niistä näkee myös täsmällisesti, mitkä rivit ja sarakkeet määrittävät koordinaatiston.
smokeCA <- ca(smoke)
#temp1 <- smokeCA tämä kai tarpeeton ? (4.12.2018)
numres1CA1 <- summary(smokeCA)
#str(smokeCA)
#knitr::kable( smokeCA,
# digits = 3,
# caption = 'Riviprofiilit ja keskiarvoprofiili', booktabs = TRUE
#)
#str(temp1)
#stargazer(temp2$rows, type = "text", title = "CA-tuloksia")
# LateX-tulostuksessa float vaatii jotain tällaista:Table: (\#tab:cataul1)
#str(temp2)
#str(temp2$scree)
#temp2$scree
numres1CA1
##
## Principal inertias (eigenvalues):
##
## dim value % cum% scree plot
## 1 0.074759 87.8 87.8 **********************
## 2 0.010017 11.8 99.5 ***
## 3 0.000414 0.5 100.0
## -------- -----
## Total: 0.085190 100.0
##
##
## Rows:
## name mass qlt inr k=1 cor ctr k=2 cor ctr
## 1 | SM | 57 893 31 | -66 92 3 | -194 800 214 |
## 2 | JM | 93 991 139 | 259 526 84 | -243 465 551 |
## 3 | SE | 264 1000 450 | -381 999 512 | -11 1 3 |
## 4 | JE | 456 1000 308 | 233 942 331 | 58 58 152 |
## 5 | SC | 130 999 71 | -201 865 70 | 79 133 81 |
##
## Columns:
## name mass qlt inr k=1 cor ctr k=2 cor ctr
## 1 | none | 316 1000 577 | -393 994 654 | -30 6 29 |
## 2 | lght | 233 984 83 | 99 327 31 | 141 657 463 |
## 3 | medm | 321 983 148 | 196 982 166 | 7 1 2 |
## 4 | hevy | 130 995 192 | 294 684 150 | -198 310 506 |
Taulukot ovatkin aika vaikeita, tulostiedoista! Stargazer toki tekee monenlaista, mutta kun kyse on hyvin yksinkertaisista tulostaulukoista kablen pitäisi toimia.
Kokeillaan summary(smokeCA) - listan dataframe-olioden tulostusta kablella. Voisi harkita funktiota, joka poimii CA:n tuloslistasta sopivat objektit kable-funktiolle? Stargazer taas vaatisi (luultavasti) jonkun ehdollisen tulostuksen (PDF ja html)?
knitr::kable( numres1CA1$rows,
digits = 3,
caption = 'Korrespondenssianalyysin diagnostiikkaa - rivit', booktabs = TRUE
)
name | mass | qlt | inr | k=1 | cor | ctr | k=2 | cor | ctr |
---|---|---|---|---|---|---|---|---|---|
SM | 57 | 893 | 31 | -66 | 92 | 3 | -194 | 800 | 214 |
JM | 93 | 991 | 139 | 259 | 526 | 84 | -243 | 465 | 551 |
SE | 264 | 1000 | 450 | -381 | 999 | 512 | -11 | 1 | 3 |
JE | 456 | 1000 | 308 | 233 | 942 | 331 | 58 | 58 | 152 |
SC | 130 | 999 | 71 | -201 | 865 | 70 | 79 | 133 | 81 |
Rivien ja sarakkeiden diagnotiikkataulukot eivät mahdu rinnakkain, siksi ne tulostetaan erikseen.
knitr::kable( numres1CA1$columns,
digits = 3,
caption = 'Korrespondenssianalyysin diagnostiikkaa - sarakkeet', booktabs = TRUE
)
name | mass | qlt | inr | k=1 | cor | ctr | k=2 | cor | ctr |
---|---|---|---|---|---|---|---|---|---|
none | 316 | 1000 | 577 | -393 | 994 | 654 | -30 | 6 | 29 |
lght | 233 | 984 | 83 | 99 | 327 | 31 | 141 | 657 | 463 |
medm | 321 | 983 | 148 | 196 | 982 | 166 | 7 | 1 | 2 |
hevy | 130 | 995 | 192 | 294 | 684 | 150 | -198 | 310 | 506 |
Taulukoiden 5.3 ja 5.4 luvut on kerrottu tuhannella (“per milles”).
Dimensioiden ominaisarvot (eli niiden osuus kokonaisinertiasta) saadaan ca-funktion tuloslistasta taulukoksi. Se esitetään joskus myös ns. scree - kuvana, jos dimensoita on paljon ja joudutaan pohtimaan kuinka monta valitaan (vaikea kysymys!).
knitr::kable( numres1CA1$scree,
digits = 3,
caption = 'Korrespondenssianalyysin diagnostiikkaa - ominaisarvot', booktabs = TRUE
)
values | values2 | values3 | |
---|---|---|---|
1 | 0.075 | 87.756 | 87.756 |
2 | 0.010 | 11.759 | 99.515 |
3 | 0.000 | 0.485 | 100.000 |
Taulukko 5.5 vaatii selityksen, mutta kuvaa ei tässä tapauksessa tarvita.
5.3 Kuvat
chunk-optiot
fig.cap: R plot - kuvat figure-ympäristöön, automaattiset labelit (fig: + koodipätkän label) ja niihin voi viitata.
fig.asp oikeaan arvoon 1.

Kuva 5.1: CA-kartta
Kuviin (kuten 5.1) ja taulukoihin voi viitata tekstissä. Kuvan otsikko tulostuu kuvan alapuolelle, ehkä vähän huono idea?
Näköjään stargazer-kokeilu tulostusoptiolla “html” loi R-projektihakemistoon kansion ja sinne png-kuvan. finnish.ldf tiedoston muokkaus MikTeX:ssä tehty, mutta se ei vaikuta html-viiteotsikkoon. Korjattu “ehdollisessa viitesivussa” viitteet.Rmd jossa html-viiteluettelon otsikko annetaan.
Saisiko numeeristen tulosten scree-kuvan samalla tavalla kuvaksi?