R语言相关性分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言相关性分析相关的知识,希望对你有一定的参考价值。

参考技术A 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)

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析

R语言相关分析和稳健线性回归分析

目录

​​怎么做测试​​

​​功率分析​​


介绍

下面以物种多样性为例子展示了如何在R语言中进行相关分析和线性回归分析。

 

怎么做测试

相关和线性回归示例

 

Data = read.table(textConnection(Input),header=TRUE)

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_数据

 

数据简单图

                                                                      

plot(Species ~ Latitude, 
data=Data,
pch=16,
xlab = "Latitude",
ylab = "Species")

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_数据_02

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_r语言_03

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_数据_04

 

 

相关性

可以使用 cor.test函数。它可以执行Pearson,Kendall和Spearman相关。

 

皮尔逊相关

皮尔逊相关是最常见的相关形式。假设数据是线性相关的,并且残差呈正态分布。

 

cor.test( ~ Species + Latitude, 
data=Data,
method = "pearson",
conf.level = 0.95)



Pearsons product-moment correlation



t = -2.0225, df = 15, p-value = 0.06134



cor

-0.4628844

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_数据_05

 

 

肯德尔相关

肯德尔秩相关是一种非参数检验,它不假设数据的分布或数据是线性相关的。它对数据进行排名以确定相关程度。

 

 

cor.test( ~ Species + Latitude, 
data=Data,
method = "kendall",
continuity = FALSE,
conf.level = 0.95)



Kendalls rank correlation tau



z = -1.3234, p-value = 0.1857



tau

-0.2388326

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_r语言_06

 

 

 

斯皮尔曼相关

Spearman等级相关性是一种非参数检验,它不假设数据的分布或数据是线性相关的。它对数据进行排序以确定相关程度,并且适合于顺序测量。

 

 

 

 

 

线性回归

线性回归可以使用 lm函数执行。可以使用lmrob函数执行稳健回归。

 

summary(model)                    # shows parameter estimates,
# p-value for model, r-square



Estimate Std. Error t value Pr(>|t|)

(Intercept) 585.145 230.024 2.544 0.0225 *

Latitude -12.039 5.953 -2.022 0.0613 .



Multiple R-squared: 0.2143, Adjusted R-squared: 0.1619

F-statistic: 4.09 on 1 and 15 DF, p-value: 0.06134







Response: Species

Sum Sq Df F value Pr(>F)

Latitude 1096.6 1 4.0903 0.06134 .

Residuals 4021.4 15

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_线性回归_07

 

 

 

绘制线性回归

 

plot(Species ~ Latitude,
data = Data,
pch=16,
xlab = "Latitude",
ylab = "Species")

abline(int, slope,
lty=1, lwd=2, col="blue") # style and color of line

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_数据_08

 

 

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_数据_09

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_r语言_10

检查模型的假设

 

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_数据_11

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_数据_12

 

线性模型中残差的直方图。这些残差的分布应近似正态。

 

 

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_r语言_13

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_线性回归_14

 

 

残差与预测值的关系图。残差应无偏且均等。 

 

 

 

稳健回归

该线性回归对响应变量中的异常值不敏感。

 

 

summary(model)                    # shows parameter estimates, r-square



Estimate Std. Error t value Pr(>|t|)

(Intercept) 568.830 230.203 2.471 0.0259 *

Latitude -11.619 5.912 -1.966 0.0681 .



Multiple R-squared: 0.1846, Adjusted R-squared: 0.1302





anova(model, model.null) # shows p-value for model



pseudoDf Test.Stat Df Pr(>chisq)

1 15

2 16 3.8634 1 0.04935 *

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_r语言_15

 

 

 

绘制模型

 

 

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_数据_16

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_数据_17

 

 

线性回归示例

 

 

summary(model)                    # shows parameter estimates, 
# p-value for model, r-square



Coefficients:

Estimate Std. Error t value Pr(>|t|)

(Intercept) 12.6890 4.2009 3.021 0.0056 **

Weight 1.6017 0.6176 2.593 0.0154 *



Multiple R-squared: 0.2055, Adjusted R-squared: 0.175

F-statistic: 6.726 on 1 and 26 DF, p-value: 0.0154



### Neither the r-squared nor the p-value agrees with what is reported

### in the Handbook.





library(car)

Anova(model, type="II") # shows p-value for effects in model



Sum Sq Df F value Pr(>F)

Weight 93.89 1 6.7258 0.0154 *

Residuals 362.96 26



# # #

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_线性回归_18

 

 

功率分析

功率分析的相关性

 

### --------------------------------------------------------------
### Power analysis, correlation
### --------------------------------------------------------------

pwr.r.test()



approximate correlation power calculation (arctangh transformation)



n = 28.87376

拓端tecdat|R语言代码编写相关分析和稳健线性回归分析_r语言_19

 

如果您有任何疑问,请在下面发表评论。 

 



以上是关于R语言相关性分析的主要内容,如果未能解决你的问题,请参考以下文章

r语言自相关acf是啥图

利用r语言相关性检验结果可能为0吗

R语言应用实战-基于R语言的典型相关分析

如何用R语言做线性相关回归分析

R语言相关性计算及使用ggcorrplot包相关性分析热力图可视化分析实战

R语言描述性统计分析:相关性分析