在R中进行相关分析

1.用R进行多元相关分析

#用cov函数计算mtcars数据框的前三个变量的协方差矩阵
> cov(mtcars[1:3])
             mpg        cyl       disp
mpg    36.324103  -9.172379  -633.0972
cyl    -9.172379   3.189516   199.6603
disp -633.097208 199.660282 15360.7998
#用cor函数计算mtcars数据框的前三个变量的相关系数矩阵
> cor(mtcars[1:3])
            mpg        cyl       disp
mpg   1.0000000 -0.8521620 -0.8475514
cyl  -0.8521620  1.0000000  0.9020329
disp -0.8475514  0.9020329  1.0000000
#以上原理说明,协方差矩阵可以检测变量间的线性相关度,当协方差的正负表明了对应的相关性,但是不同数据集差异,一些数据之间的协方差是不可以比较的。因此我们要比较不同数据集之间两个变量的线性相关程度,首先应该进行规范化处理,并选择相关系数而非协方差。
#我们可以使用ggplot包来绘制对应的热力图:
> library(reshape2)
> library(ggplot2)
> qplot(x=Var1,y=Var2,data=melt(cor(mtcars[1:3])),fill=value,geom = "tile")

在R中进行相关分析_第1张图片

2.进行多元线性回归分析

#...
>data(mtcars)
#调用lm函数将变量装入线性模型中
> lmfit = lm(mtcars$mpg ~ mtcars$cyl)
> lmfit

Call:
lm(formula = mtcars$mpg ~ mtcars$cyl)

Coefficients:
(Intercept)   mtcars$cyl  
     37.885       -2.876  
#调用summary函数获得模型的特征信息:
Estimate Std. Error t value Pr(>|t|)
估值,标准误差,T值,P值
Call:
lm(formula = mtcars$mpg ~ mtcars$cyl)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.9814 -2.1185  0.2217  1.0717  7.5186 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  37.8846     2.0738   18.27  < 2e-16 ***
mtcars$cyl   -2.8758     0.3224   -8.92 6.11e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.206 on 30 degrees of freedom
Multiple R-squared:  0.7262,    Adjusted R-squared:  0.7171 
F-statistic: 79.56 on 1 and 30 DF,  p-value: 6.113e-10
#调用anova完成方差表分析
> anova(lmfit)
Analysis of Variance Table

Response: mtcars$mpg
           Df Sum Sq Mean Sq F value    Pr(>F)    
mtcars$cyl  1 817.71  817.71  79.561 6.113e-10 ***
Residuals  30 308.33   10.28                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#在散点图上展示两个变量的之间的回归线,然后用abline增加一条回归线,注意lm中的y,x与plot中的x,y
>  plot(mtcars$cyl,mtcars$mpg)
> abline(lmfit)

在R中进行相关分析_第2张图片

你可能感兴趣的:(R与统计)