Načtení dat

Zkontrolujeme data a převedeme spotreba.dalnice a spotreba.mesto na numerické hodnoty.

setwd("~/R/R_CALCULATION_SYSTEMS")
auta <- read.csv2("auta04.csv")
str(auta)
dim(auta)
names(auta)
auta$spotreba.dalnice <- as.numeric(as.character(auta$spotreba.dalnice))
auta$spotreba.mesto <- as.numeric(as.character(auta$spotreba.mesto))

Úkol 1)

Prokažte, že střední spotreba.mesto je >= 12,5 l/100 km.

Nejdříve si vytvoříme histogram s pozorovaným a normalním rozložením.

#auta.spotreba.mesto
auta.spotreba.mesto <- auta$spotreba.mesto

#histogram
auta$spotreba.mesto <- as.numeric(as.character(auta$spotreba.mesto))
x <- auta$spotreba.mesto
x <- na.omit(auta$spotreba.mesto)
SD <- sd(x)
mean.auta <- mean(x)
hist(x, breaks = 20, density = 20, prob=TRUE,
     main="",
     xlab="Spotreba mesto l/100 km",
     ylab="Hustota",
     cex.lab=1.2)
quant <- seq(min(x),max(x),length=100)
normaldens <- dnorm(quant,mean=mean.auta,sd=SD)
lines(quant,normaldens,col="red",lwd=2)
lines(density(x), col="blue",lwd=2)
legend("topleft",c("normalni","pozorovane"),lty=c(1,1),
       col=c("red","blue"),lwd=2)

Doplníme krabicovým grafem s aritmetickým průměrem.

#krabicový graf
boxplot(auta.spotreba.mesto, main = "Spotreba mesto", ylab= "Spotreba v l/100 km", notch = T, col = "deepskyblue")
points(mean(x, na.rm = T),col="red",pch=16)

Pro testování jednorozměrné normality provedeme lillie.test z balíčku nortest.

library(nortest)
lillie.test(auta$spotreba.mesto)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  auta$spotreba.mesto
## D = 0.10399, p-value = 1.341e-11

P-hodnota je velmi malá, proto zamítáme H0 o normálním rozložení.

U našeho datasetu se však můžeme spolehnout na histogram a přikročit k druhému kroku a to k testování zadané hypotézy:

Pro testování použijeme jednovýběrový t.test, kde pro alternativní hypotézu nastavíme parametr ‘g’, který udává průměr větší než zadaný parametr mu=12,5.

t.test(auta$spotreba.mesto,alternative="g",mu=12.5,conf.level=0.95) 
## 
##  One Sample t-test
## 
## data:  auta$spotreba.mesto
## t = -1.56, df = 413, p-value = 0.9402
## alternative hypothesis: true mean is greater than 12.5
## 95 percent confidence interval:
##  12.10057      Inf
## sample estimates:
## mean of x 
##   12.3058

Hypotézu H0 se nám nepodařilo zamítnout, proto nemůžeme říci, že střední spotreba.mesto je větší nebo rovno 12,5.

Úkol 2)

Pokuste se prokázat, že střední hodnota spotreba.dalnice u pickupů je aspoň o 2 l/100 km větší, než u kombiků.

Subset požadované skupiny:

pickup.spotreba.dalnice <- subset(auta, subset = druh=="pickup", select = spotreba.dalnice)
combi.spotreba.dalnice <- subset(auta, subset = druh=="combi", select = spotreba.dalnice)

Vykreslíme histogramy s linií normálního rozložení.

#historgram
pickup <- auta[which(auta$druh == "pickup"),]
combi <- auta[which(auta$druh == "combi"),]

x <- na.omit(pickup$spotreba.dalnice)
x <- as.numeric(as.character(x))
SD <- sd(x)
mean.pickup <- mean(x)
hist(x, breaks = 10, density = 20, prob=TRUE,
     main="PICKUP", xlab = "Spotreba dalnice l/100 km", ylab = "Hustota")
quant <- seq(min(x),max(x),length=100)
normaldens <- dnorm(quant,mean=mean.pickup,sd=SD)
lines(quant,normaldens,col="red",lwd=2)
lines(density(x), col="blue",lwd=2)
legend("topleft",c("normalni","pozorovane"),lty=c(1,1),
       col=c("red","blue"),lwd=2)

