[R] Error message using boot.ci function

varin sacha v@r|n@@ch@ @end|ng |rom y@hoo@|r
Mon Mar 30 17:40:33 CEST 2020


Hi David,

Yes, you are right but it does not change anything to my problem. According to the error message, what I understand is that there is/are NAs values in "t". Using newdata <- na.omit(Dataset) I create new dataset without missing data, so I don't understand what is going on with these NAs values. 
I found on the Net (google search) Brian D. Ripley answers this : "Correct your 'statistic' function not to return NaN."
Ben Bolker in another website answers this : "This is caused by the combination of the default na.omit setting and the fact that refit is trying to account for omitted values."
So, instead of na.omit(Dataset) I have tried with newdata<- na.exclude(Dataset). It does not work !

I am lost ...

 
# # # # # # # # # # # # # # # # # # # ## # # # # # # # # # # # # # #
bmi=c(23,43,21,23,45,65,45,11,12,13,23,34,NA,NA,34,35,45,65,43,23,12,11,15,43,23,88,78,79,89,89,99,43,21,34,32,45,65,76,56,45,34,23,12,32)
glucose=c(NA,12,23,11,12,21,23,21,23,43,23,12,NA,23,11,12,32,12,14,12,11,10,9,8,9,8,7,90,76,32,12,11,12,23,11,123,32,12,14,34,54,65,76,87)
crp=c(123,212,154,342,123,111,121,765,453,123,213,211,NA,NA,32,123,213,145,143,123,132,143,165,176,181,123,87,567,342,123,143,132,143,234,345,32,123,132,143,345,321,543,231,123)
age=c(67,45,34,56,87,NA,NA,23,18,65,45,87,65,33,23,65,43,23,43,12,132,56,76,87,98,78,76,56,78,54,34,56,76,99,12,45,34,65,76,87,98,97,64,53)
sex=c(0,1,1,0,1,0,1,0,0,1,1,1,NA,NA,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0)

Dataset=data.frame( bmi,glucose,crp,age,sex)
newdata=na.omit(Dataset)

#install.packages( "robustbase",dependencies=TRUE )
#install.packages( "boot",dependencies=TRUE )
library(boot)
library(robustbase)

 # function to obtain MSE
 MSE <- function(data, indices, formula,method) {
    d <- data[indices, ] # allows boot to select sample
    fit <- lmrob(formula, data = d, method="MM")
    ypred <- predict(fit)
   mean((d[["fastMM"]]-ypred)^2)

 }

 # bootstrapping with 100 replications
 results <- boot(data = newdata, statistic = MSE,
                  R = 100, formula = crp ~ bmi+glucose+age+sex,method="MM")

str(results)
boot.ci(results, type="norm" )

str(Dataset)
str(newdata)
summary(results$t)
# # # # # # # # # # # # # # # # # # # # # # # # #






Le lundi 30 mars 2020 à 16:56:57 UTC+2, David Winsemius <dwinsemius using comcast.net> a écrit : 






On 3/30/20 2:45 AM, varin sacha wrote:
> Many thanks David,
>
> But I am not sure the Dataset and newdata are the real problem. I have solved, at least I think so, what you were asking. Here below my new R code but still the same error message. IMHO the problem is with "boot.ci" function...
>
> # # # # # # # # # # # # # # # # # # # ## # # # # # # # # # # # # # #
> bmi=c(23,43,21,23,45,65,45,11,12,13,23,34,NA,NA,34,35,45,65,43,23,12,11,15,43,23,88,78,79,89,89,99,43,21,34,32,45,65,76,56,45,34,23,12,32)
> glucose=c(NA,12,23,11,12,21,23,21,23,43,23,12,NA,23,11,12,32,12,14,12,11,10,9,8,9,8,7,90,76,32,12,11,12,23,11,123,32,12,14,34,54,65,76,87)
> crp=c(123,212,154,342,123,111,121,765,453,123,213,211,NA,NA,32,123,213,145,143,123,132,143,165,176,181,123,87,567,342,123,143,132,143,234,345,32,123,132,143,345,321,543,231,123)
> age=c(67,45,34,56,87,NA,NA,23,18,65,45,87,65,33,23,65,43,23,43,12,132,56,76,87,98,78,76,56,78,54,34,56,76,99,12,45,34,65,76,87,98,97,64,53)
> sex=c(0,1,1,0,1,0,1,0,0,1,1,1,NA,NA,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0)
>
> Dataset=data.frame( bmi,glucose,crp,age,sex)
> newdata=na.omit(Dataset)
>
> #install.packages( "robustbase",dependencies=TRUE )
> #install.packages( "boot",dependencies=TRUE )
> library(boot)
> library(robustbase)
>
>   # function to obtain MSE
>   MSE <- function(data, indices, formula,method) {
>      d <- data[indices, ] # allows boot to select sample
>      fastMM <- lmrob( crp ~ bmi+glucose+age+sex,data=newdata)
>      fit <- lmrob(formula, data = d, method="MM")
>      ypred <- predict(fit)
>     mean((d[["fastMM"]]-ypred)^2)

At this point I do not see any reason for assuming there is a column in 
the d-object with the name "fastMM".



-- 

David

>
>   }
>
>   # bootstrapping with 100 replications
>   results <- boot(data = newdata, statistic = MSE,
>                    R = 100, formula = crp ~ bmi+glucose+age+sex,method="MM")
>
> str(results)
> boot.ci(results, type="norm" )
>
> str(Dataset)
> str(newdata)
> summary(results$t)
> # # # # # # # # # # # # # # # # # # # # # # # # #
>
>
>
>
>
>
>
> Le lundi 30 mars 2020 à 00:40:33 UTC+2, David Winsemius <dwinsemius using comcast.net> a écrit :
>
>
>
>
>
>
> On 3/28/20 12:25 PM, varin sacha via R-help wrote:
>> Dear R-experts,
>>
>> Here below my "toy" reproducible example showing many warnings and an error message. What I am interested in is the error message.
>> Of course I can access and view the results doing : summary(results$t) to give me an idea of what is going on. But I don't know how to correct/solve my problem. Any help to solve my problem would be highly appreciated.
>
> I do suggest you look at:
>
>
> str(Dataset)
>
> str(newdata)
>
>
> The problem is actually in your construction of Dataset. Do not quote
> object names next time.
>



More information about the R-help mailing list