Прогнозирование любого значения из модели с использованием функции прогнозирования R - PullRequest
0 голосов
/ 05 февраля 2020

Я разработал простую модель линейной регрессии, имея некоторые обучающие данные и затем прогнозируя некоторые новые или проверочные данные.

regressor = lm(formula=Discount ~ Bill, data = trainingData) 
y_pred1 = predict(regressor,newdata = testingData)

Теперь я хочу использовать то же самое для предсказания некоторого другого нового значения. Вот что я пытаюсь

pred_discount = predict(regressor, newdata=84)

Но он выдает следующую ошибку

Error in eval(predvars, data, env) : not that many frames on the stack

Затем я искал в Google и StackOverflow и узнал, что я должен сделать что-то вроде этого

pred_discount = predict(regressor, newdata = data.frame(x=64))

Но это тоже не работает .. Может быть, на этот же вопрос много лет отвечали go, и теперь этот метод тоже не работает .. Вот какая ошибка я получаю

Error in eval(predvars, data, env) : object 'Bill' not found

Что я не так делаю? Также стоит отметить, что Билл - моя независимая переменная в моем наборе данных

1 Ответ

0 голосов
/ 05 февраля 2020

Что вы обнаружили, так это то, что при использовании интерфейса формул вы должны предоставить именованный фрейм данных для функции. То есть кадр тестовых данных должен иметь те же имена структур / столбцов, что и обучающий набор. Вы можете либо создать фрейм данных вне функции прогнозирования и передать его для прогнозирования, либо создать фрейм данных внутри функции прогнозирования (не рекомендуется), это будет сделано только в том случае, если, как в вашем случае, у вас очень маленькие данные кадр, который вы хотите предсказать.

Так что-то вроде

testData=data.frame(Bill=c(1,2,3,4,5))
pred_discount = predict(regressor, newdata = testData)

Или для новых переменных

testData=data.frame(Bill=c(1,2,3,4,5),Rate=c(1,2,3,4,5))
pred_discount = predict(regressor, newdata = testData)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...