x <- na.omit(combi$spotreba.dalnice)
x <- as.numeric(as.character(x))
SD <- sd(x)
mean.combi <- mean(x)
hist(x, breaks = 10, density = 20, prob=TRUE,
     main="COMBI", xlab = "Spotreba dalnice l/100 km", ylab = "Hustota")
quant <- seq(min(x),max(x),length=100)
normaldens <- dnorm(quant,mean=mean.combi,sd=SD)
lines(quant,normaldens,col="red",lwd=2)
lines(density(x), col="blue",lwd=2)
legend("topleft",c("normalni","pozorovane"),lty=c(1,1),
       col=c("red","blue"),lwd=2)

Provedeme testování na normální rozložení pomocí Shapiro-Wilkova testu, který se používá k testování normality u menších datasetů:

#test normality
shapiro.test(pickup.spotreba.dalnice$spotreba.dalnice)
## 
##  Shapiro-Wilk normality test
## 
## data:  pickup.spotreba.dalnice$spotreba.dalnice
## W = 0.9183, p-value = 0.06126
shapiro.test(combi.spotreba.dalnice$spotreba.dalnice)
## 
##  Shapiro-Wilk normality test
## 
## data:  combi.spotreba.dalnice$spotreba.dalnice
## W = 0.96585, p-value = 0.4533

P-hodnoty jsou větší než 0.05 proto nezamítáme hypotézu o normálním rozložení.

Dále přikročíme k testování na shodu rozptylů pomocí var.testu, jedná se vlastně o F-test, díky němuž se pokusíme zjistit shodnost rozptylů, aby jsme mohli přistoupit k T-testu. Cílem F-testu o rovnosti dvou rozptylů je ověřit, zda dva výběrové soubory pochází z rozdělení se stejným rozptylem, což znamená ověřit, zda oba soubory vykazují přibližně stejný rozptyl sledované náhodné veličiny. Předpokladem tohoto testu je normalita pozorovaných hodnot v obou výběrových souborech.

#test o shodě rozptylů
var.test(x = pickup.spotreba.dalnice$spotreba.dalnice,y= combi.spotreba.dalnice$spotreba.dalnice, alternative = "l", ratio=1, level=0.95)
## 
##  F test to compare two variances
## 
## data:  pickup.spotreba.dalnice$spotreba.dalnice and combi.spotreba.dalnice$spotreba.dalnice
## F = 1.6442, num df = 22, denom df = 28, p-value = 0.8932
## alternative hypothesis: true ratio of variances is less than 1
## 95 percent confidence interval:
##  0.00000 3.28348
## sample estimates:
## ratio of variances 
##           1.644207

H0 se nám nepodařila zamítnout, proto můžeme uvažovat shodnost rozptylů.

Provedeme T-test na zadanou hypotézu:

t.test(x = pickup.spotreba.dalnice$spotreba.dalnice,y = combi.spotreba.dalnice$spotreba.dalnice, mu=2, alternative = "g",var.equal = T)
## 
##  Two Sample t-test
## 
## data:  pickup.spotreba.dalnice$spotreba.dalnice and combi.spotreba.dalnice$spotreba.dalnice
## t = 1.6939, df = 50, p-value = 0.04825
## alternative hypothesis: true difference in means is greater than 2
## 95 percent confidence interval:
##  2.008121      Inf
## sample estimates:
## mean of x mean of y 
## 11.426087  8.662069

P-hodnota = 0,04825 (zamítáme H0), proto potvrzujeme hypotézu, že střední hodnota spotreba.mesto je u pickupů alespoň o 2 l na 100 km větší než u combiků.

Úkol 3)

Pokuste se prokázat, že střední spotreba.dalnice se u kombiků a sportovních aut liší.

Subset požadovaného datasetu:

combi.spotreba.dalnice <- subset(auta, subset = druh=="combi", select = spotreba.dalnice)
sport.spotreba.dalnice <- subset(auta, subset = druh=="sport", select = spotreba.dalnice)

Normalita pomocí histogramů

