damage|R描述统计,判断变量是否服从正态分布

【damage|R描述统计,判断变量是否服从正态分布】来源:丁点帮你
作者:丁点helper
今天 , 我们来看看定量变量的统计描述应该怎么做 。
对于定量变量 , 也就是连续型随机变量 , 要想整体感知它的特征 , 第一步就是了解它的分布 。 所谓『分布』 , 可以理解为随机变量的各个取值出现的次数或频率 。
正态分布 多重线性回归 , 一般是指有多个自变量X , 只有一个因变量Y 。 前面我们主要是以简单线性回归为例在介绍 , 两者的差距主要在于自变量X的数量 , 在只有一个X时 , 就称简单线性回归 。
正态分布是统计中最常用到的分布类型 , 也是大自然中许多许多事物和现象都遵循的分布 。 例如人群的身高、某地区的降雨量、某车间所生产的螺丝的直径……
此外 , 正态分布还是很多统计方法的理论基础 。 如z检验中z统计量服从的是标准正态分布 , 回归分析中参数估计的前提之一是残差服从均值为0的条件正态分布 。
《卫生统计学 第8版》中对正态分布的一句评述总结得很好:如果说这个世界充满了可能性 , 那么正态分布就让这个看似纷乱五章的世界显得竟然有序一些了 , 它使得许多偶然性现象通过数学工具量化进行计算和预测成为可能 。
想要了解正态分布 , 首先就要先直观地看看正态分布的样子 。 rnorm()这个函数就是用来产生服从正态分布的数据的 。
# 从标准正态分布中随机抽取1000个数字 , 并绘制直方图 hist(rnorm(1000))# 从普通正态分布中随机抽取1000个数字 , 并绘制直方图hist(rnorm(1000,mean=4, sd=4))
上述两组数字的频数分布直方图如下 , 因为这两组数字都来自正态分布的总体 , 所以下面的直方图看起来呈现出了中间高、两边低的『钟形』 。

damage|R描述统计,判断变量是否服从正态分布
文章图片


damage|R描述统计,判断变量是否服从正态分布
文章图片

正态Q-Q图 多重线性回归 , 一般是指有多个自变量X , 只有一个因变量Y 。 前面我们主要是以简单线性回归为例在介绍 , 两者的差距主要在于自变量X的数量 , 在只有一个X时 , 就称简单线性回归 。
在上面的例子中 , 已知了数据来自正态分布总体 。 但是很多情况下 , 我们并不知道所获取的数据是否服从正态分布 , qqnorm()和qqline()这两个函数可以帮我们解决这个问题 。
# 随机获取1000个来自标准正态分布的数据# 并存储在randnorm这个对象中randnorm <- rnorm(1000) # 绘制正态Q-Q图qqnorm(randnorm,col="red",pch=19)# 该代码须与qqnorm()代码同时运行qqline(randnorm,col="black")
qqline()的作用是添加直线 , 该直线默认会穿过第一和第三个四分位数点 。
如果qqnorm()图中的所有点大致在这条直线上 , 则认为被验证的数据randnorm服从正态分布 。

damage|R描述统计,判断变量是否服从正态分布
文章图片

为什么正态Q-Q图有这样的功能呢? Q-Q图的全称是quantile-quantile图(百分位数图) , 也就是说 , 这个图的横轴和纵轴分别是两组数据的百分位数 。 每组数据的相同百分位数能在坐标系中确定一个点 , 这些点构成的图就是Q-Q图 。
那么正态Q-Q图就是正态百分位数图 , 即其中一组数据服从正态分布 。 这组数据可以作为横轴 , 也可作为纵轴 , 不影响结果 。
百分位数是什么意思?粗略地讲 , 就是将一组数据从小到大排列 , 10%的数字小于等于某一数值 , 该数值就是这组数据的第10百分位数;如有25%的数字小于等于某一数值 , 该数值就是这组数据的第25百分位数 , 一般称为第一个四分位数 。
如果两组数据的分布接近或相同 , 相同百分位数的数值在其各自数轴上的相对位置应该接近 。 比如 , 两组数据的第10百分位数在其各自数轴上的相对位置接近 。
正态Q-Q图的绘制原理 多重线性回归 , 一般是指有多个自变量X , 只有一个因变量Y 。 前面我们主要是以简单线性回归为例在介绍 , 两者的差距主要在于自变量X的数量 , 在只有一个X时 , 就称简单线性回归 。
例如 , damage这个对象中存储了近年来某国家因飓风而损失的财产价值(单位:十亿美元) , 想看看这个数据是否服从正态分布 。
damage <- c(3, 4, 4, 5, 6, 7, 9, 14, 15, 44, 100)qqnorm(damage,col="red",pch=19, cex=2, main="Normal Quantile Plot for Hurricane Data", datax = TRUE)qqline(damage, col="black", lwd=3, datax = TRUE)
验证思路如下:

  • 将damage中的10个数值从小到大排列 。
  • 如果其服从正态分布 , 那么最小的一个数字 , 3 , 应该大致位于正态分布曲线的第1/11百分位数之处;第二小的数字 , 4 , 应该大致位于正态分布曲线的第2/11百分位数之处……以此类推 , 最大的数字 , 也就是第10个数字 , 100 , 应该大致位于正态分布曲线的第10/11百分位数之处 。
  • 所以我们就拿来标准正态分布曲线 , 并找到了其第1/11, 2/11……10/11百分位数的数值 。 一般选择标准正态分布 , 但其实任何正态分布都可以 , 因为任何正态分布的特定百分位数在数轴上的相对位置一样 。

damage|R描述统计,判断变量是否服从正态分布
文章图片

以拟验证数据为横坐标 , 以其中每个数值对应的标准正态分布各百分位数值为纵坐标 , 绘制散点图 。 如果damage服从正态分布 , 这两组数值在其各自数轴上的相对位置应该接近 。
qqline()的作用是添加直线 , 该直线默认会穿过第一和第三个四分位数点 。 如果qqnorm()图中的所有点大致在这条直线上 , 则认为被验证的数据服从正态分布 。 即被验证数据的每个百分位数在其数轴上的位置和正态分布的相应百分位数在其数轴上的位置大致相同 。

damage|R描述统计,判断变量是否服从正态分布
文章图片

飓风damage数据不服从正态分布

    推荐阅读