predict() 函数的问题(可能很容易解决)
Troubles with predict() function (probably easy to solve)
所有。
这是我在本论坛提出的第一个问题。我是初学者,大家马上就会告诉我。
我正在执行一项小任务,我必须将训练模型与测试模型进行比较。关键是训练模型的行数比测试模型多得多。
通过线性回归模型,我想比较两个模型,但是当我使用 predict() 函数时,出现以下错误:
"newdata" 有 3456 行,但发现变量最喜欢 7689 行。
这是我做的:
regression = lm(train$students~train$subjects, train)
(train是trining数据库)
prediction = predict(regression, test)
(test为测试数据库)
我不知道我是否正确使用了 predict() 函数。有人可以告诉我我做错了什么吗?
非常感谢您的帮助和善意!
不要在公式中将变量引用为 data$var
。绝不。曾经。
发生的事情是您使用名为 train$students
和 train$subjects
的变量拟合模型。为了根据模型进行预测,R 将在测试集中查找名为 train$subjects
的变量,test
。显然 tests
中不存在这样的变量;谁会用这么愚蠢的名字创建变量!?没有必要在公式中使用 data$var
格式,因为 data
参数的全部意义在于指示 R 应该在哪里查找公式中提到的变量名称。
要开始解决此问题,请将您的模型拟合为:
regression <- lm(students ~ subjects, data = train)
然后使用
进行预测
predict(regression, test)
其中 test
需要一个包含 subjects
.
的列
错误信息是因为 newdata
有 3456 但当它搜索变量 train$subjects
时它发现 7689 行,大概这是 train
中完整观察的数量...... ?
所有。
这是我在本论坛提出的第一个问题。我是初学者,大家马上就会告诉我。
我正在执行一项小任务,我必须将训练模型与测试模型进行比较。关键是训练模型的行数比测试模型多得多。
通过线性回归模型,我想比较两个模型,但是当我使用 predict() 函数时,出现以下错误:
"newdata" 有 3456 行,但发现变量最喜欢 7689 行。
这是我做的:
regression = lm(train$students~train$subjects, train)
(train是trining数据库)
prediction = predict(regression, test)
(test为测试数据库)
我不知道我是否正确使用了 predict() 函数。有人可以告诉我我做错了什么吗?
非常感谢您的帮助和善意!
不要在公式中将变量引用为 data$var
。绝不。曾经。
发生的事情是您使用名为 train$students
和 train$subjects
的变量拟合模型。为了根据模型进行预测,R 将在测试集中查找名为 train$subjects
的变量,test
。显然 tests
中不存在这样的变量;谁会用这么愚蠢的名字创建变量!?没有必要在公式中使用 data$var
格式,因为 data
参数的全部意义在于指示 R 应该在哪里查找公式中提到的变量名称。
要开始解决此问题,请将您的模型拟合为:
regression <- lm(students ~ subjects, data = train)
然后使用
进行预测predict(regression, test)
其中 test
需要一个包含 subjects
.
错误信息是因为 newdata
有 3456 但当它搜索变量 train$subjects
时它发现 7689 行,大概这是 train
中完整观察的数量...... ?