#historgram
combi <- auta[which(auta$druh == "combi"),]
sport <- auta[which(auta$druh == "sport"),]
x <- na.omit(combi$spotreba.dalnice)
x <- as.numeric(as.character(x))
SD <- sd(x)
mean.pickup <- mean(x)
hist(x, breaks = 10, density = 20, prob=TRUE,
     main="COMBI", xlab = "Spotreba dalnice l/100 km", ylab = "Hustota")
quant <- seq(min(x),max(x),length=100)
normaldens <- dnorm(quant,mean=mean.pickup,sd=SD)
lines(quant,normaldens,col="red",lwd=2)
lines(density(x), col="blue",lwd=2)
legend("topleft",c("normalni","pozorovane"),lty=c(1,1),
       col=c("red","blue"),lwd=2)

x <- na.omit(sport$spotreba.dalnice)
x <- as.numeric(as.character(x))
SD <- sd(x)
mean.combi <- mean(x)
hist(x, breaks = 10, density = 20, prob=TRUE,
     main="SPORT", xlab = "Spotreba dalnice l/100 km", ylab = "Hustota")
quant <- seq(min(x),max(x),length=100)
normaldens <- dnorm(quant,mean=mean.combi,sd=SD)
lines(quant,normaldens,col="red",lwd=2)
lines(density(x), col="blue",lwd=2)
legend("topleft",c("normalni","pozorovane"),lty=c(1,1),
       col=c("red","blue"),lwd=2)

Provedeme testování na normální rozložení pomocí Shapiro-Wilkova testu:

#test normality
shapiro.test(combi.spotreba.dalnice$spotreba.dalnice)
## 
##  Shapiro-Wilk normality test
## 
## data:  combi.spotreba.dalnice$spotreba.dalnice
## W = 0.96585, p-value = 0.4533
shapiro.test(sport.spotreba.dalnice$spotreba.dalnice)
## 
##  Shapiro-Wilk normality test
## 
## data:  sport.spotreba.dalnice$spotreba.dalnice
## W = 0.96232, p-value = 0.1329

P-hodnoty jsou větší než 0.05 proto nezamítáme hypotézu o normálním rozložení.

Provedeme test na shodu rozptylů:

var.test(combi.spotreba.dalnice$spotreba.dalnice, combi.spotreba.dalnice$spotreba.dalnice, alternative="t",ratio=1,level=0.95)
## 
##  F test to compare two variances
## 
## data:  combi.spotreba.dalnice$spotreba.dalnice and combi.spotreba.dalnice$spotreba.dalnice
## F = 1, num df = 28, denom df = 28, p-value = 1
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.4695003 2.1299243
## sample estimates:
## ratio of variances 
##                  1

Rozptyly nejsou shodné, proto použijeme Welchov test.

Použijeme Welchov test na testování hypotézy, tento test se uživá při rozdílných rozptylech.

t.test(combi.spotreba.dalnice$spotreba.dalnice,sport.spotreba.dalnice$spotreba.dalnice, alternative="t", mu=0, var.equal = F)
## 
##  Welch Two Sample t-test
## 
## data:  combi.spotreba.dalnice$spotreba.dalnice and sport.spotreba.dalnice$spotreba.dalnice
## t = -1.8885, df = 44.795, p-value = 0.06545
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -1.17767905  0.03798719
## sample estimates:
## mean of x mean of y 
##  8.662069  9.231915

Nezamítáme H0 o nulovém rozdílu mezi středními hodnotami combi a sport.

Úkol 4)

Pokuste se prokázat, že střední spotreba.mesto je nejvýše o 3,2 l/100 km větší než střední spotreba.dalnice.

Začneme histogramy:

#histogram
x <- na.omit(auta$spotreba.mesto)
x <- as.numeric(as.character(x))
SD <- sd(x)
mean.pickup <- mean(x)
hist(x, breaks = 10, density = 20, prob=TRUE,
     main="SPOTREBA MESTO", xlab = "Spotreba mesto l/100 km", ylab = "Hustota")
quant <- seq(min(x),max(x),length=100)
normaldens <- dnorm(quant,mean=mean.pickup,sd=SD)
lines(quant,normaldens,col="red",lwd=2)
lines(density(x), col="blue",lwd=2)
legend("topleft",c("normalni","pozorovane"),lty=c(1,1),
       col=c("red","blue"),lwd=2)

