基于R语言分析身高与体重的相关性分析
程序员文章站
2022-04-03 19:42:52
...
本博文源于暨南大学的《多元数据统计分析及R语言建模》。旨在讲述身高与体重相关性分析。在概率论与数理统计课程中,两个变量之间协方差的标准化,因此先要熟悉并回忆公式,套用在R语言即可。
例子:分析身高(kg)与体重(cm)的相关性
> x1 = c(171,175,159,155,152,158,154,164,168,166,159,164)
> x2 = c(57,64,41,38,35,44,41,51,57,49,47,46)
分析步骤
- 数据输入至R语言里
- 画出散点图
- 用自定义函数计算相关系数
- 算的相关系数后,采用假设检验,分析p值和t值
画散点图
plot(x,y)
计算相关系数
> lxy <- function(x,y)
+ sum(x*y)-sum(x)*sum(y)/length(x)
> r=lxy(x1,x2)/sqrt(lxy(x1,x1)*lxy(x2,x2))
> r
[1] 0.9593031
>
采用假设检验,开始计算t值和p值
假设检验中,首先中要有假设。假设分为零假设和备择假设。
然后计算t值和p值,直接用R的命令
> cor.test(x1,x2)
Pearson's product-moment correlation
data: x1 and x2
t = 10.743, df = 10, p-value = 8.21e-07
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.8574875 0.9888163
sample estimates:
cor
0.9593031
由于p=8.21e-07<0.05,于是α=0.05在水准上拒绝H0,接受H1的,可认为改人群身高与体重呈现正的线性关系
完整代码
> x1 = c(171,175,159,155,152,158,154,164,168,166,159,164)
> x2 = c(57,64,41,38,35,44,41,51,57,49,47,46)
> plot(x1,x2)
> lxy <- function(x,y)
+ sum(x*y)-sum(x)*sum(y)/length(x)
> r=lxy(x1,x2)/sqrt(lxy(x1,x1)*lxy(x2,x2))
> r
[1] 0.9593031
> cor.test(x1,x2)
Pearson's product-moment correlation
data: x1 and x2
t = 10.743, df = 10, p-value = 8.21e-07
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.8574875 0.9888163
sample estimates:
cor
0.9593031
>
总结
其实整篇博文,无非计算相关性,和相关性检验。掌握了这两条命令,其实对于一般的两个变量之间的关系就有了清晰的认识,并且也会用R实现。