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.