使用R - 如何在标准化后找到有序对的相关性?

时间:2016-04-08 10:01:37

标签: r correlation standardized

假设我有以下有序数据集:

X <- c(12, 15, 23, 4, 9, 36, 10, 16, 67, 45, 58, 32, 40, 58, 33) 

# and 

Y <- c(1.5, 3.3, 10, 2.1, 8.3, 6.3, 4, 5.1, 1.4, 1.6, 1.8, 3.1, 2.2, 4, 3) 

&#34;标准化后有序对的相关性是什么意思&#34;

如何在R中找到(代码)?

1 个答案:

答案 0 :(得分:0)

为了标准化X和Y的给定集合,我们将首先 计算人口的平均值,方差,标准差。

在下一步中,我们需要减去每个中的每个值 从它的均值设定然后在最后一步,我们需要划分 从第2步,通过其标准偏差获得的值 只不过是集合的Z分数(和个体价值,比如Xi)。 这样做,两者的平均值为0,标准差为1 X和Y集。

这是标准化条件,因为对于所有集合(在您的情况下为X和Y),我们总是将均值作为零,标准差为

我们还将研究有序对之间的关​​系。

如果我们看一下某些标准关系,比如协方差 相关性,斜率最适合将Y与X相对应的线, 然后Y截距将与原始截距相同 价值观和标准化价值观还是会有所不同? 如果它们不同,它们会有多么不同,为什么会这样?

这是问题的背景。

我在R中尝试的内容如下:

您的数据集是:

X <- c(12, 15, 23, 4, 9, 36, 10, 16, 67, 45, 58, 32, 40, 58, 33) 
# and 
Y <- c(1.5, 3.3, 10, 2.1, 8.3, 6.3, 4, 5.1, 1.4, 1.6, 1.8, 3.1, 2.2, 4, 3) 

原始数据的统计数据,其中n = 15个X和Y的观察结果

# Variance
VarX <- sum((X - mean(X))^2)/15    ## Which gives us Variance of X set as 374.5156
VarY <- sum((Y - mean(Y))^2)/15    ## Which gives us Variance of Y set as 6.226489

# Standard Deviation
sdX <- sqrt(VarX)       ## Which gives us Std. Dev. of X set as 19.3524
sdY <- sqrt(VarY)       ## Which gives us Std. Dev. of Y set as 2.495293

# Z-scores
Z_Score_X <- (X - mean(X))/sdX
Z_Score_Y <- (Y - mean(Y))/sdY

# A Check, mean of ZScores should be close or equal to 0 
# and Std. Dev. must be close or equal to 1
round(mean(Z_Score_X), 0)         # Yes, it is 0
round(sd(Z_Score_X), 0)           # Yes, it is 1
round(mean(Z_Score_Y), 0)         # Yes, it is 0
round(sd(Z_Score_Y), 0)           # Yes, it is 1

这是我们有相同意思的标准化条件 和X和Y的标准差(如上面Z分数据集的情况)。

现在我们将研究有序对之间的关​​系 如果我们看一些标准关系,如覆盖率 相关性,斜率最适合将Y与X相对应的线, 然后Y截距将与原始截距相同 价值观和标准化价值观还是会有所不同? 如果它们不同,它们会有多么不同,为什么会这样?

让我们计算其余的......

首先我们来看看X和Y的协方差... 协方差(X,Y)=(1 / n)*总和(i = 1至n)的乘积 (Xi - mean(X))和(Yi - mean(Y)) 在一起,Xi和Yi是有序对(记住上面的步骤3, Z-Scores)

# Covariance for older sets (X, Y)
covXY <- (1/15) * sum((X - mean(X))*(Y - mean(Y)))

# Covariance for New sets (Z_Score_X, Z_Score_Y)
covXYZ <- (1/15) * sum((Z_Score_X - mean(Z_Score_X))*(Z_Score_Y - mean(Z_Score_Y)))

接下来我们将看看(X和Y)最佳拟合线的斜率(Beta)

召回, Beta =斜率= delta_Y / delta_X

# Slope for old set (X, Y)
Beta_X_Y  <- round(lm(Y ~ X)$coeff[[2]], 2)

# Slope for standardized values in new set (Z_Score_z, Z_Score_z1)
Beta_ZScoreXY <- round(lm(Z_Score_X ~ Z_Score_Y)$coeff[[2]], 2)

请注意,标准化值的截距始终为零 原因是因为标准化值的方法总是如此 在最佳拟合线上且为零(如我们的Z_Score_X,Z_Score_Y, 均值为0,0)。 换句话说,对于标准化数据,最佳拟合线必须通过原点。 虽然并非总是必要,但预计会如此。

# Intercept for old set
Intercept_X_Y <- round(lm(Y ~ X)$coeff[[1]], 2) 
# 5.17

# Intercept for standardized set, should be zero
Intercept_ZScore_X_Y <- round(lm(Z_Score_Y ~ Z_Score_X)$coeff[[1]], 2) 
# Yes, it is 0

最后,我们将研究相关性,它等于 X和Y的协变量除以X的标准偏差乘以Y的标准偏差

# Correlation of old set
CorrelationXY <- round(covXY / (sdX * sdY), 2)

# Variance for new set
VarZScoreX <- sum((Z_Score_X - mean(Z_Score_X))^2)/15
VarZScoreY <- sum((Z_Score_Y - mean(Z_Score_Y))^2)/15 
sdZScoreX <- sqrt(VarZScoreX)
sdZScoreY <- sqrt(VarZScoreY)

# Correlation of new set
correlation_ZScore_X_Y <- round(covXYZ / (sdZScoreX * sdZScoreY), 2)

因此,我们在这里看到的是,整体事物保持不变 对于旧的数据集或新的标准化(z得分)数据集,是 相关性(在我们的例子中是-0.34)。相关性是不变的。 另外要注意的是,对于每个标准化的集合,斜率, 协方差等于相关(在我们的例子中都是-0.34)和截距 标准化集合的等于零。