R语言:多元正态分布的检验
多元正态分布的检验
- 多元正态分布
- mshapiro.test {mvnormtest}
- mvn {MVN}
多元正态分布
转自个人微信公众号【Memo_Cleon】的统计学习笔记:多元正态分布检验的R实现方法。
多元正态分布也称多元高斯分布。如同正态分布在单变量分析中的地位类似,在对多个因变量(多元)同时进行分析时,常常假设因变量组合成的向量服从一个多元正态分布。比如重复测量数据将重复的测量结果(比如各个时间点上的测量结果)视为不同的因变量,可以采用多元方差分析,此时就要求各个因变量的组合向量服从多元正态分布。对多元正态分布的判断通常采用的边际分布来判断,即每个因变量的分布呈正态或近似正态。但实际上单因变量正态是多因变量多元正态的必要非充分条件:所有因变量的组合服从多元正态分布,每个因变量的分布(边际分布)必然呈正态;每个因变量的分布呈正态分布,所有因变量的组合未必呈正态分布。只要有一个因变量不服用正态分布则组合分布肯定不服从多元正态分布。
虽然我们可以通过边际分布来大体判断,有没有统计方法直接判断是否满足多元正态分布呢?当然,R有无所不能的“包”!比如程序包mvnormtest【函数mshapiro.test】、程序包mvShapiroTest【mvShapiro.Test】、程序包MVN【函数mvn】、程序包mvnTest【函数AD.test、CM.test、DH.test、HZ.test、R.test、S2.test等】、程序包mvtnorm【函数pmvnorm】、程序包energy【函数mvnorm.e、mvnorm.test、mvnorm.etest】……
我们以mshapiro.test {mvnormtest}和mvn {MVN}为例演示多元正态分布检验的R实现方法。
mshapiro.test {mvnormtest}
mshapiro.test(U):Performs the Shapiro-Wilk test for multivariate normality。U要求是数值型矩阵,且a matrix with number of columns (sample size) between 3 and 5000。因为在一般在录入时行表示观测/记录,列表示变量/字段,因此使用此函数需要先对行和列进行转置,转置函数为t(“矩阵或数据框”)。
示例:两组新生儿出生时的体重与身长数据如下。预对两组的体重和身高同时进行检验,可以考虑多元方差分析,应考察多元正态性。
文件导入:
library(openxlsx) #调用程序包openxlsx
mn<-read.xlsx(“D:/Temp/multivnorm.xlsx”,1) #从名称为multivnorm的excel文件中导入第1个sheet的数据到数据框mn中
**将数据调整成mshapiro.test的分析格式:**对数据框mn的行列进行转置
A<-t(mn[1:8,3:4])
B<-t(mn[9:16,3:4])
多元正态分析:
library(mvnormtest) #调用程序包mvnormtest
mshapiro.test(A)
mshapiro.test(B)
结果显示A组多元正态分布SW检验W=0.912,P
=0.366>0.05,呈二元正态分布;B组多元正态分布SW检验W=0.861,P=0.122>0.05,呈二元正态分布。
mvn {MVN}
mvn(data, subset = NULL, mvnTest = c(“mardia”, “hz”, “royston”, “dh”, “energy”), covariance = TRUE, tol = 1e-25, alpha = 0.5, scale = FALSE, desc = TRUE, transform = “none”, R = 1000, univariateTest = c(“SW”, “CVM”, “Lillie”, “SF”, “AD”), univariatePlot = “none”, multivariatePlot = “none”, multivariateOutlierMethod = “none”, bc = FALSE, bcType = “rounded”, showOutliers = FALSE, showNewData = FALSE)。Data为矩阵或数据框。
示例:10名肥胖患者在医生指导下服用药物减肥,按统一标准记录服药前和服药后1-4周的体重。
这是一个典型的无对照的重复测量数据,如将各个时点的体重视为不同的因变量,因变量(结果变量)就不止一个,此时可考虑多元方差分析(MANOVA)对它们同时进行分析。多元方差分析要求多元正态性、组间方差-协方差矩阵同质性、各因变量间有一定的相关性(个体内不独立,但个体间独立)。
library(openxlsx) #调用程序包openxlsx
mn2<-read.xlsx(“D:/Temp/multivnorm.xlsx”,2) #从名称为multivnorm的excel文件中导入第2个sheet的数据到数据框mn2中
U<-mn2[1:10,2:6]
library(MVN)
mvn(U, mvnTest = c(“dh”), multivariatePlot = “qq”)
注:本例10行6列,列名为id、W0、W1、W2、W3、W4。分析时仅筛选列,行不进行筛选,U<-multivnorm[1:10,2:6]可以直接U<-multivnorm[2:6]或者U<-multivnorm[-1]都可以。
结果:本例采用Doornik-Hansen了多变量正态性检验,当然也可以在语句中修改命令,换成Marida, Royston, Henze-Zirkler’s, E-Statistics等方法。结果显示E=6.79,P=0.75>0.05,数据满足多元正态分布。同时结果还给出了每个变量的Shapiro-Wilk检验结果,结果显示W0、W1、W2、W3、W4均满足正态分布。另外本例同时给出了多元正态性的QQ图。
转自个人微信公众号【Memo_Cleon】的统计学习笔记:多元正态分布检验的R实现方法。
R语言:多元正态分布的检验相关推荐
- R语言对数正态分布分布函数Log Normal Distribution(dlnorm, plnorm, qlnorm rlnorm)实战
R语言对数正态分布函数Log Normal Distribution(dlnorm, plnorm, qlnorm & rlnorm)实战 目录 R语言对数正态分布函数Log Normal D ...
- R语言多元(多变量)GARCH :GO-GARCH、BEKK、DCC-GARCH和CCC-GARCH模型和可视化
全文链接:http://tecdat.cn/?p=30647 从Engle在1982发表自回归条件异方差(ARCH)模型的论文以来,金融时间序列数据的波动性就倍受关注.同时,近几年又出现了研究股票市场 ...
- R语言多元Logistic逻辑回归 应用案例
可以使用逐步回归过程确定多元逻辑回归.此函数选择模型以最小化AIC. 如何进行多元逻辑回归 可以使用step函数通过逐步回归过程确定多元逻辑回归.此函数选择模型以最小化AIC. 通常建议不要盲目地遵循 ...
- R语言数据分析笔记——t检验(含正态性检验和方差齐性检验在SPSS和R语言中的操作t检验(单样本、双独立样本、配对样本)在Excel、SPSS、R语言中的操作)
前言:本文为个人学习笔记,为各大网站上的教学内容之综合整理,综合整理了①假设分析的基础知识.②正态性检验和方差齐性检验在SPSS和R语言中的操作.③t检验(单样本.双独立样本.配对样本)在Excel. ...
- R语言-多元统计学分析课程报告
本文我们应用的软件为R语言,进行多元统计分析,所用的数据集为鸢尾花数据集:我们进行了Bayes判别.Fisher判别.系统聚类法.k-均值聚类和主成分分析. # 导入鸢尾花数据集 data<-r ...
- R语言多元Copula GARCH 模型时间序列预测
和宏观经济数据不同,金融市场上多为高频数据,比如股票收益率序列.直观的来说 ,后者是比前者"波动"更多且随机波动的序列,在一元或多元的情况下,构建Copula函数模型和GARCH模 ...
- R语言 —— 多元线性回归
一.模型简介 一元线性回归是一个主要影响因素作为自变量来解释因变量的变化,在现实问题研究中,因变量的变化往往受几个重要因素的影响,此时就需要用两个或两个以上的影响因素作为自变量来解释因变量的变化,这就 ...
- R语言水文序列突变点检验之滑动平均差法
刚入手R语言,代码有些无脑,仅做参考. 以某站44年年径流系列为例,分析序列的突变点. 下面展示一些 内联代码片. #滑动平均差法 Q <- read.csv("D:/1Study/T ...
- 用R语言做正态分布检验
摘自:吴喜之:<非参数统计>(第二版),中国统计出版社,2006年10月:P164-165 1.ks.test() 例如零假设为N(15,0.2),则ks.test(x," ...
最新文章
- php curl选项列表(超详细)
- 潘建伟团队最新研究成果登上Nature:首次实现1120公里长距离无中继纠缠量子密钥分发...
- 安装bigsur卡在12分钟_Big Sur为什么安装不了?macOS Big Sur无法完成安装的解决办法!...
- 和中医学习到的养生方法和知识
- 异星工厂 自动机器人_插件机机器人能够实现工厂自动化
- el-table表格格式化某一列数据;统一处理el-table表格某一列数据
- 32位和64位机器上C语言数据类型的大小
- caffe手写数字分类-学习曲线
- 苹果手机微信语音没声音怎么回事_【云喇叭】微信+支付宝收款语音播报音箱一体机,播报声音大,嘈杂环境也听得见,自带流量卡可连WiFi,无需蓝牙,手机不在店里也播报...
- 推荐系统本质与网易严选实践
- 光耦w314的各引脚图_P621 光耦
- RemoveWGA升级了
- 实习期间的一些思考整理(1)2018.4.8~4.9
- 从零开始实现一个基于RISC-V的流水线处理器 (1) :RISC-V指令集架构详解
- EMS是中国邮政提供的一种快递服务。
- Http简介(关于HTTP请求GET和POST的区别)
- 一文了解linux 内核模块 强制卸载
- MacOS M1配置Java环境
- 83事件对象的作用——阻止事件默认行为
- 未来,人工智能会剥夺人类的工作吗?