R laatikkokuvio

Tässä artikkelissa opit luomaan whisker- ja laatikkokuvion R-ohjelmoinnissa. Opit myös piirtämään useita boxplotteja yhteen plottiin.

R:ssä boxplot (ja whisker plot) luodaan boxplot()-funktiolla.

Funktio boxplot() ottaa sisäänsä minkä tahansa määrän numeerisia vektoreita, ja piirtää boxplotin kullekin vektorille.

Voit myös syöttää sisäänsä listan (tai tietokehyksen), jossa on komponentteina numeerisia vektoreita. Käytetään sisäänrakennettua tietokokonaisuutta airquality, jossa on ”Daily air quality measurements in New York, May to September 1973.” (R-dokumentaatio)

> str(airquality)'data.frame':153 obs. of 6 variables:$ Ozone : int 41 36 12 18 NA 28 23 19 8 NA ...$ Solar.R: int 190 118 149 313 NA NA 299 99 19 194 ...$ Wind : num 7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...$ Temp : int 67 72 74 62 56 66 65 59 61 69 ...$ Month : int 5 5 5 5 5 5 5 5 5 5 ...$ Day : int 1 2 3 4 5 6 7 8 9 10 ...

Tehdään boxplot otsonilukemille.

boxplot(airquality$Ozone)

Esimerkkinen laatikkokuvio (box plot) R-ohjelmoinnissa

Havainnoista nähdään, että mediaanin yläpuolella oleva aineisto on hajanaisempaa. Voimme myös huomata kaksi outlieriä ylemmässä ääripäässä.

Voimmekin syöttää lisäparametreja säätääksemme, miltä kuvaajamme näyttää. Voit lukea niistä ohjeesta ?boxplot.

Joitakin usein käytettyjä parametreja ovat: main-otsikon antamiseen, xlab ja ylab– akseleiden merkintöjen antamiseen, col värin määrittämiseen jne.

Lisäksi argumentilla horizontal = TRUE voimme piirtää sen vaakasuoraan ja argumentilla notch = TRUE voimme lisätä laatikkoon loven.

boxplot(airquality$Ozone,main = "Mean ozone in parts per billion at Roosevelt Island",xlab = "Parts Per Billion",ylab = "Ozone",col = "orange",border = "brown",horizontal = TRUE,notch = TRUE)

Vaakasuora laatikkodiagrammi R:ssä

Boxplot()

Funktio boxplot() palauttaa listan, jossa on 6 komponenttia, jotka näkyvät seuraavasti.

> b <- boxplot(airquality$Ozone)> b$stats 1.0 18.0 31.5 63.5 122.0attr(,"class")1 "integer" $n 116$conf 24.82518 38.17482$out 135 168$group 1 1$names "1"

Kuten yllä näemme, palautetaan lista, jossa on stats-viiksien ja laatikon ylä-/alareunojen sijainti sekä mediaani,

  • n-havaintojen lukumäärä, jolla boxplot on piirretty (huomaa, että NA:iä ei oteta huomioon)
  • conf-viiksien ylä-/alareunat, out-poikkeamien arvo
  • group-vektori, jonka pituus on sama kuin out ja jonka alkioilla ilmoitetaan, mihin ryhmään poikkeama kuuluu ja
  • names-vektori ryhmien nimistä.

Moninkertaiset boxplotit

Voidaan piirtää useita boxplotteja yhteen kuvaajaan välittämällä lista, datakehys tai useita vektoreita.

Katsotaanpa Ozone– ja Temp-kenttää airquality-tietokannassa. Luodaan myös normaalijakauma, jolla on sama keskiarvo ja keskihajonta, ja piirretään ne vierekkäin vertailun vuoksi.

# prepare the dataozone <- airquality$Ozonetemp <- airquality$Temp# gererate normal distribution with same mean and sdozone_norm <- rnorm(200,mean=mean(ozone, na.rm=TRUE), sd=sd(ozone, na.rm=TRUE))temp_norm <- rnorm(200,mean=mean(temp, na.rm=TRUE), sd=sd(temp, na.rm=TRUE))

Tehdään nyt näistä tiedoista 4 boxplottia. Käytämme argumentteja at ja names merkitsemään paikkaa ja merkintää.

boxplot(ozone, ozone_norm, temp, temp_norm,main = "Multiple boxplots for comparision",at = c(1,2,4,5),names = c("ozone", "normal", "temp", "normal"),las = 2,col = c("orange","red"),border = "brown",horizontal = TRUE,notch = TRUE)

r-multiple-boxplot

Boxplot-muoto Kaava

Funktio boxplot() voi ottaa sisäänsä myös y~x-muotoisia kaavoja, joissa, y on numeerinen vektori, joka ryhmitellään x:n arvon mukaan.

Tietoaineistossamme airquality esimerkiksi Temp voi olla numeerinen vektorimme. Kuukausi voi olla ryhmittelymuuttujamme, jolloin saamme boxplotin jokaiselle kuukaudelle erikseen. Tietoaineistossamme kuukausi on numeron muodossa (1=tammikuu, 2-helmikuu ja niin edelleen).

boxplot(Temp~Month,data=airquality,main="Different boxplots for each month",xlab="Month Number",ylab="Degree Fahrenheit",col="orange",border="brown")

Moninkertaiset boxplotit yhdessä kuvaajassa

Yllä olevasta kuviosta käy selvästi ilmi, että kuukausi numero 7 (heinäkuu) on suhteellisesti kuumempi kuin muut.