我正在使用lda
命令来分析2列234行数据集(x):列X1包含预测变量(度量),列X2包含自变量(分类,4类)。我想通过使用150个观测值建立线性判别模型,然后使用其他84个观测值进行验证。在对数据进行随机分区之后,我分别得到x.build和x.validation,分别为150和84个观测值。我运行以下
fit = lda(x.build$X2~x.build$X1, data=x.build, na.action="na.omit")
然后我像这样运行预测命令:
pred = predict(fit, newdata=x.validation)
从阅读命令描述我认为在pred$class
我会根据建立的模型得到验证数据的分类,但我得到了150个观察的分类,而不是我打算用作的84个验证数据。我真的不知道发生了什么,有人可以举个例子来说明我应该如何进行这种分析吗?
非常感谢你。
答案 0 :(得分:2)
请改为尝试:
fit = lda(X2~X1, data=x.build, na.action="na.omit")
pred = predict(fit, newdata=x.validation)
如果在构建模型时使用此公式x.build$X2~x.build$X1
,则预测验证数据中的x.build$X1
列。显然没有一个,所以你可以预测训练数据。