小编sto*_*enm的帖子

是否有一个简单的命令可以使用lm()函数进行一次性交叉验证?

是否有一个简单的命令可以使用lm()R中的函数进行一次性交叉验证?

具体是有一个简单的命令,对于下面的代码?

x <- rnorm(1000,3,2)
y <- 2*x + rnorm(1000)

pred_error_sq <- c(0)
for(i in 1:1000) {
  x_i <- x[-i]
  y_i <- y[-i]
  mdl <- lm(y_i ~ x_i) # leave i'th observation out
  y_pred <- predict(mdl, data.frame(x_i = x[i])) # predict i'th observation
  pred_error_sq <- pred_error_sq + (y[i] - y_pred)^2 # cumulate squared prediction errors
}

y_squared <- sum((y-mean(y))^2)/100 # Variation of the data

R_squared <- 1 - (pred_error_sq/y_squared) # Measure for goodness of fit
Run Code Online (Sandbox Code Playgroud)

r lm cross-validation

5
推荐指数
2
解决办法
9736
查看次数

在Matlab中更快的矩阵递归

的的矩阵递归n x n矩阵Y_t如下:

Y_{t} = A + \sum_{i=1}^{p} B_{i} * Y_{t-i}
Run Code Online (Sandbox Code Playgroud)

给出A和B.

这是我的尝试,但它运行缓慢:

Y = zeros(n,n,T); %Going to fill the 3rd dimension for Y_t, t=1:T
Y(:,:,1:p) = initializingY

for t=(p+1):T
    Y(:,:,t) = A;
    for i=1:p
        Y(:,:,t) = Y(:,:,t) + B(:,:,i)*Y(:,:,t-i);
    end
end
Run Code Online (Sandbox Code Playgroud)

你能想到更有效的方法吗?

recursion performance matlab matrix

2
推荐指数
1
解决办法
140
查看次数

标签 统计

cross-validation ×1

lm ×1

matlab ×1

matrix ×1

performance ×1

r ×1

recursion ×1