x <- na.omit(auta$spotreba.dalnice)
x <- as.numeric(as.character(x))
SD <- sd(x)
mean.combi <- mean(x)
hist(x, breaks = 10, density = 20, prob=TRUE,
     main="SPOTREBA DALNICE", xlab = "Spotreba dalnice l/100 km", ylab = "Hustota")
quant <- seq(min(x),max(x),length=100)
normaldens <- dnorm(quant,mean=mean.combi,sd=SD)
lines(quant,normaldens,col="red",lwd=2)
lines(density(x), col="blue",lwd=2)
legend("topleft",c("normalni","pozorovane"),lty=c(1,1),
       col=c("red","blue"),lwd=2)

Dále musíme zjistit, zdali jsou data z normálního rozložení. Použijeme test dvourozměrné normality z balíčku MVN.

Předtím ještě jedno grafické znézornění normality:

library("MVN")
mvn(auta[,c(9,10)], mvnTest = "hz", univariateTest = "Lillie", multivariatePlot = "persp")

Test dvourozměrné normality:

mvn(auta[,c(9,10)], mvnTest = "hz", univariateTest = "Lillie")
## $multivariateNormality
##            Test       HZ p value MVN
## 1 Henze-Zirkler 11.13824       0  NO
## 
## $univariateNormality
##                              Test         Variable Statistic   p value
## 1 Lilliefors (Kolmogorov-Smirnov)  spotreba.mesto     0.1040  <0.001  
## 2 Lilliefors (Kolmogorov-Smirnov) spotreba.dalnice    0.1541  <0.001  
##   Normality
## 1    NO    
## 2    NO    
## 
## $Descriptives
##                    n      Mean  Std.Dev Median Min  Max 25th 75th      Skew
## spotreba.mesto   414 12.305797 2.533029   12.4 3.9 23.5 11.2 13.8 0.1609214
## spotreba.dalnice 414  9.106522 1.916636    9.0 3.6 19.6  8.1  9.8 1.0191385
##                  Kurtosis
## spotreba.mesto   1.236866
## spotreba.dalnice 2.666038

Zamítáme hypotézu o normálním rozdělení dat, ale jelikož máme větší dataset, řídíme se podle histogramu, proto normální rozložení.

Snažíme se prokázal alternativní hypotézu, že střední spotreba.mesto je nejvýše o 3,2 l/100 km větší než střední spotreba.dalnice.

#test střední hodnoty
t.test(auta$spotreba.mesto, auta$spotreba.dalnice, alternative = "l", mu = 3.2, paired = T, conf.level = 0.95)
## 
##  Paired t-test
## 
## data:  auta$spotreba.mesto and auta$spotreba.dalnice
## t = -0.014914, df = 413, p-value = 0.4941
## alternative hypothesis: true difference in means is less than 3.2
## 95 percent confidence interval:
##      -Inf 3.279373
## sample estimates:
## mean of the differences 
##                3.199275

Nezamítáme H0 o větším rozdílu než 3.2 mezi středními hodnotami spotreba.mesto a spotreba.dalnice, tím pádem zamítáme alternativní hypotézu ze zadání.

Úkol 5)

Pokuste se prokázat, že medián spotreba.dalnice u off roadů není 12 l/100 km.

Subset požadovaného datasetu:

#off.road.spotreba.dalnice
off.road.spotreba.dalnice <- as.numeric(as.character(auta[which(auta$druh == "off.road"),"spotreba.dalnice"]))

Vizualizace:

#histogram
x <- na.omit(off.road.spotreba.dalnice)
x <- as.numeric(as.character(x))
SD <- sd(x)
mean.pickup <- mean(x)
hist(x, breaks = 20, density = 20, prob=TRUE,
     main="OFF.ROAD", xlab = "Spotreba dalnice l/100 km", ylab = "Hustota")
quant <- seq(min(x),max(x),length=100)
normaldens <- dnorm(quant,mean=mean.pickup,sd=SD)
lines(quant,normaldens,col="red",lwd=2)
lines(density(x), col="blue",lwd=2)
legend("topleft",c("normalni","pozorovane"),lty=c(1,1),
       col=c("red","blue"),lwd=2)

Nyní provedeme test s přesnou p-hodnotou, díky argumentu wilcox.exact se vyhneme shodám.

