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

问题描述 投票:0回答:1

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

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

在您的情况下,很容易看到存在多个colinearities;见下文。 word2word4对是完全相关的。还有一些其他高相关系数。 (注意:cor不是检查多个colinearities的最佳方法,因为它只检查成对相关性。)

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 
© www.soinside.com 2019 - 2024. All rights reserved.