R中手动定位和分散的稳健M估计

时间:2016-07-24 04:17:33

标签: r statistics

我尝试用R估计位置和扩散模型,如Maronna et al (2006, pp. 56)所述。但是,我的估计偏差不会收敛到所需的值。我的代码中有错误吗?

    #set.seed(12345)
    n <- 100
    error<-rnorm(n,0,1)
    x <- 10+5*error

    # funcion bisquare
    psi_bisq <- function(y){
      k <- 2.2
      ifelse(abs(y)<=k,ind <- 1,ind <- 0)
      return(y*ind*(1-(y/k)^2)^2)
    }

    # derivada de la funcion bisquare
    psi_bisq_der <- function(y){
      k <- 2.2
      ifelse(abs(y)<=k,ind <- 1,ind <- 0)
      return(ind*(1-(y/k)^2)*(1-5*(y/k)^2))
    }

    # funcion rho_bisquare
    rho_bisq <- function(y){
      k <- 2.2
      ifelse(abs(y)<=k, sal <- 1-(1-(y/k)^2)^3, sal <- 1)
      return(sal)
    }

    # segunda derivada de funcion rho_bisquare 
    rho_bisq_der2 <- function(y){
      k <- 2.2
      ifelse(abs(y)<=k, sal <- 6*(1-(y/k)^2)*(1-5*(y/k)^2)/k^2, sal <- 0)
      return(sal)
    }

    # funcion de peso
    W <- function(dato){
      ifelse(dato==0, ww <- psi_bisq_der(0), ww <- psi_bisq(dato)/dato)
      return(ww)
    }

    Wdis<-function(dato){
      ifelse(dato==0,ww<-rho_bisq_der2(0),ww<-rho_bisq(dato)/dato^2)
    }

    #======== Estimador simultáneo de localización y dispersión 

    # estimador robusto de dispersi?n
    sigma_est_a <- median(abs(x-median(x)))/0.6745

    # estimador robusto de la media, inicial
    mu_est_a <- median(x)

    epsilon <- .00001
    err1 <- epsilon*sigma_est_a
    err2<-epsilon
    error <- 1000
    error2<- 1000
    delta <- .9
    iter<-0

    while((error>=err1) && (error2>=err2)){
      pesos_loc <- rep(0,n)
      pesos_dis <- rep(0,n)
      for(i in 1:n){
        r <- (x[i]-mu_est_a)/sigma_est_a
        pesos_loc[i] <- W(r)
        pesos_dis[i]<-Wdis(r)
      }
      iter<-iter+1
      mu_est_n <-sum(pesos_loc*x)/sum(pesos_loc)
      sigma_est_n<-sqrt(((sigma_est_a^2)/(n*delta))*sum(pesos_dis*r^2))
      error <- abs(mu_est_n - mu_est_a)
      error2 <- abs(sigma_est_n/sigma_est_a -1)
      mu_est_a<-mu_est_n
      sigma_est_a<-sigma_est_n
    }
    sigma_est_a
    mu_est_a

0 个答案:

没有答案