Ik pas een lineair model toe op mijn gegevens: $$ y_ {i} = \ beta_ {0} + \ beta_ {1} x_ {i} + \ epsilon_ {i}, \ quad \ epsilon_ {i} \ sim N (0, \ sigma ^ {2}). $$
Ik zou het betrouwbaarheidsinterval (CI) van de coëfficiënten ($ \ beta_ {0} $, $ \ beta_ {1} $) willen schatten met de bootstrap-methode. Er zijn twee manieren waarop ik de bootstrap-methode kan toepassen:
-
Voorbeeld van gepaarde responsvoorspeller: steek steekproefsgewijs paren van $ y_ {i} -x_ {i} $ opnieuw in en pas lineair toe regressie bij elke run. Na $ m $ runs krijgen we een verzameling geschatte coëfficiënten $ {\ hat {\ beta_ {j}}}, j = 1, … m $. Bereken tenslotte het kwantiel van $ {\ hat {\ beta_ {j}}} $.
-
Voorbeeldfout: pas eerst lineaire regressie toe op de oorspronkelijk waargenomen gegevens, vanuit dit model we krijgen $ \ hat {\ beta_ {o}} $ en de fout $ \ epsilon_ {i} $. Voer daarna willekeurig een nieuwe sample van de fout $ \ epsilon ^ {*} _ {i} $ uit en bereken de nieuwe gegevens met $ \ hat {\ beta_ {o}} $ en $ y ^ {*} _ {i} = \ hat { \ beta_ {o}} x_ {i} + \ epsilon ^ {*} _ {i} $. Pas nogmaals lineaire regressie toe. Nadat $ m $ is uitgevoerd, krijgen we een verzameling geschatte coëfficiënten $ {\ hat {\ beta_ {j}}}, j = 1, …, m $. Bereken tenslotte het kwantiel van $ {\ hat {\ beta_ {j}}} $.
Mijn vragen zijn:
- Hoe verschillen deze twee methoden?
- Onder welke veronderstelling geven deze twee methoden hetzelfde resultaat?
Reacties
Antwoord
Als de respons-voorspeller-paren zijn verkregen uit een populatie door een willekeurige steekproef, is het veilig om case / random te gebruiken -x / uw eerste resampling-schema. Als voorspellers werden gecontroleerd voor, of de waarden van de voorspellers werden ingesteld door de experimentator, kunt u overwegen om residuaal / modelgebaseerd / fixed-x / your-second resampling-schema te gebruiken.
Hoe verschillen de twee? Een inleiding tot de bootstrap met toepassingen in R door Davison en Kounen heeft een discussie die betrekking heeft op deze vraag (zie p.9). Zie ook de R-code in deze bijlage door John Fox , met name functies boot.huber op p.5 voor het random-x schema en boot.huber.fixed op p. 10 voor het fixed-x-schema. Terwijl in de dictaten van Shalizi de twee schemas worden toegepast op verschillende datasets / problemen, illustreert de bijlage van Fox hoe weinig verschil de twee schemas vaak kunnen maken.
Wanneer kan worden verwacht dat de twee vrijwel identieke resultaten opleveren? Een situatie is wanneer het regressiemodel correct is gespecificeerd, bijv. er is geen ongemodelleerde niet-lineariteit en er is voldaan aan de gebruikelijke regressie-aannames (bijv. iid-fouten, geen uitschieters). Zie hoofdstuk 21 van Foxs book (waarin de eerder genoemde bijlage met de R-code indirect thuishoort), met name de discussie op pagina 598 en oefening 21.3. getiteld “Willekeurige versus vaste resampling in regressie”.Om uit het boek te citeren
By randomly reattaching resampled residuals to fitted values, the [fixed-x/model-based] procedure implicitly assumes that the errors are identically distributed. If, for example, the true errors have non-constant variance, then this property will not be reflected in the resampled residuals. Likewise, the unique impact of a high-leverage outlier will be lost to the resampling.
Je zult ook leren van die discussie waarom fixed-x bootstrap er impliciet van uitgaat dat de functionele vorm van het model correct is (hoewel er wordt geen aanname gedaan over de vorm van de foutverdeling).
Zie ook dia 12 van deze lezing voor Society of Actuaries in Ireland door Derek Bain. Het bevat ook een illustratie van wat als “hetzelfde resultaat” moet worden beschouwd:
The approach of re-sampling cases to generate pseudo data is the more usual form of bootstrapping. The approach is robust in that if an incorrect model is fitted an appropriate measure of parameter meter uncertainty is still obtained. However re sampling residuals is more efficient if the correct model has been fitted. The graphs shows both approaches in estimating the variance of a 26 point data sample mean and a 52 point sample mean. In the larger sample the two approaches are equivalent.
boot.ci(my.boot, type="basic")
inR
). Of mis ik hier iets?rms
validate
encalibrate
functies.