在R中進行相關分析
阿新 • • 發佈:2019-01-07
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)