# [R] Request for some help about uncertainty analysis using bootstrap approach

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Tue May 31 13:03:18 CEST 2022

```Hello,

You can use package boot to bootstrap the statistic for you.
Write a function to compute the new column and assign the column means
to the new variable Z or, like in the code below Z2 (so that you can
compare to the Z column of simple averages).

library(dplyr)
library(boot)

boot_uncert <- function(data, indices) {
data[indices, ] %>%
group_by(Group) %>%
mutate(Y = mean(X, na.rm = TRUE),
Z = coalesce(X, Y)) %>%
pull(Z)
}

Df1 <- Df1 %>%
group_by(Group) %>%
mutate(Y = mean(X, na.rm = TRUE),
Z = coalesce(X, Y)) %>%
ungroup()

set.seed(2022)
R <- 1e3

Df1 %>%
mutate(Z2 = colMeans(boot(., boot_uncert, R = R)\$t, na.rm = TRUE),
Z2 = coalesce(X, Z2))

Hope this helps,

Às 22:23 de 29/05/2022, Bhaskar Mitra escreveu:
> Hello Everyone,
>
> I have a query about uncertainty analysis and would really appreciate some
> help  in this regard.
>
> I intend to gapfill the NAs in the “X” column of the dataframe (Df1). I
> have grouped the data using the column “Group” ,
> determined the mean and generated the “Z” column.
>
> While I am using the mean and standard error approach to generate the
> uncertainty analysis, can we use the bootstrap approach to
> generate the uncertainty for the “Z” column? Any help in this regard will
> be really appreciated.
>
> Regards,
> ---------------------------------------------------------------
>
> Df1 <-
>
> Group     X            Y    Z
> 1           2              3     2
> 1          NA            3     3
> 1            3             3     3
> 1           4              3    4
> 2            2             2    1
> 2          NA            2    3
> 2           NA           2    3
> 2            4             2    4
> 3             2            2    2
> 3         NA             2     2
> 3              2           2     2
>
> -------------------------------------------------------------------------------
> Codes:
>
> Df1 <- Df1 %>% group_by(Group) %>% summarise(Y= mean(X), na.rm=T)
>
> Df1  <- Df1%>% mutate(Z= coalesce(X,Y))
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help