library(exactRankTests)

Wilcox.exact test se používá pro menší datasety.

wilcox.exact(off.road.spotreba.dalnice,alternative="t",mu = 12,exact=T,correct=T)
## 
##  Exact Wilcoxon signed rank test
## 
## data:  off.road.spotreba.dalnice
## V = 656.5, p-value = 0.0844
## alternative hypothesis: true mu is not equal to 12

Nezamítáme H0, že medián spotreba.dalnice u off.road je 12 l/100 km.

Provedeme asymptotický test. Test nepočítá s úplně přesnými hodnotami, posune hodnoty, Test se hodí pro větší datasety.

wilcox.test(off.road.spotreba.dalnice,alternative="t",mu = 12,exact=F,correct=F)
## 
##  Wilcoxon signed rank test
## 
## data:  off.road.spotreba.dalnice
## V = 656.5, p-value = 0.08404
## alternative hypothesis: true location is not equal to 12

Nezamítáme H0, že medián spotreba.dalnice u off.road je 12 l/100 km, proto nemůžeme potvrdit hypotézu ze zadání, že medián spotreba.dalnice u off roadů není 12 l/100 km. V našem případě se jedná o mediány, proto použijeme wilcox.test. Wilcox test využijeme, když nemáme normální rozložení, jediným předpokladem testu je simetrie rozdělení náhodné veličiny x.

Úkol 6)

Pokuste se prokázat, že medián spotreba.dalnice je u kombiků nejvýše 9,5 l/100 km.

Vybereme data:

combi.spotreba.dalnice <- as.numeric(as.character(auta[which(auta$druh == "combi"),"spotreba.dalnice"]))

Histogram:

#histogram
x <- na.omit(combi.spotreba.dalnice)
x <- as.numeric(as.character(x))
SD <- sd(x)
mean.pickup <- mean(x)
hist(x, breaks = 20, density = 20, prob=TRUE,
     main="COMBI", xlab = "Spotreba dalnice l/100 km", ylab = "Hustota")
quant <- seq(min(x),max(x),length=100)
normaldens <- dnorm(quant,mean=mean.pickup,sd=SD)
lines(quant,normaldens,col="red",lwd=2)
lines(density(x), col="blue",lwd=2)
legend("topleft",c("normalni","pozorovane"),lty=c(1,1),
       col=c("red","blue"),lwd=2)

Test s přesnou p-hodnotou, znovu použijeme wilcox.exact z balíčku exactRankTests.

wilcox.exact(combi.spotreba.dalnice,alternative="l",mu = 9.5,exact=T,correct=T)
## 
##  Exact Wilcoxon signed rank test
## 
## data:  combi.spotreba.dalnice
## V = 82, p-value = 0.001238
## alternative hypothesis: true mu is less than 9.5

Přijímáme alternativní hypotézu, že medián spotreba.dalnice je menší než 9,5 l/100 km.

Provedeme asymptotický test:

wilcox.test(combi.spotreba.dalnice,alternative="l",mu = 9.5,exact=F,correct=T)
## 
##  Wilcoxon signed rank test with continuity correction
## 
## data:  combi.spotreba.dalnice
## V = 82, p-value = 0.001744
## alternative hypothesis: true location is less than 9.5

Zamítáme H0 a přijímáme alternativní hypotézu, že medián spotreba.dalnice u combi je méně než 9,5 l/100 km. V našem případě se jedná o mediány, proto použijeme wilcox.test. Wilcox test využijeme, když nemáme normální rozložení, jediným předpokladem testu je simetrie rozdělení náhodné veličiny x.

Úkol 7)

Pokuste se prokázat, že medián spotřeby u pickupů je o 2 l/100 km větší než u kombiků.

Data combi a pickup:

combi.spotreba.dalnice <- as.numeric(as.character(auta[which(auta$druh == "combi"),"spotreba.dalnice"]))
pickup.spotreba.dalnice <- as.numeric(as.character(auta[which(auta$druh == "pickup"),"spotreba.dalnice"]))

Histogramy:

#histogram
x <- na.omit(combi.spotreba.dalnice)
x <- as.numeric(as.character(x))
SD <- sd(x)
mean.pickup <- mean(x)
hist(x, breaks = 10, density = 20, prob=TRUE,
     main="COMBI", xlab = "Spotreba mesto l/100 km", ylab = "Hustota")
