相关矩阵和Q-Q图

2018-09-03

2018-09-03
相关系数和Q-Q图

1 相关系数图


  相关系数是用以反映变量之间相关关系密切程度的统计指标。相关系数是按积差方法计算。相关系数取值在-1到1之间,不等于0是存在相关关系,等于0是不相关。

1.1 corrplot包绘制相关矩阵图

  使用corrgram包绘制相关矩阵图   基本书写格式为:

  corrgram(矩阵,lower.panel=面板样式,upper.panel=面板样式,diag.panel=面板样式,main=“主题”)

  lower.panel和upper.panel称为上下面板,diag.panel为对角面板。panel.minmax表示变量的最大值和最小值。

  panel.shade表示为阴影,panel.pie表示显示饼图

str(iris)#查看数据集
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
data<-iris[, -5]#删除变量Species
str(data)
## 'data.frame':    150 obs. of  4 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...

   由上可知,150条数据,含有4个变量。

corr <- cor(iris[,1:4]) #计算前5个变量的相关系数
corr #查看相关系数
##              Sepal.Length Sepal.Width Petal.Length Petal.Width
## Sepal.Length    1.0000000  -0.1175698    0.8717538   0.8179411
## Sepal.Width    -0.1175698   1.0000000   -0.4284401  -0.3661259
## Petal.Length    0.8717538  -0.4284401    1.0000000   0.9628654
## Petal.Width     0.8179411  -0.3661259    0.9628654   1.0000000

  相关矩阵也叫相关系数矩阵,是由矩阵各列间的相关系数构成的。利用cor函数来计算相关矩阵,会得到每两列之间的相关系数。相关系数矩阵由上三角区域、下三角区域、对角区域三部分组成。

library(corrplot) # 加载包
corrplot(corr=corr)#参数全部默认情况下的相关系数图
corrplot(corr = corr,add=TRUE, type="lower", method="number",order="AOE", col="black",diag=FALSE,tl.pos="n", cl.pos="n")#再添加左下部分的数值

  上图展示的是鸢尾花数据集的相关系数矩阵图。图中的“圆圈”越大,相关性越强,越接近深蓝色,代表正相关性越强;越接近红色,代表负相关性越强。对角线都是深蓝色的大圆圈,因为一个变量和其本身的相关系数为1.

  参数含义:

  order=“AOE”表示矩阵使用特征值角排序。

   method:指定可视化的方法,可以是圆形、方形、椭圆形、数值、阴影、颜色或饼图形

  order:指定相关系数排序的方法,可以是原始顺序(original)、特征向量角序(AOE)、第一主成分顺序(FPC)、层次聚类顺序(hclust)和字母顺序。

  cl.pos:不需要图例时,只需指定该参数为n

  diag=FALSE表示显示对角线上的数值。

  tl.pos:n表示不添加文本标签

2 绘制QQ图


  统计学里Q-Q图(Q代表分位数)是一个概率图,用图形的方式比较两个概率分布。

  把Q-Q图的两个分位数放在一起比较。如果两个分布相似,则该Q-Q图趋近于落在y=x线上。

  考察残差项的正态性假定,需要对Q-Q图来进行观察。对此进行如下图形观察Q-Q图。

  1)使用qqnorm函数来绘制Q-Q图,给qqnorm一个数值型变量,之后在此基础上使用qqline绘制对角线。

par(mfrow=c(1,2))
qqnorm(data$Sepal.Length)
qqline(data$Sepal.Length)
qqnorm(data$Petal.Length)
qqline(data$Petal.Length)

  观察上图是关于残差项的Q-Q图,Q-Q图仍有部分残差点落在对角线之外,因此认为正态性并未得到满足。

  2)在建立回归的基础上观察Q-Q图

library(readxl)
jsdata = read_excel("D:/TASK/净水器建模(1月19日)副本1.xlsx")   ## 读取原始数据
jsdata$销量=log(jsdata$销量+1)  
lm=lm(销量~as.factor(保修期)+as.factor(智能类型)+as.factor(功效)+原价+促销价+评价+人气+描述评分+物流评分,data=jsdata)
par(mfrow=c(1,2))##设置画图1*2的格式
plot(lm,which=c(1:2))##模型诊断图,存在异方差现象,对因变量取对数

  从上图来看,右上图是考察残差项的正态性假定,是关于残差项的Q-Q图。因残差点都有规律地落在对角线之内,因此认为残差项的正态性已经得到满足。

3 本章汇总


参数 类别 功能
gcookbook 函数包 用于调取内部数据集
corrplot 函数包 corrplot绘制相关系数图
cor 函数 相关系数
corrgram 函数 corrgram绘制相关系数图
panel.shade 参数 阴影
panel.pie 参数 显示饼图
lower.panel 参数 下面板
upper.panel 参数 上面板
par 参数 设置绘图格式
qqnorm 函数 绘制图形
qqline 函数 添加对角线
readxl 函数包 读取EXCEL数据包