-1

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

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) 

“标准化后它们的有序对的相关性”是什么意思?

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

4

1 回答 1

0

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

在下一步中,我们需要从每个集合的平均值中减去每个单独的值,然后在最后一步中,我们需要将第二步获得的值除以它的标准差,这只是一个 Z 分数集合(和个人价值,比如 Xi)。这样做,我们将得到 X 和 Y 集的均值 0 和标准差 1。

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

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

如果我们查看某些标准关系,例如协方差相关性,斜率是绘制 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 = X 和 Y 的 15 个观测值

# 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) * (Xi - mean(X)) 和 (Yi) 乘积的总和(i = 1 到 n) - mean(Y)) 和在一起,Xi 和 Yi 是有序的(记住上面的步骤 3,Z 分数)

# 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),并且标准化集的截距为零。

于 2016-04-08T14:48:53.323 回答