我有以下数据框(注意。我的样本有超过100列和100行)
word1 word2 word3 word4 word5 Score
1 1 1 1 1 10
1 2 3 4 5 16
2 1 0 1 2 13
1 1 1 1 1 15
1 2 3 4 5 16
2 1 0 1 2 18
1 1 1 1 1 10
1 2 3 4 5 16
2 1 0 1 2 13
1 1 1 1 1 15
1 2 3 4 5 16
2 1 0 1 2 18
1 1 1 1 1 10
1 2 3 4 5 16
2 1 0 1 2 13
1 1 1 1 1 15
1 2 3 4 5 16
2 1 0 1 2 18
这是许多变量中的线性方程组。我想解决相同问题并获得word1,word2,word3,word4等的实际值。分数由word1,word2,word3等预测
我用过
lm(Score~., data=DF)
这给出了NA值和一些值。 我在这里请求一些帮助。提前谢谢了。是否有NA值的原因。是否有另一种方法
答案 0 :(得分:2)
fit <- lm(Score ~ ., data = df)
fit
#Call:
#lm(formula = Score ~ ., data = df)
#Coefficients:
#(Intercept) word1 word2 word3 word4 word5
# 6.0 3.0 3.5 NA NA NA
如果发生这种情况,则必须归因于数据中的多个共线性。当数据具有多线性时,lm
无法提供唯一的解决方案,除非它丢弃了一些变量。
在您的情况下,很容易看到存在多个角色;见下文。 word2
和word4
对完全相关。还有一些其他高相关系数。 (注意:cor
不是检查多线性的最佳方法,因为它只检查成对相关性。)
round(cor(df), 2)
# word1 word2 word3 word4 word5 Score
# word1 1.00 -0.50 -0.76 -0.50 -0.28 0.23
# word2 -0.50 1.00 0.94 1.00 0.97 0.37
# word3 -0.76 0.94 1.00 0.94 0.84 0.19
# word4 -0.50 1.00 0.94 1.00 0.97 0.37
# word5 -0.28 0.97 0.84 0.97 1.00 0.47
# Score 0.23 0.37 0.19 0.37 0.47 1.00