No predict method for hbrfit

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

No predict method for hbrfit

R help mailing list-2
Dear R-helpers,

Using the HBR (high breakdown rank-based) robust estimator and the hbrfit function, I get an error saying Error in UseMethod("predict") for hbrfit. How can I solve the problem ? Many thanks for your help.

# # # # # # # # # # # # # # # # # # # # # # # #
install.packages( "robustbase",dependencies=TRUE )
install.packages( "boot",dependencies=TRUE )
install.packages( "MASS",dependencies=TRUE  )
install.packages( "quantreg",dependencies=TRUE  )
install.packages( "RobPer",dependencies=TRUE  )
install_github("kloke/hbrfit")
install.packages('http://www.stat.wmich.edu/mckean/Stat666/Pkgs/npsmReg2_0.1.1.tar.gz')
install.packages( "RobStatTM",dependencies=TRUE )

library(boot)
library(robustbase)
library(MASS)
library(quantreg)
library(RobPer)
library(hbrfit)
library(RobStatTM)

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 <- hbrfit(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 = y_obs ~ b+z+a)
str(results)

boot.ci(results, type="bca" )
# # # # # # # # # # # # # # # # # # # # # # # # #

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: No predict method for hbrfit

Jeff Newmiller
Don't use packages that haven't been maintained. Or correspond with the author. Or, fix them yourself.

On March 21, 2020 4:09:13 PM PDT, varin sacha via R-help <[hidden email]> wrote:

>Dear R-helpers,
>
>Using the HBR (high breakdown rank-based) robust estimator and the
>hbrfit function, I get an error saying Error in UseMethod("predict")
>for hbrfit. How can I solve the problem ? Many thanks for your help.
>
># # # # # # # # # # # # # # # # # # # # # # # #
>install.packages( "robustbase",dependencies=TRUE )
>install.packages( "boot",dependencies=TRUE )
>install.packages( "MASS",dependencies=TRUE  )
>install.packages( "quantreg",dependencies=TRUE  )
>install.packages( "RobPer",dependencies=TRUE  )
>install_github("kloke/hbrfit")
>install.packages('http://www.stat.wmich.edu/mckean/Stat666/Pkgs/npsmReg2_0.1.1.tar.gz')
>
>install.packages( "RobStatTM",dependencies=TRUE )
>
>library(boot)
>library(robustbase)
>library(MASS)
>library(quantreg)
>library(RobPer)
>library(hbrfit)
>library(RobStatTM)
>
>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 <- hbrfit(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 = y_obs ~ b+z+a)
>str(results)
>
>boot.ci(results, type="bca" )
># # # # # # # # # # # # # # # # # # # # # # # # #
>
>______________________________________________
>[hidden email] 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.

--
Sent from my phone. Please excuse my brevity.

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: No predict method for hbrfit

David Winsemius
In reply to this post by R help mailing list-2

On 3/21/20 4:09 PM, varin sacha via R-help wrote:
> Dear R-helpers,
>
> Using the HBR (high breakdown rank-based) robust estimator and the hbrfit function, I get an error saying Error in UseMethod("predict") for hbrfit. How can I solve the problem ? Many thanks for your help.


What makes you think there is a predict method for objects returned by
hbrfit?

(I'm also puzzled how one would construct such a prediction. How would
one construct an estimate of something based on a weighted Wilcoxon
scale when the weighting depends on the original data? What weights
would apply to the new data?)


I do note that there are residuals in the object returned from
https://github.com/kloke/hbrfit/blob/master/R/hbrfit.R


Perhaps you can do something with that?

--

David


