9 Bivariate modelling: continuous response, classified predictor

9 bivarijantno modeliranje: kontinuirani output, diskretni input

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)

plot of chunk unnamed-chunk-5

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()

plot of chunk unnamed-chunk-6

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)

plot of chunk unnamed-chunk-7

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.

t-test, dva uzorka

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.

t-test za utvriđivanje jednakosti dva uzorka.

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")

plot of chunk unnamed-chunk-11

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.

One-way ANOVA

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.

Test Kolmogorov Smirnova o jednakosti prinosa slame na sjeveru i jugu

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.