Bootstrap 1.

Bootstrap i jego zastosowanie

Bootstrap jest techniką statystyczną stosowaną w analizie danych do estymacji rozkładu próby lub parametrów populacji. Metoda ta polega na wielokrotnym losowaniu prób z powtórzeniami ze zbioru danych oryginalnego w celu tworzenia próbek bootstrapowych.Jego etapy to losowanie próbek, obliczanie statystyk, powtarzanie procesu i analiza otrzymanych wyników.

ZADANIE 2.

library(haven)
## Warning: pakiet 'haven' został zbudowany w wersji R 4.1.3
library(boot)
## Warning: pakiet 'boot' został zbudowany w wersji R 4.1.3
# I) Wczytanie danych i wygenerowanie próbki losowej
set.seed(123)
dane <- read_sav("dane.sav")
N <- nrow(dane)  # Liczba obserwacji w populacji
próbka <- sample(dane$Calkowite_wydatki_GD_GUS, 50)  # Wygenerowanie próbki losowej 50 obserwacji
print(próbka)
##  [1]   777.86  1750.40  2438.88  2574.16 13557.71  3347.28  1305.06  5916.10
##  [9]  1317.26  2442.89  1135.81   861.30  5644.05  2083.59  1545.61  3996.09
## [17]  1824.82  1108.60  1551.75  1927.04  2752.74  2382.20  3274.68  2906.30
## [25]   427.02   832.26  1839.04  3720.63  1491.98  2312.56  1999.53   946.06
## [33]   560.75  1899.14  1134.51   987.72  1717.79  1659.75  1274.51  1960.72
## [41]  2948.43  1462.69  1885.86  2365.98  1327.81   947.63   708.52  3433.73
## [49]  2510.97  1239.77

Wczytanie danych z pliku “dane.sav” i zapisanie liczby obserwacji w zmiennej jaką jest dochód na osobę. Następnie wygenerowanie próbki losowej o rozmiarze 50 przy użyciu funkcji sample().

# METODA KLASYCZNA
# Estymacja punktowa klasyczna
mean(dane$Calkowite_wydatki_GD_GUS)
## [1] 2068.324
sd(dane$Calkowite_wydatki_GD_GUS)
## [1] 1491.96

2068.324 to średnia. 1491.96 to odchylenie standardowe.

# Obliczenie błędu standardowego
bs<-sd(dane$Calkowite_wydatki_GD_GUS)/sqrt(length(dane$Calkowite_wydatki_GD_GUS))
print(bs)
## [1] 8.613403
# Obliczanie błędu standardowego względnego
bsw<-bs/mean(dane$Calkowite_wydatki_GD_GUS)
print(bsw)
## [1] 0.004164437

Obliczony metodą klasyczną błąd standardowy wynosi 8.613403, błąd standardowy względny 0,4164437%. Obie te wartości są niewielkie w kontekście badanego zjawiska.

# Estymacja przedziałowa klasyczna
mean(dane$Calkowite_wydatki_GD_GUS)-1.96*bs
## [1] 2051.441
mean(dane$Calkowite_wydatki_GD_GUS)+1.96*bs
## [1] 2085.206

Gorna krawędz, w której zawiera się parametr to 2051.441, a dolna 2085.206.

# METODA BOOTSTRAP
# Estymacja punktowa bootstrapowa
mean.oplaty=rep(0,999)
nobs=length(dane$Calkowite_wydatki_GD_GUS) 

 for (i in 1:999) 
{
 boot.data=sample(dane$Calkowite_wydatki_GD_GUS,nobs,replace=TRUE)
 mean.oplaty[i]=mean(boot.data)
 }
mean(boot.data)
## [1] 2064.1
sd(boot.data)
## [1] 1508.988

2080.454 to średnia. 1529.385 to odchylenie standardowe.

# Błąd standardowy
bs2<-sd(boot.data)/sqrt(length(boot.data))
print(bs2)
## [1] 8.711711
 # Błąd standardowy względny
bsw2<-bs/mean(boot.data)
print(bsw2)
## [1] 0.004172959

Obliczony metodą bootstrap błąd standardowy wynosi 8.711711, błąd standardowy względny 0,4172959%. Obie te wartości są niewielkie w kontekście badanego zjawiska.

# Procedura przedziałowej estymacji bootstrapowej
quantile(boot.data,0.975)
##   97.5% 
## 5599.41
quantile(boot.data,0.025)
##     2.5% 
## 568.6525
dolny<-mean(boot.data)-1.96*bs2
gorny<-mean(boot.data)+1.96*bs2
cbind(dolny,gorny)
##         dolny    gorny
## [1,] 2047.025 2081.175