quant <- seq(min(x),max(x),length=100)
normaldens <- dnorm(quant,mean=mean.pickup,sd=SD)
lines(quant,normaldens,col="red",lwd=2)
lines(density(x), col="blue",lwd=2)
legend("topleft",c("normalni","pozorovane"),lty=c(1,1),
       col=c("red","blue"),lwd=2)

x <- na.omit(pickup.spotreba.dalnice)
x <- as.numeric(as.character(x))
SD <- sd(x)
mean.combi <- mean(x)
hist(x, breaks = 10, density = 20, prob=TRUE,
     main="PICKUP", xlab = "Spotreba dalnice l/100 km", ylab = "Hustota")
quant <- seq(min(x),max(x),length=100)
normaldens <- dnorm(quant,mean=mean.combi,sd=SD)
lines(quant,normaldens,col="red",lwd=2)
lines(density(x), col="blue",lwd=2)
legend("topleft",c("normalni","pozorovane"),lty=c(1,1),
       col=c("red","blue"),lwd=2)

QQplot ze zadání:

qqplot(combi.spotreba.dalnice, pickup.spotreba.dalnice, col = "blue")
posunuti<-median(combi.spotreba.dalnice,na.rm=T)-median(pickup.spotreba.dalnice,na.rm=T)
abline(a=-posunuti,b=1, col = "red", lwd = 3)

Body se až na extrémy nacházejí na přímce, proto je splněn předpoklad dvouvýběrového Wilcox.testu, obě hustoty se líší pouze posunutím.

Provedeme wilcox.test s alternativní hypotézou, že medián spotřeby u pickupů je o 2 l/100 km větší, proto nastavíme argument ‘g’.

wilcox.test(pickup.spotreba.dalnice,combi.spotreba.dalnice,alternative="g",mu=2,exact=F,correc=T)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  pickup.spotreba.dalnice and combi.spotreba.dalnice
## W = 432, p-value = 0.03528
## alternative hypothesis: true location shift is greater than 2

Zamítáme H0, že medián spotřeby u pickupů je menší než 2 l/100 km a přijímáme alternativní hypotézu ze zadání.

Úkol 8)

Data:

combi.spotreba.dalnice <- as.numeric(auta[which(auta$druh == "combi"), "spotreba.dalnice"])
sport.spotreba.dalnice <- as.numeric(auta[which(auta$druh == "sport"), "spotreba.dalnice"])

QQplot:

qqplot(combi.spotreba.dalnice, sport.spotreba.dalnice, col = "blue")
posunuti <- median(combi.spotreba.dalnice,na.rm=T)-median(sport.spotreba.dalnice,na.rm=T)
abline(a=-posunuti,b=1, col = "red", lwd = 3)

Body neleží na linii, proto není vhodné použít Wilcox.test.

KS.test:

ks.test(combi.spotreba.dalnice, sport.spotreba.dalnice, alternative = "g")
## 
##  Two-sample Kolmogorov-Smirnov test
## 
## data:  combi.spotreba.dalnice and sport.spotreba.dalnice
## D^+ = 0.26779, p-value = 0.07637
## alternative hypothesis: the CDF of x lies above that of y

Úkol 9)

Vytvořte graf absolutních a relativních četností a koláčový graf pro proměnnou druh.

Absolutní četnosti:

druh <- auta$druh

library(colorspace)
jmena.urovni <- c(levels(druh))
barplot(table(druh), names.arg = jmena.urovni, col=rainbow_hcl(6), space = 1,
        xlab = "DRUH AUTA", ylab = "ABSOLUTNI POCET", main = "AUTA",
        legend.text = c(levels(druh)))

Relativní četnosti:

rel.auta <- prop.table(table(druh))
barplot(t(rel.auta), col=rainbow_hcl(6), beside = T,
        xlab = "DRUH AUTA", ylab = "RELATIVNI POCET", main = "AUTA",
        legend.text = c(levels(druh)))

Koláčový graf:

pct <- round(table(druh)/sum(table(druh))*100)
lpct <- paste(c(levels(druh)), pct)
plpct <- paste(lpct,"%", sep = "")
pie(table(druh), col=rainbow_hcl(6), main = "AUTA", labels = plpct)

