R语言二元正态分布及双变量相关分析简单案例演示
Posted 小兵学R语言
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言二元正态分布及双变量相关分析简单案例演示相关的知识,希望对你有一定的参考价值。
皮尔逊系数、斯皮尔曼系数、肯德尔系数,这是我们在双变量相关分析中经常使用的三大相关系数。皮尔逊系数使用时有一个基本条件,两变量应满足二元正态分布,否则建议选用斯皮尔曼相关系数。
所以,两个连续数据相关分析前,我们有必要首先进行多元(二元)正态分布的检验。R语言中,我们可以使用mvnormtest包中的mshapiro.test函数完成。
现在我想考察一下初始薪金和当前薪金间的相关性,
首先来做二元正态分布检验。
mydata <- t(employee[,6:7])
mshapiro.test函数的参数U要求是每行是变量,每列是个案,因此我们需要t函数做行列转置。
library(mvnormtest)
mshapiro.test(mydata)
Shapiro-Wilk normality test
W = 0.70689, p-value < 2.2e-16
多元正态分布的
原假设是服从正态分布,经过检验发现,p-value <0.001,显然有理由拒绝原假设,说明这两个变量数据不服从二元正态分布。
此时皮尔逊相关系数是不合适的,那我们就
用斯皮尔曼系数来反映初始薪金和当前薪金的相关性。
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,
说明当前薪金和起始薪金间存在较强的正向相关性。