Górny przedział to 2081.175, a dolny 2047.025.

# Statystyki dla bootstrap
mean.boot=function(Calkowite_wydatki_GD_GUS,idx) {
ans=mean(Calkowite_wydatki_GD_GUS[idx])
ans
}

calkowitewydatki.mean.boot = boot(dane$Calkowite_wydatki_GD_GUS,statistic=mean.boot, R=999)
class(calkowitewydatki.mean.boot)
## [1] "boot"
names(calkowitewydatki.mean.boot)
##  [1] "t0"        "t"         "R"         "data"      "seed"      "statistic"
##  [7] "sim"       "call"      "stype"     "strata"    "weights"
calkowitewydatki.mean.boot
## 
## ORDINARY NONPARAMETRIC BOOTSTRAP
## 
## 
## Call:
## boot(data = dane$Calkowite_wydatki_GD_GUS, statistic = mean.boot, 
##     R = 999)
## 
## 
## Bootstrap Statistics :
##     original    bias    std. error
## t1* 2068.324 0.5476152    8.470392
boot.ci(calkowitewydatki.mean.boot,conf=0.95,type=c("norm","perc"))
## BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
## Based on 999 bootstrap replicates
## 
## CALL : 
## boot.ci(boot.out = calkowitewydatki.mean.boot, conf = 0.95, type = c("norm", 
##     "perc"))
## 
## Intervals : 
## Level      Normal             Percentile     
## 95%   (2051, 2084 )   (2053, 2086 )  
## Calculations and Intervals on Original Scale

Podsumowanie

ŚREDNIA: 2068.324 metoda klasyczna; 2064.1 metoda bootstrap

ODCHYLENIE STANDARDOWE: 1491.96 metoda klasyczna; 1508.988 metoda bootstrap

BŁĄD STANDARDOWY: 8.613403 metoda klasyczna; 8.711711 metoda bootstrap

BŁĄD STANDARDOWY WZGLĘDNY: 0,4164437% metoda klasyczna; 0,4172959% metoda bootstrap

Jeśli chodzi o porównanie błędów, to błąd standardowy dla estymacji przedziałowej obliczony metodą bootstrap jest nieco większy niż ten obliczony metodą klasyczną.W błędach względnych sytuacja jest podobna, błąd obliczony bootstrapem jest większy niż ten policzony metodą klasyczną. Oznacza to, że w przypadku estymacji przedziałowej, metoda bootstrap może generować nieco większą zmienność w wynikach, choć w tym przypadku wyniki nie różnią się znacznie. Obie metody dają zbliżone wyniki dlatego w praktyce wybór metody może zależeć bardziej od kontekstu badawczego.

Kiedy lepiej jest używać metody bootstrap, a kiedy klacycznej?

Metoda bootstrap i estymacja klasyczna mają różne zastosowania i odpowiednie warunki użycia.Jednym z nich jest sytuacja, kiedy rozkład próbki jest nieznany lub nie spełnia założeń o normalności lub innych rozkładach. Wtedy należałoby wybrać bootstrap, ponieważ bootstrap nie wymaga założeń dotyczących rozkładu próbki.Podobnie w sytuacji gdy próbka jest mała i nie można stosować klasycznych założeń (np. t-testu) z powodu naruszenia na przykład założeń o normalności. Wybór estymacji klasycznej jest preferowany gdy rozkład próbki jest dobrze znany i spełnia założenia klasycznych testów statystycznych oraz gdy próbka jest na tyle duża, że możliwe jest zastosowanie aproksymacji normalnej do estymacji przedziałowej lub testowania hipotez. Jednak w badaniach warto porównać wyniki uzyskane za pomocą obu metod i ocenić, czy różnice są istotne lub czy obie metody prowadzą do podobnych wniosków.

Wyniki punktowe a przedziałowe?

Wyniki punktowe odnoszą się do jednej konkretnej wartości lub estymacji, która reprezentuje daną cechę lub parametr i są przydatne do podsumowania i porównywania danych, ale nie uwzględniają niepewności związanej z estymacją. Dlatego często stosuje się również wyniki przedziałowe, które z kolei odnoszą się do zakresu wartości, które prawdopodobnie obejmują prawdziwą wartość cechy lub parametru populacji, co czyni je bardziej wszechstronnymi niż punktowe.