Područje uzgoja ćemo podijeliti na dva dijela, sjeverni i južni i istražiti, da li, statistički, postoji razlika u prinosima.
Svakom polju ćemo pridružiti logičku vrijednost TRUE ako je polje u sjevernom dijelu a FALSE ako nije. Polja sa indeksom retka manjim od 11 su u sjevernom a ostala u južno dijelu.
Zadatak Promijenite data frame mhw tako da dodate stupac (varijablu)
in.north koji pokazuje da li je polje u sjevernom dijelu ili ne.
mhw = cbind(mhw, in.north = (mhw$r < 11))
str(mhw)
## 'data.frame': 500 obs. of 5 variables:
## $ r : int 1 2 3 4 5 6 7 8 9 10 ...
## $ c : int 1 1 1 1 1 1 1 1 1 1 ...
## $ grain : num 3.63 4.07 4.51 3.9 3.63 3.16 3.18 3.42 3.97 3.4 ...
## $ straw : num 6.37 6.24 7.05 6.91 5.93 5.59 5.32 5.52 6.03 5.66 ...
## $ in.north: logi TRUE TRUE TRUE TRUE TRUE TRUE ...
Data frame mhw ćemo attach-irati da lakše pišemo izraze.
attach(mhw)
summary(in.north)
## Mode FALSE TRUE NA's
## logical 250 250 0
Zadatak Nacrtajte polja u sjevernom i južnom dijelu (polja će biti prikazana točkama) pri ćemu će ona u sjevernom dijelu biti plava a u južnom dijelu zelena.
plot(c, r, col = ifelse(in.north, "blue", "green"),
cex = 1.3*straw/max(straw), pch = 1, xlab = "Stupci",
ylab = "Reci", ylim = c(20, 1), sub = "Sjever je plav, a jug zelen")
title (main= "Prikaz prinosa slame i podjela na sjever i jug")
abline (h =10.5, lty = 2)
Primjedba: opcija ylim je navedana kako je da bi, na grafu dole bila vrijednost
y jednaka 20 a na vrhu 0. Da nismo tako naveli ylim sjever bi bio dole a jug gore,
što je suprotno uobičajnom položaju sjevera i juga na zemljopisnim kartama.
Crtanje “iste” slike sa ggplot2.
ggplot (mhw, aes(c, r)) +
geom_point (color = ifelse(in.north, "blue", "green"), shape = 1,
size = 1 + 3.3*straw/max(straw)) +
ylim (20, 1) + geom_hline(aes(yintercept = 10.5), linetype = 2) +
theme_bw()
Zadatak Usporedite prinose žita i slame na sjevernom i južnom dijelu koristeći boxplot.
par (mfrow=c(2, 1))
boxplot (grain ~ in.north, names = c("S", "N"),
main = "Prinos zita", horizontal = T)
boxplot (straw ~ in.north, names =c("S", "N"),
main = "Prinos slame", horizontal = T)
par (mfrow=c(1, 1))
Slika pokazuje da je prinos žita na sjeveru i jugu sličan pri čemu je interkvartilmi razmak manji na sjeveru. Prinos slame je veći na jugu nego na sjeveru i na sjeveru je asimetričan.
Zadatak Usporedite sumarnu statistiku za obje polovice.
Napomena: bilo koja funkcija f može biti primjenjena pomoću funkcije by na podskup data frame ovako: prvi argument od by je argument funkcije, drugi argument je
selektor podskupa data framea a treći je funkcija.
by (arg, selector, f)
Znači, prvo argument pa selektor (vjerojatno faktor) pa onda funkcija (RPN).
by(grain, in.north, summary)
## in.north: FALSE
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2.73 3.59 3.91 3.93 4.29 5.16
## --------------------------------------------------------
## in.north: TRUE
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2.78 3.66 3.97 3.96 4.27 5.13
by(straw, in.north, summary)
## in.north: FALSE
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.66 6.11 6.76 6.75 7.32 8.85
## --------------------------------------------------------
## in.north: TRUE
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.10 5.73 6.14 6.28 6.86 8.64
by(grain, in.north, var)
## in.north: FALSE
## [1] 0.2216
## --------------------------------------------------------
## in.north: TRUE
## [1] 0.1988
by(straw, in.north, var)
## in.north: FALSE
## [1] 0.7478
## --------------------------------------------------------
## in.north: TRUE
## [1] 0.7598
Zadatak Testirajte da li je prinos slame na sjeveru veći nego na jugu.
Nul hipoteza je da su sredine iste.
t.test(straw[in.north], straw[!in.north])
##
## Welch Two Sample t-test
##
## data: straw[in.north] and straw[!in.north]
## t = -6.015, df = 498, p-value = 3.481e-09
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.6197 -0.3145
## sample estimates:
## mean of x mean of y
## 6.281 6.748
Rezultat pokazuje (p-value je jako mali) da hipotezu o jednakim srednjim vrijednostima treba odbacitil. Prema 95% intervalu povjerenja svega 2,5% je šanse da je razlika srednjih vrijednosti manja od 0.3145.
Pretpostavka je da su oba uzorka normalno i nezavisno distribuirana. Tada se može promjeniti t-test.
Provjerimo normalnost obje polovice prinosa slame koristeći Shapiro-Wilk test normalnosti
shapiro.test(straw[in.north])
##
## Shapiro-Wilk normality test
##
## data: straw[in.north]
## W = 0.9784, p-value = 0.0007567
shapiro.test(straw[!in.north])
##
## Shapiro-Wilk normality test
##
## data: straw[!in.north]
## W = 0.9917, p-value = 0.1737
Rezultati i vrijednosti p-value pokazuju da hipotezu o normalnosti prinosa slame na sjeveru treba odbaciti, a o prinosu na juga da je ne možemo odbaciti.
par(mfrow=c(1,2))
hist(straw[in.north], main ="Prinos slame na sjeveru")
hist(straw[!in.north], main = "Prinos slame na jugu")
par(mfrow=c(1,1))
Numerički rezultat testa shapiro histogrami
sugeriraju da je prinos
slame na jugu distribiuran po normalnoj razdiobi, no to ne možemo
tvrditi za prinos na sjeveru. To znači da se u rezultate Studentova t testa
na možemo pouzdati. No svejedno provedimo ga.
t.test(straw[in.north], straw[!in.north])
##
## Welch Two Sample t-test
##
## data: straw[in.north] and straw[!in.north]
## t = -6.015, df = 498, p-value = 3.481e-09
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.6197 -0.3145
## sample estimates:
## mean of x mean of y
## 6.281 6.748
Kada bi rezultati t-testa bilo pouzdani, a nisu, to mala vrijednost od p-value sugerira da hipotezu o jednakosti razdioba treba odbaciti.
Zadatak Izračunajte one-way ANOVA za prinos slame između sjevera i juga.
U rezultate provedbe ANOVA testa se, također, ne možemo pouzdati jer razdioba prinosa slame na sjeveru nije normalno distribuirana. No svejedno ga provedimo.
model.straw.ns = lm(straw ~ in.north, data = mhw)
summary(model.straw.ns)
##
## Call:
## lm(formula = straw ~ in.north, data = mhw)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.181 -0.608 -0.108 0.572 2.359
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.7484 0.0549 122.90 < 2e-16 ***
## in.northTRUE -0.4671 0.0777 -6.02 3.5e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.868 on 498 degrees of freedom
## Multiple R-squared: 0.0677, Adjusted R-squared: 0.0659
## F-statistic: 36.2 on 1 and 498 DF, p-value: 3.48e-09
anova(model.straw.ns)
## Analysis of Variance Table
##
## Response: straw
## Df Sum Sq Mean Sq F value Pr(>F)
## in.north 1 27 27.28 36.2 3.5e-09 ***
## Residuals 498 375 0.75
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Mala vrijednost vjerojatnosti u zadnjem stupcu znači da hipotezu o jednakosti razdiobi (tj. jednakosti srednjih vrijednosti) treba odbaciti.
Provjerimo pomoću testa Kolmogorov Smirnova da li su distribucije prinosa slame na sjeveru i jugu iste.
U ovom testu razdiobe ne trebaju biti normalne.
ks.test(straw[in.north], straw[!in.north])
## Warning: p-value will be approximate in the presence of ties
##
## Two-sample Kolmogorov-Smirnov test
##
## data: straw[in.north] and straw[!in.north]
## D = 0.28, p-value = 6.15e-09
## alternative hypothesis: two-sided
Mala vrijednost p-value znači da hipotezu o jednakosti distribucija treba odbaciti.