我正在研究来自 Kaggle 的泰坦尼克号泰坦尼克号数据集 (https://www.kaggle.com/c/titanic/data),并且我正在尝试将各种模型应用于该数据集。
在此之前,我对数据集进行了以下修改:
df.train <- dplyr::select(df.train,-PassengerId,-Name,-Ticket,-Cabin)
df.train$Survived <- factor(df.train$Survived)
df.train$Pclass <- factor(df.train$Pclass)
df.train$Parch <- factor(df.train$Parch)
df.train$SibSp <- factor(df.train$SibSp)
我也设定了年龄,我们现在的情况是
anyNA(df.train) == F
因此,当我进行逻辑回归和 LDA 时,一切都正常(即使令人惊讶的是它们提供了完全相同的结果),但是当我尝试时:
qda.model <- qda(Survived~. , data = df.train)
我明白了:
qda.default(x, grouping, ...) 中的错误:groupe 0 n'est pas de rang plein
据我了解,这意味着我有等级不足。
一些在线研究引导我来到这里:https://stats.stackexchange.com/questions/35071/what-is-rank-deficiency-and-how-to-deal-with-it
但我真的看不出数据有什么问题,我有 8 个预测变量和 891 个观测值,没有一个预测变量似乎是其他变量的线性组合..
您能解释一下这个 QDA 出了什么问题吗?
非常感谢!
我觉得你可以验证你的变量是否确实存在变化。我碰巧有一个变化很小的变量。当我运行 LDA 时,它工作没有问题,但使用 QDA 时,它给了我你提到的错误。我消除了有问题的变量并能够运行这两项分析。