相关矩阵和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数据包 |