Matematiska institutionen Chalmers Tekniska Högskola och Göteborgs Universitet

Statistisk databehandling ht 95

LL 1 : Deskriptiv statistik med S^{+}

Uppgift 1

I filerna LL1-fil1.dat och LL1-fil2.dat finns 100 resp. 10000 observationer av en stokastisk variabel med okänd fördelningsfunktion F.

a) Beräkna medelvärde, stickprovsvarians, minsta värde, undre kvartil, median, övre kvartil och största värde för datamaterialen. Gör även histogram och lådagram.

b) Undersök om datamaterialen är normalfördelade genom att plotta data på normalfördelningspapper och jämföra resultaten med räta linjer: Detta göres i Splus mha. kommandona qqnorm(w); qqline(w) (där w är en vektor med data). Låt för att underlätta jämförelse Splus skapa två datamaterial med 100 resp. 10000 observationer av en normalfördelning vars väntevärde och varians ges av medelvärdena och stickprovsvarianserna för data i LL1-fil1.dat resp. LL1-fil2.dat [utnyttja tex. Splusfunktionen rnorm()]. Plotta sedan även dessa data på normalfördelningspapper.

Uppgift 2

Då datamaterialet i uppgift 1 härstammar från en studie av materialhållfasthet finns det teoretiska skäl misstänka att Weibull-fördelning föreligger;

F (t) = 1 − exp(−(a t)^{b}), t > 0.

Att maximum-likelihood-skatta a och b är svårt då likelihood-ekvationerna ej kan lösas explicit. Istället kan skattning ske enligt följande recept: Om w_{(1)} ≤ ... ≤ w_{(n)} är det ursprungliga datamaterialet w_{1}, ..., w_{n} ordnat i växande ordning så är det välkänt att

F (w_{(i)}) ≈ (i − 0.5)/n för i = 1, ..., n.

Substitution med ovanstående uttryck för F och upprepad (naturlig) logaritmering ger

b log(a) + b log(w_{(i)}) = log[− log(1 − F (w_{(i)}))] ≈ log[− log(1 − (i − 0.5)/n)].

Om vi inför de nya variablerna (gör transformationerna)

x_{i} ≡ log(w_{(i)}) och y_{i} ≡ log[− log(1 − (i − 0.5)/n)]

fås den linjära ekvationen

b log(a) + bx_{i} = y_{i}.

Vi kan därför skatta a och b genom att göra linjär regression för dataparen {(x_{i}, y_{i})}_{i=1}^{n}.

a) Utför ovan beskrivna skattning av a och b för data i LL1-fil1.dat och LL1-fil2.dat. Man kan tex. utnyttja funktionen lsfit() i Splus på följande sätt

x <- log(sort(w))
p <- ppoints(n, 0.5)
y <- log(-log(1-p))
reg1 <- lsfit(x, y, intercept=T)$coef
print(reg1)

Det andra kommandot bildar vektorn p = ((1 − 0.5)/n, ..., (n − 0.5)/n). Det fjärde kommandot utför den linjära regressionen y = α + βx samt sparar parameterskattningarna α och β i vektorn (matrisen) reg1.

b) Undersök om datamaterialen LL1-fil1.dat och LL1-fil2.dat är Weibullfördelade genom att plotta data på Weibull-papper svarande mot den Weibull-fördelning som anpassades i uppgift a) och sedan jämföra resultaten med räta linjer: Om a = exp{α/β} och b = β är de skattade Weibull-parametervärdena göres en sådan Weibull-plott i Splus tex. mha. kommandona

plot1 <- qqplot(sort(w), (-log(1-p))**(1/b)/a)
abline(rreg(plot1$x,plot1$y))

Låt för att underlätta jämförelse Splus skapa två datamaterial med 100 resp. 10000 observationer av en Weibull-fördelning vars parametrar a och b ges av skattningarna från uppgift a). Plotta sedan även dessa data på (samma sorts) Weibull-papper (som data i filerna LL1-fil1.dat och LL1-fil2.dat).