Rasmus Bååth
31/03/2014

Om vi upprepade gånger hade gjort om ett experiment hur annorlunda hade vår summeringsstatistik varit gång till gång?
Alternativt, vad är distributionen av vår summeringsstatistik om vi hade upprepat experimentet?
http://onlinestatbook.com/stat_sim/ samp_dist_js/index.html
Gör i grupp ~5 min.
![]()
![]()

mean, median eller sd.resample för att skapa ett resample av vår datatabell.do(...) för att upprepa detta många gånger.Säg jag är intresserad av proportionen röda bilar i Ahlgrens bilar. Jag kodar röda som 1 och gröna och vita som 0.
candy <- rep(c(1, 0), c(48, 81))
mean(candy)
[1] 0.3721
resample(candy) drar ett stickprov från ett dataset med samma storlek men med “replacement”, samma datapunkt kan förekomma många gånger.
library(mosaic)
resample(candy)
[1] 0 0 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0
[36] 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0
[71] 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1
[106] 0 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0
resample(candy)
[1] 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 0 0 1 1 1
[36] 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 0 1 0 0
[71] 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 1 0
[106] 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1
Om vi tar ett resample och räknar ut vår summeringsstatistik upprepade gånger. Spridningen reflekterar osäkerheten.
mean(resample(candy))
[1] 0.4186
mean(resample(candy))
[1] 0.3876
mean(resample(candy))
[1] 0.3411
do(3) * mean(resample(candy))
result
1 0.4264
2 0.3488
3 0.3566
För ett bootstrap CI bör du ha minst 1000 upprepningar och helst så många som möjligt.
boot <- do(1000) * mean(resample(candy))
head(boot)
result
1 0.3953
2 0.3643
3 0.4031
4 0.3411
5 0.3643
6 0.3643
sd(boot)
[1] 0.04196
För ett quantile bootstrap intervall, ett covarage intervall för bootstrap distributionen:
qdata(c(0.025, 0.975), boot)
quantile p
2.5% 0.2868 0.025
97.5% 0.4496 0.975
Eller med antagandet att bootstrap distributionen är normalfördelad:
confint(boot)
name lower upper level method estimate margin.of.error
1 result 0.2889 0.4536 0.95 stderr 0.3712 0.08234
Vi kan också titta på bootstrap distributionen:
histogram(~ result, data=boot)
d <- read.csv("../03_25/rt_experiment.csv")
boot <- do(1000) * median(rt ~ group, data=resample(d) )
qdata(c(0.025, 0.975), boot$A)
quantile p
2.5% 0.299 0.025
97.5% 0.560 0.975
qdata(c(0.025, 0.975), boot$B)
quantile p
2.5% 0.286 0.025
97.5% 0.375 0.975
head(boot)
A B
1 0.3200 0.2910
2 0.3200 0.3200
3 0.3095 0.2910
4 0.3600 0.2910
5 0.4000 0.3200
6 0.3530 0.3456
qdata(c(0.025, 0.975), boot$A - boot$B)
quantile p
2.5% -0.0453 0.025
97.5% 0.2400 0.975
Det funkar nästan alltid för vilken summeringsstatistik som helst! Nästan…
min och max.The infants looked more at the picture of their mother than the picture of the stranger in 75% of the trials ( 95% CI [65%, 89%])
Compared to the group that drank decaf, the group than drank coffe prior to the test scored on average 10 points higher (95% CI[4.5, 14.8]).
Regarding the time spent on the task there was no significant different between male and the female participants (M = 7.2 s, 95% CI [-6.2, 14.3])
The proportion of red cars was 0.37 (95% CI [0.29, 0.45])
All confidence intervals reported are 95% quantile bootstrap intervals constructed using 10,000 resamples (Efron, 1979).
Efron, B. (1979). Bootstrap methods: another look at the jackknife. The annals of Statistics, 1-26.
do skapar olika sorters tabeller beroende vilken sorts operation du kombinerar do med.
Om do kombineras med en uttryck som resulterar i ett nummer skapar do en data frame med en kollumn som heter result.
s <- do(100) * mean(resample(candy))
head(s)
result
1 0.4729
2 0.4264
3 0.3411
4 0.3953
5 0.3488
6 0.2868
s <- do(100) * mean(resample(candy))
histogram(~ result, data=s)
Om do kombineras med en mer komplext uttryck så får man kolla på resultatet med head eller testa med några få repititioner först.
do(3) * mm(rt ~ group, d)
A B sigma r.squared
1 0.3991 0.3252 0.09122 0.1563
2 0.3991 0.3252 0.09122 0.1563
3 0.3991 0.3252 0.09122 0.1563
head(s)
result
1 0.3256
2 0.3876
3 0.2868
4 0.3411
5 0.3876
6 0.3876