Statistiek-1 + R

1-factor

» Start

Anova: 1-factor model


    # lees data

> bron <- "http://www.mzandee.net/~zandee/statistiek/data/haemo.txt"

> ziek <- read.table(bron, header=T)

> attach(ziek)

> names(ziek)

    [1] "haemo"  "ziekte"

    > ziek

    haemo ziekte

    1     13      A

    2     13      A

    3     15      A

    4     12      A

    5      9      B

    6     10      B

    7     11      B

    8     10      B

    9     10      B

    10     7      C

    11     6      C

    12     6      C

    13     8      C

    

    # doe 1-factor variantieanalyse

    > anova(aov(haemo~ziekte, data=ziek))

    Analysis of Variance Table

    

    Response: haemo


Df

Sum Sq

Mean Sq

F value

 Pr(>F)

ziekte

2

84.50

42.25

44.474

1.054e-05 **

Residuals

10

9.50

0.95



    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 


en nu 'op het handje' in R...


    # laat totaal-kwadraatsom grafisch zien

    plot(1:13,haemo,ylim=c(5,16), ylab="y",xlab="volgorde")

    abline(mean(haemo),0)

    for(i in 1:13) lines(c(i,i),c(mean(haemo),haemo[i]))

    plot(1:13,haemo,ylim=c(5,16), type="n", ylab="y",xlab="volgorde")

    haemo-SST.pdf

    # bereken totaal kwadraatsom

    sst <- sum((haemo-mean(haemo))^2)

    sst # = variatie veroorzaakt door ziekten + residu

    [1] 94 # klopt ! [zie anova-tabel]

   

    # laat binnen-kwadraatsom grafisch zien

    points(1:4, haemo[ziekte=="A"], pch=1)

    points(5:9, haemo[ziekte=="B"], pch=16)

    points(10:13, haemo[ziekte=="C"], pch=8)

    

    abline(mean(haemo[ziekte=="A"]),0)

    abline(mean(haemo[ziekte=="B"]),0)

    abline(mean(haemo[ziekte=="C"]),0)

    

    for(i in 1:4) lines(c(i,i),c(mean(haemo[ziekte=="A"]),haemo[ziekte=="A"][i]))

    for(i in 1:4) lines(c(i+4,i+4),c(mean(haemo[ziekte=="B"]),haemo[ziekte=="B"][i]))

    for(i in 1:4) lines(c(i+9,i+9),c(mean(haemo[ziekte=="C"]),haemo[ziekte=="C"][i]))

    haemo-SSW.pdf

# bereken binnen kwadraatsommen

ssa <- sum((haemo[ziekte=="A"]-mean(haemo[ziekte=="A"]))^2)

ssa

[1] 4.75

    

ssb <-sum((haemo[ziekte=="B"]-mean(haemo[ziekte=="B"]))^2)

ssb

[1] 2

ssc <- sum((haemo[ziekte=="C"]-mean(haemo[ziekte=="C"]))^2)

ssc

[1] 2.75

    

residu <- ssa + ssb + ssc

residu

[1] 9.5 # klopt !


Bron:

Buijs, A. - Statistiek om mee te werken. Stenfert Kroese, Groningen (2003)

Crawley, M.J. - Statistics. An introduction using R. Wiley, Hoboken, NJ, USA (2005)