Pasikliautinųjų intervalų (PI) skaičiavimas pasirinktu savirankos metodu (angl. statistical bootstrap). Funkcija ci_boot() yra patobulintas DescTools::BootCI() variantas. Rezultatas – duomenų lentelė.

ci_boot(.data, x, y = NULL, conf.level = 0.95, ...)

Arguments

.data

Duomenų lentelė.

x, y

Stulpelio pavadinimas (be kabučių).

conf.level

Pasikliovimo lygmuo. Numatytoji reikšmė – 0.95.

...

Kiti parametrai, kuriuos priima DescTools::BootCI(), tarp kurių:

  1. FUN – funkcija, kurios rezultatui skaičiuojami PI.

  2. bci.method – intervalų sudarymo metodai:

    • "perc" – procentilių metodas,

    • "bca" – koreguotasis procentilių metodas BCa (angl. bias-corrected and accelerated) – pastaba dėl metodo naudojimo žemiau,

    • kiti.

  3. R – replikacijų (pakartojimų) skaičius. Įprastai turi būti tarp 1'000 ir 10'000.

Value

Rezultatas – duomenų lentelė, su pasikliautinaisiais intervalais. Stulpelių skaičius ir pavadinimai priklauso nuo funkcijos argumentų reikšmių ir sugrupavimo:

  • Jei duomenų lentelė grupuotoji, pirmųjų stulpelių pavadinimai sutampa su grupavimo kintamųjų pavadinimais.

  • Stulpelio pavadinimas, sutampantis su skaičiuojamos statistikos pavadinimu (argumento FUN reikšme). Jame yra skaičiuojamos statistikos įvertis.

  • lwr.ci, upr.ci – (lower CI, upper CI) apatinė ir viršutinė pasikliautinojo intervalo ribos.

Details

Ši funkcija naudojama panašiai, kaip DescTools::BootCI(), bet:

  • pirmas argumentas yra duomenų lentelė;

  • argumentai x (ir, jei reikia, y) – stulpelių pavadinimai – nurodomi be kabučių;

  • funkcija reaguoja į dplyr::group_by(), tad skaičiavimus gali atlikti pogrupiams;

  • rezultatas – duomenų lentelė. Todėl rezultatą galima patogiai braižyti naudojant ggplot2.

Note

PASTABOS!

  1. Savirankos metodams kiekvienos grupės dydis turėtų būti bent 20.

  2. Norėdami gauti atkartojamus rezultatus naudokite set.seed().

  3. Naudojant bci.method = "bca" ir gavus įspėjimą „extreme order statistics used as endpoints“ reiktų žinoti, kad BCa metodas šiai situacijai netinka ir reiktų naudoti kitą, pvz., "perc" (https://rcompanion.org/handbook/E_04.html).

Examples

data(iris, package = "datasets")
head(iris)
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> 1          5.1         3.5          1.4         0.2  setosa
#> 2          4.9         3.0          1.4         0.2  setosa
#> 3          4.7         3.2          1.3         0.2  setosa
#> 4          4.6         3.1          1.5         0.2  setosa
#> 5          5.0         3.6          1.4         0.2  setosa
#> 6          5.4         3.9          1.7         0.4  setosa

set.seed(1) # Atkartojamumui

# Medianos PI iš 1000 pakartojimų,
# BCa metodas
ci_boot(iris, Petal.Length, FUN = median, R = 1000, bci.method = "bca")
#> # A tibble: 1 × 3
#>   median lwr.ci upr.ci
#>    <dbl>  <dbl>  <dbl>
#> 1   4.35      4    4.6

# Naudojamas jungimo operatorius
iris |>
  ci_boot(Petal.Length, FUN = median, R = 1000, bci.method = "bca")
#> # A tibble: 1 × 3
#>   median lwr.ci upr.ci
#>    <dbl>  <dbl>  <dbl>
#> 1   4.35      4   4.55

# PI skaičiavimas kiekvienai grupei atskirai
iris |>
  dplyr::group_by(Species) |>
  ci_boot(Petal.Length, FUN = median, R = 1000, bci.method = "bca")
#> # A tibble: 3 × 4
#>   Species    median lwr.ci upr.ci
#>   <fct>       <dbl>  <dbl>  <dbl>
#> 1 setosa       1.5     1.4   1.5 
#> 2 versicolor   4.35    4.1   4.5 
#> 3 virginica    5.55    5.2   5.65

# Medianos PI iš 1000 pakartojimų, procentilių metodas
iris |>
  dplyr::group_by(Species) |>
  ci_boot(Petal.Length, FUN = median, R = 1000, bci.method = "perc")
#> # A tibble: 3 × 4
#>   Species    median lwr.ci upr.ci
#>   <fct>       <dbl>  <dbl>  <dbl>
#> 1 setosa       1.5     1.4    1.5
#> 2 versicolor   4.35    4.1    4.5
#> 3 virginica    5.55    5.3    5.7

# PI skaičiavimas, nurodant funkcijos `median()`
# argumentą `na.rm = TRUE`
med_pi_gr <-
  iris |>
  dplyr::group_by(Species) |>
  ci_boot(
    Petal.Length,
    FUN = median, na.rm = TRUE,
    R = 1000, bci.method = "bca"
  )
med_pi_gr
#> # A tibble: 3 × 4
#>   Species    median lwr.ci upr.ci
#>   <fct>       <dbl>  <dbl>  <dbl>
#> 1 setosa       1.5     1.4   1.5 
#> 2 versicolor   4.35    4.1   4.5 
#> 3 virginica    5.55    5.2   5.65

# Dviejų kintamųjų funkcijoms pavyzdys:
# Spearman koreliacijos koeficientas
# (method = "spearman" yra cor() argumentas)
spearman_pi_gr <-
  iris |>
  dplyr::group_by(Species) |>
  ci_boot(
    Petal.Length, Petal.Width,
    FUN = cor, method = "spearman",
    R = 1000, bci.method = "bca"
  )
spearman_pi_gr
#> # A tibble: 3 × 4
#>   Species      cor  lwr.ci upr.ci
#>   <fct>      <dbl>   <dbl>  <dbl>
#> 1 setosa     0.271 -0.0155  0.496
#> 2 versicolor 0.787  0.617   0.877
#> 3 virginica  0.363  0.0988  0.565

# Dviejų kintamųjų funkcijoms pavyzdys:
# Pearson koreliacijos koeficientas
# (method = "pearson" yra cor() argumentas)
pearson_pi_gr <-
  iris |>
  dplyr::group_by(Species) |>
  ci_boot(
    Petal.Length, Petal.Width,
    FUN = cor, method = "pearson",
    R = 1000, bci.method = "bca"
  )
pearson_pi_gr
#> # A tibble: 3 × 4
#>   Species      cor lwr.ci upr.ci
#>   <fct>      <dbl>  <dbl>  <dbl>
#> 1 setosa     0.332 0.0846  0.533
#> 2 versicolor 0.787 0.664   0.866
#> 3 virginica  0.322 0.107   0.497