使用R求解许多变量中的线性方程

时间:2018-03-05 05:59:06

标签: r linear-algebra

我有以下数据框(注意。我的样本有超过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值的原因。是否有另一种方法

1 个答案:

答案 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无法提供唯一的解决方案,除非它丢弃了一些变量。

在您的情况下,很容易看到存在多个角色;见下文。 word2word4对完全相关。还有一些其他高相关系数。 (注意: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