R语言二元正态分布及双变量相关分析简单案例演示

皮尔逊系数、斯皮尔曼系数、肯德尔系数,这是我们在双变量相关分析中经常使用的三大相关系数。皮尔逊系数使用时有一个基本条件,两变量应满足二元正态分布,否则建议选用斯皮尔曼相关系数。

所以,两个连续数据相关分析前,我们有必要首先进行多元(二元)正态分布的检验。R语言中,我们可以使用mvnormtest包中的mshapiro.test函数完成。

案例数据:雇员数据

本号后台回复【雇员】下载案例数据。

二元正态分布检验

现在我想考察一下初始薪金和当前薪金间的相关性,首先来做二元正态分布检验。

mydata <- t(employee[,6:7])

mshapiro.test函数的参数U要求是每行是变量,每列是个案,因此我们需要t函数做行列转置。

library(mvnormtest)mshapiro.test(mydata)

来看结果:

Shapiro-Wilk normality testdata:  ZW = 0.70689, p-value < 2.2e-16

多元正态分布的原假设是服从正态分布,经过检验发现,p-value <0.001,显然有理由拒绝原假设,说明这两个变量数据不服从二元正态分布。

此时皮尔逊相关系数是不合适的,那我们就用斯皮尔曼系数来反映初始薪金和当前薪金的相关性。

R双变量相关分析

cor.test(x=employee$salbegin,y=employee$salary,method = "spearman")

来看结果:

Spearman's rank correlation rho

data:  employee[, 6] and employee[, 7]

S = 3090197, p-value < 2.2e-16

alternative hypothesis: true rho is not equal to 0

sample estimates:

rho

0.8258977

斯皮尔曼显著性检验 p-value <0.001,通过检验,说明存在相关性,有统计学意义。二者的相关程度如何呢?

斯皮尔曼相关系数r=0.826,说明当前薪金和起始薪金间存在较强的正向相关性。

本文完文/图=数据小兵

(0)

相关推荐