Úkol 10)

Vytvořte graf podmíněných relativních četností a koláčový graf pro druh/nahon a nahon/druh.

Relativní četnosti druh/nahon:

druh <- auta$druh
nahon <- auta$nahon

rel.auta <- prop.table(table(druh,nahon))
barplot(t(rel.auta), col=rainbow_hcl(3), beside = T,
        xlab = "DRUH AUTA", ylab = "RELATIVNI CETNOST", main = "AUTA",
        legend.text = c(levels(nahon)))

Relativní četnosti nahon/druh:

rel.auta <- prop.table(table(nahon,druh))
barplot(t(rel.auta), col=rainbow_hcl(6), beside = T,
        xlab = "NAHON", ylab = "RELATIVNI CETNOST", main = "AUTA",
        legend.text = c(levels(druh)))

Koláčové grafy pro druh/nahon:

par(mfcol=c(2,3))
#koláčový graf COMBI
combi <- auta[which(auta$druh == "combi"),"nahon"]
f.combi <- as.factor(as.character(combi))
pie(table(f.combi), col=rainbow_hcl(4), main = "COMBI NAHON", labels = levels(f.combi))

#koláčový graf MINIVAN
minivan <- auta[which(auta$druh == "minivan"),"nahon"]
f.minivan <- as.factor(as.character(minivan))
pie(table(f.minivan), col=rainbow_hcl(4), main = "MINIVAN NAHON", labels = levels(f.minivan))

#koláčový graf OFF.ROAD
off.road <- auta[which(auta$druh == "off.road"),"nahon"]
f.off.road <- as.factor(as.character(off.road))
pie(table(f.off.road), col=rainbow_hcl(4), main = "OFF.ROAD NAHON", labels = levels(f.off.road))

#koláčový graf OSOBNI
osobni <- auta[which(auta$druh == "osobni"),"nahon"]
f.osobni <- as.factor(as.character(osobni))
pie(table(f.osobni), col=rainbow_hcl(4), main = "OSOBNI NAHON", labels = levels(f.osobni))

#koláčový graf PICKUP
pickup <- auta[which(auta$druh == "pickup"),"nahon"]
f.pickup <- as.factor(as.character(pickup))
pie(table(f.pickup), col=rainbow_hcl(4), main = "PICKUP NAHON", labels = levels(f.pickup))

#koláčový graf PICKUP
sport <- auta[which(auta$druh == "sport"),"nahon"]
f.sport <- as.factor(as.character(sport))
pie(table(f.sport), col=rainbow_hcl(4), main = "SPORT NAHON", labels = levels(f.sport))

Koláčové grafy pro nahon/druh:

par(mfcol=c(1,3))
#koláčový graf zadní náhon
zadni <- auta[which(auta$nahon == "zadni"),"druh"]
f.zadni <- as.factor(as.character(zadni))
pie(table(f.zadni), col=rainbow_hcl(6), main = "ZADNI NAHON", labels = levels(f.zadni))

#koláčový graf přední náhon
predni <- auta[which(auta$nahon == "predni"),"druh"]
f.predni <- as.factor(as.character(predni))
pie(table(f.predni), col=rainbow_hcl(6), main = "PREDNI NAHON", labels = levels(f.predni))

#koláčový graf náhon na všechny čtyři
v4 <- auta[which(auta$nahon == "ctyrkolka"),"druh"]
f.v4 <- as.factor(as.character(v4))
pie(table(f.v4), col=rainbow_hcl(5), main = "V4 NAHON", labels = levels(f.v4))

par(mfcol=c(1,1))

Úkol 11)

Bodový graf pro proměnné spotreba.mesto a hmotnost:

