Hi Rui, Many thanks... it perfectly works !!!!
Best, Sacha Le dimanche 22 mars 2020 à 11:02:49 UTC+1, Rui Barradas <ruipbarra...@sapo.pt> a écrit : Correction: In MSE modmat <- model.matrix(as.formula(formula), data = d) doesn't need as.formula, it should be modmat <- model.matrix(formula, data = d) Sorry, rui Barradas Às 09:59 de 22/03/20, Rui Barradas escreveu: > Hello, > > 1. There is no need to install package 'boot', it's a base package. > 2. The question. > > The problem is that FastTau returns an object of class "list" and there > is no 'predict' method for lists, you will have to define your own. > This is easy, it's just a matrix multiply. > And you are not calling FastTau correctly, see the function > documentation and the new MSE function below. > > > > MSE <- function(data, indices, formula){ > predfun <- function(object, model){ > beta <- object[["beta"]] > as.vector(model %*% beta) > } > d <- data[indices, ] # allows boot to select sample > modmat <- model.matrix(as.formula(formula), data = d) > fit <- FastTau(x = modmat, y = d[["y_obs"]]) > ypred <- predfun(fit, modmat) > mean((d[["y_obs"]]-ypred)^2) > } > > # Make the results reproducible > set.seed(1234) > # bootstrapping with 10 replications > results <- boot(data = df, statistic = MSE, > R = 10, formula = ~b+z+a) > > type <- c("norm","basic", "stud", "perc", "bca") > boot.ci(results, type = type[-5]) > > > Hope this helps, > > Rui Barradas > > Às 23:14 de 21/03/20, varin sacha via R-help escreveu: >> Dear R-helpers, >> >> Another problem with FastTau function from the RobPer packages. Any >> solution to solve my problem would be highly appreciated. >> >> >> # # # # # # # # # # # # # # # # # # # # # # # # >> install.packages( "boot",dependencies=TRUE ) >> install.packages( "RobPer",dependencies=TRUE ) >> >> library(boot) >> library(RobPer) >> >> n<-200 >> b<-runif(n, 0, 5) >> z <- rnorm(n, 2, 3) >> a <- runif(n, 0, 5) >> >> y_model<- 0.1*b - 0.5 * z - a + 10 >> y_obs <- y_model +c( rnorm(n*0.9, 0, 0.1), rnorm(n*0.1, 0, 0.5) ) >> df<-data.frame(b,z,a,y_obs) >> >> # function to obtain MSE >> MSE <- function(data, indices, formula){ >> d <- data[indices, ] # allows boot to select sample >> fit <- FastTau(formula, data = d) >> ypred <- predict(fit) >> mean((d[["y_obs"]]-ypred)^2) >> } >> # Make the results reproducible >> set.seed(1234) >> # bootstrapping with 600 replications >> results <- boot(data = df, statistic = MSE, >> R = 600, formula = model.matrix(~b+z+a)) >> str(results) >> >> boot.ci(results, type="bca" ) >> # # # # # # # # # # # # # # # # # # # # # # # # # >> >> ______________________________________________ >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. >> > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.