Как исправить ошибку «несоответствующие аргументы» при попытке предсказать многомерную регрессию? - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь сделать для l oop вот так:

data(iris)

predict1 <- function(value, model){ 
  y = model$coefficients[1] + (model$coefficients[-1]%*% value)
  return (y)
}

predict2 <- function(values, model){
  y = model$coefficients[1] + (model$coefficients[-1]%*% values)
  return (y)
}

for (i in 1:n){

  iris1 <- iris[sample(1:nrow(iris), 50, replace = TRUE),]

  model1[[i]] <- lm(Sepal.Length ~ Sepal.Width, data=iris1)
  model2[[i]] <- lm(Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width, data=iris1)

  predictions1 <- predict1(iris1$Sepal.Width[[i]], model1[[i]])
  values <- c(iris1$Sepal.Width, iris1$Petal.Length, iris1$Petal.Width)
  predictions2 <- predict2(values[[i]], model2[[i]])
}

Но я получаю следующую ошибку:

Error in model$coefficients[-1] %*% values : non-conformable arguments

Если я заполняю последние два линий, это работает:

values <- c(0, 0.5, 3)
predictions2 <- predict2(values, model2[[i]])

Любая помощь будет полезна в выяснении, как превратить структуру c (iris1 $ Sepal.Width, iris1 $ Petal.Length, iris1 $ Petal.Width) в нечто вроде c (0, 0,5, 3).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...