我正在使用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个。我不太清楚发生了什么事情,请问有人可以给我一个如何进行这项分析的示例吗?非常感谢您的帮助。
x.build$X2
就是多余的。 - Señor OR
在x.build
中找到X1
是不必要的(这就是x.build$X1
所做的),因为你已经通过说data=x.build
来做到了。但更重要的是:2)predict
将在newdata
中查找您在lda
中提供的名称的列。 如果您在lda
中使用x.build$X1
,则 predict 将寻找x.validation$x.build$X1
!(当然找不到) - Señor O