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!!!其中,纵坐标是阅读分数,横坐标是词汇分数
{ }里的数字代表分类变量,每个数据点代表每一个学生

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 首页 资讯 文章 资源 小组 相亲 登录 注册 首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他...
    Helen_Cat阅读 3,932评论 1 10
  • 以西瓜书为主线,以其他书籍作为参考进行补充,例如《统计学习方法》,《PRML》等 第一章 绪论 1.2 基本术语 ...
    danielAck阅读 4,643评论 0 6
  • A 准确率(accuracy) 分类模型预测准确的比例。在多类别分类中,准确率定义如下: 在二分类中,准确率定义为...
    630d0109dd74阅读 1,425评论 0 3
  • 第三章 数据库系统 3.1 数据库管理系统的类型 通常有多个分类标准。如按数据模型分类、按用户数分类、按数据库分布...
    步积阅读 2,806评论 0 7
  • 三坊七巷是福州一景点,里面不管是白天还是黑夜,那儿都很热闹,下面来听听我的介绍。 三坊七巷也不是太长只要有一点耐心...
    吴照玲阅读 394评论 0 0