library(ggplot2)
auta$spotreba.mesto <- as.numeric(as.character(auta$spotreba.mesto))
w <- ggplot(data=auta, aes(x=hmotnost, y=spotreba.mesto, color=druh, size=konska.sila))
w + geom_point(alpha=0.65) +
        ggtitle("AUTA: parametry") +
        theme(
                # Black backgroud with white lines
                panel.background = element_rect(fill = "black", colour = "white",
                                                size = 2, linetype = "solid"),
                panel.grid.major = element_line(size = 0.5, linetype = 'solid',
                                                colour = "white"), 
                panel.grid.minor = element_line(size = 0.25, linetype = 'solid',
                                                colour = "white")) +
        theme(  
                # Title format
                plot.title = element_text(colour="Black",size=25, face = "bold", hjust = 0.5)) +
        theme(
                # Legend title format
                legend.title = element_text(colour="Black", size=15, face="bold")) +
        theme(
                # Legend elements format
                legend.text = element_text(colour="Black", size=10, face = "bold")) +
        theme(
                # Axis text format
                axis.text.x = element_text(face="bold", color="Black", 
                                         size=10),
                axis.text.y = element_text(face="bold", color="Black", 
                                         size=10)) +
        theme(
                # Axis title format
                axis.title.x = element_text(colour="Black", size=15, face="bold"),
                axis.title.y = element_text(colour="Black", size=15, face="bold"))

Úkol 12)

Kategorizovaný histogram(y):

auta$spotreba.mesto <- as.numeric(as.character(auta$spotreba.mesto))
y <- ggplot(data=auta, aes(x=spotreba.mesto))
y + geom_histogram(binwidth=1, aes(fill = druh), alpha=0.8, color="Black") +
    ggtitle("AUTA: spotřeba") +
    ylab("pocet") +
    theme(
        # Black backgroud with white lines
        panel.background = element_rect(fill = "black", colour = "white",
                                        size = 2, linetype = "solid"),
        panel.grid.major = element_line(size = 0.5, linetype = 'solid',
                                        colour = "white"), 
        panel.grid.minor = element_line(size = 0.25, linetype = 'solid',
                                        colour = "white")) +
    theme(  
        # Title format
        plot.title = element_text(colour="Black",size=20, face = "bold", hjust = 0.5)) +
    theme(
        # Legend title format
        legend.title = element_text(colour="Black", size=15, face="bold")) +
    theme(
        # Legend elements format
        legend.text = element_text(colour="Black", size=10, face = "bold")) +
    theme(
        # Axis text format
        axis.text.x = element_text(face="bold", color="Black", 
                                   size=10),
        axis.text.y = element_text(face="bold", color="Black", 
                                   size=10)) +
    theme(
        # Axis title format
        axis.title.x = element_text(colour="Black", size=15, face="bold"),
        axis.title.y = element_text(colour="Black", size=15, face="bold"))

Krabicové grafy s proměnnou spotreba.mesto v závislosti na druhu:

auta$spotreba.mesto <- as.numeric(as.character(auta$spotreba.mesto))
w <- ggplot(data=auta, aes(x=druh, y=spotreba.mesto))
w + geom_boxplot() +
        geom_boxplot(size=1.6, alpha=1, outlier.fill = "black", outlier.size = 3, outlier.alpha= 1) +
        theme(axis.text.x = element_text(face="bold", color="Black", 
                                         size=10),
              axis.text.y = element_text(face="bold", color="Black", 
                                         size=10)) +
        ggtitle("AUTA: spotřeba") +
        ylab("spotreba.mesto l/100km") +
        xlab("druh") +
                # Mean
        stat_summary(fun.y="mean", geom="point", shape=16, size=3, color = "red") +
        theme(legend.position = "none") +
        scale_x_discrete(limits=c("combi", "minivan", "off.road", "osobni", "pickup","sport")) +
        theme(
                # White backgroud
                panel.background = element_rect(fill = "white", colour = "white",
                                                size = 2, linetype = "solid"),
                panel.grid.major = element_line(size = 0.5, linetype = 'solid',
                                                colour = "black"), 
                panel.grid.minor = element_line(size = 0.25, linetype = 'solid',
                                                colour = "black")) + 
        theme(  
                # Title format
                plot.title = element_text(colour="Black",size=25, face = "bold", hjust = 0.5)) +
        theme(
                # Axis title format
                axis.title.x = element_text(colour="Black", size=15, face="bold"),
                axis.title.y = element_text(colour="Black", size=15, face="bold")) +
        theme(
                # Axis text format
                axis.text.x = element_text(face="bold", color="Black", 
                                           size=10),
                axis.text.y = element_text(face="bold", color="Black", 
                                           size=10))