假设测量一根木棒的长度10次,长度随机变量未X:4个基本统计量为:
-
Variance: 方差,随机变量每个观测值与平均值差的平方和,量纲:样本单位的平方(平方米), R函数:
var(X)
; -
Standard deviation: 标准差,variance的平方根,量纲:样本单位(米), R函数:
sd(X)
;` -
Covariance: 协方差,两个变量间的相关度,当两个变量一样时,协方差就是方差。 量纲:样本单位的平方(平方米),R函数:
cov(X)
; -
Correlation: 相关系数,无量纲化的协方差,取值范围在-1到1之间。 相同变量的相关系数永远为1,R函数:
cor(X)
.
凡是名字里有“方”的,比如方差和协方差,量纲都是样本量纲的平方; 名字里有“系数”的,表明无量纲。以R语言为例说明它们的计算方法和特点:
X <- c(.5, .3, -0.2, 0.8, -0.7)
Y <- c(5, 9, -5, 3, -7)
df <- data.frame(X, Y)
summary(df)
df_scaled <- scale(df)
summary(df_scaled)
mean(df_scaled[,1]) # 0
mean(df_scaled[,2]) # 0
sd(df_scaled[,1]) # 1
sd(df_scaled[,2]) # 1
cov(df$X, df$Y) # 3.2
cor(df$X, df$Y) # 0.7941156
cov(df_scaled[,1], df_scaled[,2]) # 0.7941156
cor(df_scaled[,1], df_scaled[,2]) # 0.7941156
cov(df$X, df$X) # 0.353
cor(df$X, df$X) # 1
cov(df_scaled[,1], df_scaled[,1]) # 1
cor(df_scaled[,1], df_scaled[,1]) # 1
上述代码表明scale()
的作用是将随机变量标准化,也就是将其线性变换为
均值为0、方差为1的向量。
Ref: