R中嵌套循环的优化

R中嵌套循环的优化,r,regression,R,Regression,我试图加速下面的代码,但没有任何成功 我读过关于这个包的文章,但我也没能实现那个包 有没有办法优化R中的以下代码 RI<-function(y,x,a,mu,R=500,t=500){ x <- as.matrix(x) dm <- dim(x) n <- dm[1] bias1 <- bias2 <- bias3 <- numeric(t) b1 <- b2<- b3 <- numeric(R) ###

我试图加速下面的代码,但没有任何成功

我读过关于这个包的文章,但我也没能实现那个包

有没有办法优化R中的以下代码

RI<-function(y,x,a,mu,R=500,t=500){
  x <- as.matrix(x)
  dm <- dim(x)
  n <- dm[1]  
  bias1 <- bias2 <- bias3 <- numeric(t)
  b1 <- b2<- b3 <- numeric(R) 
  ### Outliers in Y ######
  for (j in 1:t) {
  for (i in 1:R) {
    id <- sample(n, a * n)
    z <- y
    z[id] <- rnorm(id, mu) 
    b1[i] <- var(coef(lm(z ~., data = as.data.frame(x))))
    b2[i] <- var(coef(rlm(z ~ ., data = data.frame(x), maxit = 2000, method = "MM")))
    b3[i] <- var(coef(rlm(z ~ ., data = data.frame(x), psi = psi.huber,maxit = 300)))
  }
      bias1[j] <- sum(b1)    ;   bias2[j] <- sum(b2);   bias3[j] <- sum(b3)
  }
  bias <- cbind("lm" = bias1,"MM-rlm" = bias2, "H-rlm" = bias3)
  colMeans(bias)
  }
#######################################
p <- 5
n <- 200
x<- matrix(rnorm(n * p), ncol = p)
y<-rnorm(n)
a=0.2
mu <-10
#######################################
RI(y,x,a,mu)

RI1)从
x2)什么是
var(coef())
,从统计学上讲?如果速度很重要,不要使用
lm
rlm
的公式方法。只创建一次模型矩阵,并将其和因变量传递给默认方法。但是,如果您分析代码,您应该看到大部分时间都花在迭代的重新加权最小二乘步骤上。这是你的瓶颈,你不能用合理的努力来优化它。将循环并行化会更容易。我们循环了25万次,速度会很慢。也许考虑一下?为了扩展Rui的问题,这个函数在统计上做了什么?是的,我可以理解,但我看不到它的含义。不管怎样,即使它有一个,你也要加上这些方差,然后返回总和的平均值。这是您真正想要的,而不是在内部循环中计算的值的平均值吗?