Multilevel Modeling Using R 第六章

那么这一章主要讲如何将分析的数据可视化

线性回归图

照例我们先看一下数据结构


data 上

data 下

我们来看下y1和x1的线性关系:

plot(anscombe$y1 ~ anscombe$x1)

#标记R^2
text(5.9, 9.35, expression(paste("The value of ", italic(R)^2, " is.67", sep = "")))

我们根据数据点的分布拟合出回归直线

当然还有另一套代码:

data(anscombe)
# Fit the regression model. data.1 <- lm(y1~x1, data = anscombe)
# Scatterplot of the data. plot(anscombe$y1 ~ anscombe$x1, ylab = expression(italic(Y)), ylim = c(2, 12), xlab = expression(italic(X)), main = "Anscombe's Data Set 1")
# Add the fitted regression line. abline(data.1)
# Add the text and expressions within the figure. text(5.9, 9.35, ex pression(paste("The value of ", italic(R)^2, " is.67", sep = "")))
text(5.9, 10.15, expression(italic(hat(Y)) = =3+italic(X)*.5))
# Break the axis by adding a zigzag. require(plotrix) axis.break(axis = 1, style = "zigzag") axis.break(axis = 2, style = "zigzag")

线性模型的可视化

这里我所叙述的有别于此书,我重点讲述下对于线性模型有什么典型的图需要我们做可视化
对于普通的多元线性模型,如果我们想了解其中任意几个变量间的关系,并可视化,我们可以:

#利用pairs()函数取出我们感兴趣的若干变量
pairs( cb ind(GPA = Cassidy$GPA, CTA_Total = Cassidy$CTA.tot, BS_Total = Cassidy$BStotal))

这张图就衡量我们GPA,CTA_Total和BS_Total这三个变量之间的关系(可以看看有没有共线性)
另外可以计算以上三个变量的相关性:

cor(na.omit( cb ind(GPA = Cassidy$GPA, CTA_Total = Cassidy$CTA.tot, BS_Total = Cassidy$BStotal)))

可计算两两变量的相关性

由于我们的线性模型的每一个数据点到回归直线的残差不同,我们可以根据每个数据点的残差做一个直方图,来看一下残差的主要分布

#直方图
hist(resid.1, fr eq = FALSE, main = "Density of Residuals for Model 1", xlab = "Residuals") lines(density(resid.1))
#q-q图
qqnorm(scale(resid.1), main = "Normal Quantile-Quantile Plot") 

qqline(scale(resid.1))
直方图

对我们做出的直方图我们可以检验是都满足正态分布,利用q-q图即可检验


q-q图

嵌套型数据可视化

这个就是我们多分类的模型可视化

dotplot( reorder(class, geread) ~ geread, data = Achieve.940.767, jitter.y = TRUE, ylab = "Classroom", ma in = "Dotplot of \'geread\' for Classrooms in School 767, Which is Within Corporation 940")

由这幅图我们知道,纵轴为分类变量(classroom)以不同班级进行分类,横坐标为阅读分数,每个点代表每一个学生,那么这样并排画的好处是可以横向比较各班级的成绩

那么我们夸张点,我们以corporation为分类变量

dotplot(reorder(corp, geread) ~ geread, data = Achieve.Class_ Aggregated, jitter.y = TRUE, yl ab = "Corporation", main = "Dotplot of Classroom Mean \'geread\' Within the Corporations")

是吧!,很多

xyplot
接着上一个例子,我们以corporation为分类变量,我们一定想知道每个分类变量里面每一个学生的阅读分数和词汇分数的关系
这时候:

xyplot(geread ~ gevocab | corp, data = Achieve)

strip = strip.custom(strip.names = FALSE, strip.levels = c(FALSE, TRUE))

Bam!!!其中,纵坐标是阅读分数,横坐标是词汇分数
{ }里的数字代表分类变量,每个数据点代表每一个学生

你可能感兴趣的:(Multilevel Modeling Using R 第六章)