Использование пакета снегопада в R для моделирования

Я начинаю работу с пакетом снегопада следующим образом:

library(snowfall)
sfInit(parallel=TRUE, cpus=6, type="SOCK")
#loading packages
sfLibrary(package = lars)
sfLibrary(package=covTest) 

Функция, которую я хочу вычислить несколько раз, используя sfLapply:

funkcja <- function(i,k=5)
{
  beta <- c(k,k,0,k,k,rep(0,35))
  X <- matrix(rnorm(100*40),100,40)
  Y <- X%*%beta+rnorm(100)
  lasso.lars <- lars(X,Y,intercept=FALSE,use.Gram=FALSE)
  test <- covTest(lasso.lars,X,Y,sigma.est=1)
  test
}

Но когда я пытаюсь это

sfLapply(1:100,funkcja)

Я получаю сообщение об ошибке: "Ошибка в checkForRemoteErrors(val): 6 узлов вызвали ошибки; первая ошибка: объект" Y "не найден". Но когда я прячу последнюю строку, кроме одной, и изменяю тест для lasso.lars, тогда больше нет тролля о векторе Y:

funkcja <- function(i,k=5)
{
  beta <- c(k,k,0,k,k,rep(0,35))
  X <- matrix(rnorm(100*40),100,40)
  Y <- X%*%beta+rnorm(100)
  lasso.lars <- lars(X,Y,intercept=FALSE,use.Gram=FALSE)
  #test <- covTest(lasso.lars,X,Y,sigma.est=1)
  lasso.lars
}

Я не понимаю этого, потому что линия

test <- covTest(lasso.lars,X,Y,sigma.est=1)

должен работать с

lars(X,Y,intercept=FALSE,use.Gram=FALSE)

может работать. Буду благодарен за вашу помощь.

1 ответ

Решение

Я предполагаю, что Y скрывается и является внутренней переменной. Работает следующая функция (изменил регистр "Y" на "y")

funkcja <- function(i,k=5)
{
  beta <- c(k,k,0,k,k,rep(0,35))
  X <- matrix(rnorm(100*40),100,40)
  y <- X %*% beta + rnorm(100)

  lasso.lars <- lars(X,y,intercept=FALSE,use.Gram=FALSE)
  test <- covTest(lasso.lars,X,y,sigma.est=1)
  test
}
Другие вопросы по тегам