我有两个变量,我想找到它们之间的相关性.问题是我似乎得到了不同的结果,这取决于我使用的方法.
我所知道的一种方法是在scale()函数中运行带有独立变量和因变量的lm()函数.
所以下面的变量看起来像:
lm(scale(mainDataframe$relativeFemHappy) ~ scale(mainDataframe$allRights))
Run Code Online (Sandbox Code Playgroud)
我所知道的其他方法是简单地使用cor()函数或lm.beta()函数.
所以这就像:
cor(mainDataframe$relativeFemHappy, mainDataframe$allRights, use="pairwise.complete.obs")
Run Code Online (Sandbox Code Playgroud)
和
library(lm.beta)
lm.beta(lm(mainDataframe$relativeFemHappy ~ mainDataframe$allRights))
Run Code Online (Sandbox Code Playgroud)
问题是我得到的结果是不同的:
> lm(scale(mainDataframe$relativeFemHappy) ~ scale(mainDataframe$allRights))
Call:
lm(formula = scale(mainDataframe$relativeFemHappy) ~ scale(mainDataframe$allRights))
Coefficients:
(Intercept) scale(mainDataframe$allRights)
-0.002478 -0.272812
> lm.beta(lm(mainDataframe$relativeFemHappy ~ mainDataframe$allRights))
mainDataframe$allRights
-0.2550056
> cor(mainDataframe$relativeFemHappy, mainDataframe$allRights, use="pairwise.complete.obs")
[1] -0.2550056
Run Code Online (Sandbox Code Playgroud)
因此,使用lm()和scale()的第一种方法,我得到的系数为0.2728,而lm.beta()和cor()方法给出的系数为-0.225
我很想知道造成这种情况的原因.谢谢.
mainDataframe.allRights mainDataframe.relativeFemHappy
1 1.3333333 0.0653854461
2 NA -0.0943358596
3 1.0000000 -0.3559994842
4 2.0000000 0.0542260426
5 1.3333333 -0.1125838731
6 NA 0.0647522523
7 1.6666667 -0.1119041715
8 1.0000000 0.0564865005
9 1.3333333 0.2199685735
10 1.3333333 0.3016471599
11 0.6666667 …Run Code Online (Sandbox Code Playgroud)