1. 程式人生 > >在R中進行相關分析

在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")

相關係數矩陣熱力圖

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)

cyl與mpg的迴歸關係