线性相关系数r是什么?

Python021

线性相关系数r是什么?,第1张

线性相关系数r用以反映变量之间相关关系密切程度的统计指标。

相关系数r接近于1的程度与数据组数n相关,当n较小时,相关系数的波动较大,对有些样本相关系数的绝对值易接近于1;当n较大时,相关系数的绝对值容易偏小。特别是当n=2时,相关系数的绝对值总为1。

相关系数为0说明两变量不存在直线相关关系,相关表和相关图可反映两个变量之间的相互关系及其相关方向,但无法确切地表明两个变量之间相关的程度。相关系数是用以反映变量之间相关关系密切程度的统计指标。

注意事项:

相关表示两变量间的相互关系,是双方向的。而回归则表示Y随X而变化,这种关系是单方向的。医学资料中的有些资料用相关表示较适宜,比如兄弟与姐妹间的身长关系、人的身长与前臂长之间的关系等资料。另有些资料用相关和回归都适宜,此时须视研究需要而定。

回归系数与相关系数的正负号都有两变量离均差积之和的符号业决定,所以同一资料的b与其r的符号相同。回归系数有单位,形式为(应变量单位/自变量单位)相关系数没有单位。相关系数的范围在-1~+1之间,而回归系数没有这种限制。

看回归方程y=a+bx中的b值的正负,如果b是正数,就是正相关;如果b是负数,就是负相关。b值只能用来判断相关性的正负,但b并不是相关系数,相关系数在线性回归方程中是确定系数R^2的平方根R值,其正负号由b值的正负号决定。

1.  R语言自带函数cor(data, method=" ")可以快速计算出相关系数 ,数据类型:data.frame

 如data.frame为:zz, 绘图如下:

a. single protein:线性回归画法

1. ggplot(zz,aes(x=a, y=HDL))+

   geom_point(alpha=1,colour="#FFA54F")+

   geom_smooth(method = lm,colour="#8B658B")+

   #scale_color_brewer(palette = "Set1")+

   theme_bw()+

   labs(x="Ferritin",y="HDL.C",title="Pearson’s correlation test of ferritin and HDL.C")+

   annotate("text", x = 1000, y = 2.5, label = "r = -0.51",colour="black",size=4)

2. library(ggstatsplot)

 ggscatterstats(data = alldata,

               y = TRANSFUSION.UNIT,

                x = NPTXR,

                centrality.para = "mean",  #"mean" or "median"                         

               margins = "both",                                       

                xfill = "#D8BFD8",

                yfill = "#EEDD82",

                #line.size= ,

                line.color="#8B6969",

               point.color="#2F4F4F",

                marginal.size=4,

               marginal.type = "density", # "histogram", "boxplot", "density", "violin", "densigram")

                title = "Relationship between TRANSFUSION.UNIT and NPTXR")

b. ggcorrplot, 全部蛋白 global correlation map 画法

ggcorrplot(cor(alldata))

2.  summary(lm(y~x),method=" ") %>%.[["coefficients"]]   正规线性回归

     (其实就是:a<-lm(y~x1+x2+...,data)

      plot(summary(lm(y~x),method=" ")) #绘图

3.  ggcor部分数据绘图:  数据类型为data.frame,纵坐标为各指标or各蛋白,行为观测值。

data <- fortify_cor(alldata[,10:11],alldata,cluster.type = "col")

ggcor<-ggcor(data,label_size=0.5) +

  geom_colour()+

  theme(axis.text.x = element_text(colour = "black",size = 4.7),

                                                        axis.text.y=element_text(size=5.5),

                                                        axis.ticks=element_blank())+

  geom_num(aes(num=r),colour="black",size=1.5)

4. corrr包画法

datasets::mtcars %>%

  correlate() %>%

  focus(-cyl, -vs, mirror = TRUE) %>%

  rearrange() %>%

  network_plot(min_cor = .2)