Использование пакета снегопада в R для моделирования - PullRequest
0 голосов
/ 07 июня 2018

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

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 Ответ

0 голосов
/ 07 июня 2018

Я предполагаю, что 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
}
...