>
> # # # # # # # # # # # # # # # # # # # # # # # #
> install.packages( "robustbase",dependencies=TRUE )
> install.packages( "boot",dependencies=TRUE )
> install.packages( "MASS",dependencies=TRUE  )
> install.packages( "quantreg",dependencies=TRUE  )
> install.packages( "RobPer",dependencies=TRUE  )
> install_github("kloke/hbrfit")
> install.packages('http://www.stat.wmich.edu/mckean/Stat666/Pkgs/npsmReg2_0.1.1.tar.gz')
> install.packages( "RobStatTM",dependencies=TRUE )
>
> library(boot)
> library(robustbase)
> library(MASS)
> library(quantreg)
> library(RobPer)
> library(hbrfit)
> library(RobStatTM)
>
> 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 <- hbrfit(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 = y_obs ~ b+z+a)
> str(results)
>
> boot.ci(results, type="bca" )
> # # # # # # # # # # # # # # # # # # # # # # # # #
>
> ______________________________________________
> [hidden email] 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.

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: No predict method for hbrfit

R help mailing list-2
Hi Jeff,
Hi David,

Thanks for your responses. As the predict function does not work with hbrfit, I have tried  something without the predict function. There is an error message (Error in .subset2(x, i, exact = exact)) unclear to me. Many thanks for your help.

# # # # # # # # # # # # # # # # # # # # # # # #
install.packages( "boot",dependencies=TRUE )
install_github("kloke/hbrfit")
install.packages('http://www.stat.wmich.edu/mckean/Stat666/Pkgs/npsmReg2_0.1.1.tar.gz')
install.packages( "robustbase",dependencies=TRUE )
install.packages( "quantreg",dependencies=TRUE  )

library(robustbase)
library(quantreg)
library(boot)
library(hbrfit)

n<-50
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)
HBR<-hbrfit(y_obs ~ b+z+a)

# function to obtain MSE
MSE <- function(data, indices, formula) {
    d <- data[indices, ] # allows boot to select sample
    fit <- hbrfit(formula, data = d)
    ypred <- y_model
   mean((d[[HBR$fitted.values]]-ypred)^2)
 }

# Make the results reproducible
 set.seed(1234)
 
# bootstrapping with 60 replications
 results <- boot(data = df, statistic = MSE,
                  R = 60, formula = y_obs ~ b+z+a)

str(results)

boot.ci(results, type="bca" )
# # # # # # # # # # # # # # # # # # # # # # # #
 

Le dimanche 22 mars 2020 à 01:42:49 UTC+1, David Winsemius <[hidden email]> a écrit :






On 3/21/20 4:09 PM, varin sacha via R-help wrote:
> Dear R-helpers,
>
> Using the HBR (high breakdown rank-based) robust estimator and the hbrfit function, I get an error saying Error in UseMethod("predict") for hbrfit. How can I solve the problem ? Many thanks for your help.


What makes you think there is a predict method for objects returned by
hbrfit?

(I'm also puzzled how one would construct such a prediction. How would
one construct an estimate of something based on a weighted Wilcoxon
scale when the weighting depends on the original data? What weights
would apply to the new data?)


I do note that there are residuals in the object returned from
https://github.com/kloke/hbrfit/blob/master/R/hbrfit.R


Perhaps you can do something with that?

--

David


>
> # # # # # # # # # # # # # # # # # # # # # # # #
> install.packages( "robustbase",dependencies=TRUE )
> install.packages( "boot",dependencies=TRUE )
> install.packages( "MASS",dependencies=TRUE  )
> install.packages( "quantreg",dependencies=TRUE  )
> install.packages( "RobPer",dependencies=TRUE  )
> install_github("kloke/hbrfit")
> install.packages('http://www.stat.wmich.edu/mckean/Stat666/Pkgs/npsmReg2_0.1.1.tar.gz')
> install.packages( "RobStatTM",dependencies=TRUE )
>
> library(boot)
> library(robustbase)
> library(MASS)
> library(quantreg)
> library(RobPer)
> library(hbrfit)
> library(RobStatTM)
>
> 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 <- hbrfit(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 = y_obs ~ b+z+a)
> str(results)
>
> boot.ci(results, type="bca" )
> # # # # # # # # # # # # # # # # # # # # # # # # #
>
> ______________________________________________
> [hidden email] 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.


______________________________________________
[hidden email] 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.

______________________________________________
[hidden email] 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.