Multivariate Statistics

(多元统计)

基本的R包已经实现了传统多元统计的很多功能,然而CRNA的许多其它包提供了更深入的多元统计方法,下面做个简要的综述。多元统计的特殊应用在CRNA的其它任务列表(task

view)里也会提及,如:排序(ordination)会在Environmetrics(http://cran.r-project.org/web/views/Environmetrics.html)里说到;有监督的分类方法能在MachineLearning(http://cran.r-project.org/web/views/MachineLearning.html)里找到;无监督的分类在Cluster(http://cran.r-project.org/web/views/Cluster.html)里。

这里要综述的包主要分为以下几个部分:

1) 多元数据可视化(Visualising multivariate

data):

绘图方法:

基本画图函数(如:pairs()、coplot())和lattice包里的画图函数(xyplot()、splom())可以画成对列表的二维散点图,3维密度图。car包里的scatterplot.matrix()函数提供更强大的二维散点图的画法。cwhmisc包集合里的cwhplot包的

pltSplomT()函数类似pair()画散点图矩阵,而且可以在对角位置画柱状图或密度估计图。除此之外,scatterplot3d包可画3维的散点图,aplpack包里bagplot()可画二变量的boxplot,spin3R()可画可旋转的三维点图。misc3d包有可视化密度的函数。

YaleToolkit包提供许多多元数据可视化技术,agsemisc也是这样。更特殊的多元图包括:aplpack包里的faces()可画

Chernoff’s

face;MASS包里的parcoord()可画平行坐标图(矩阵的每一行画一条线,横轴表示矩阵的每列);graphics包里的stars()可画多元数据的星状图(矩阵的每一行用一个星状图表示)。ade4包里的mstree()和vegan包里的spantree()可画最小生成树。

calibrate包支持双变量图和散点图,chplot包可画convex

hull图。geometry包提供了和qhull库的接口,由convexhulln()可给出相应点的索引。ellipse包可画椭圆,也可以用

plotcorr()可视化相关矩阵。denpro包为多元可视化提供水平集树形结构(level set

trees)。graphics包里的mosaicplot()和vcd包里的mosaic()函数画马赛克图(mosaic

plot)。gclus包提供了针对聚类的散点图和平行坐标图。rggobi包和DescribeDisplay包是GGobi的接口,DescribeDisplay的图可达到出版质量的要求;xgobi包是XGobi和XGvis的接口,可实现动态交互的图。最后,iplots包提供强大的动态交互图,尤其是平行坐标图和马赛克图。seriation包提供seriation方法,能重新排列矩阵和系统树。

数据预处理:

AIS

包提供多元数据的初步描述函数。Hmisc包里的summarize()和summary.formula()辅助描述数据,varclus()函数可做聚类,而dataRep()和find.matches()找给定数据集的典型数据和匹配数据。KnnFinder包里的nn()函数用kd-tree找相似变量的个数。dprep包为分类提供数据预处理和可视化函数,如:检查变量冗余性、标准化。base包里的dist()和cluster包里的

daisy()函数提供距离计算函数;proxy包提供更多的距离测度,包括矩阵间的距离。simba包处理已有数据和缺失数据,包括相似性矩阵和重整形。

2) 假设检验(Hypothesis

testing):

ICSNP包提供霍特林(Hotellings)T2检验和许多非参检验方法,包括基于marginal

ranks的位置检验(location

test),计算空间中值和符号,形状估计。cramer包做两样本的非参检验,SpatialNP可做空间符号和秩检验。

3) 多元分布(Multivariate

distributions):

描述统计(Descriptive

measures):

stats 包里的cov()和and

cor()分别估计协方差和相关系数。ICSNP包提供几种数据描述方法,如:spatial.median()估计空间中值,其它的函数估计

scatter。MASS包里的cov.rob()提供更健壮的方差/协方差矩阵估计。covRobust包用最近邻方差估计法估计协方差。

robustbase包的covMCD()估计协方差和covOGK()做Orthogonalized

Gnanadesikan-Kettenring。rrcov包提供可扩展和稳健的估计函数covMcd()、covMest()。corpcor包可计算大规模的协方差和偏相关矩阵。

密度估计和模拟(Densities (estimation and

simulation)):

MASS

包的mvrnorm()产生多元正态分布的随机数。Mvtnorm包有多元t分布和多元正态分布的概率和分位数函数,还可计算多元正态分布的密度函数。

mvtnormpcs包提供基于Dunnett的函数。mnormt包提供元t分布和多元正态分布的密度和分布函数,并可产生随机数。sn包提供多元偏t

分布和偏正态分布的密度、分布、随机数函数。delt包提供了许多估计多元密度的函数方法,如:CART和贪婪方法。CRAN的Cluster任务列表(http://cran.r-project.org/web/views/Cluster.html)有更全面的信息,ks包里的rmvnorm.mixt()和dmvnorm.mixt()函数产生随机数和估计密度,bayesm包里有多种拟合方法。很多地方都提供了模拟Wishart分布的函数,如:bayesm包里的rwishart(),MCMCpack包里的rwish(),而且

MCMCpack包还有密度函数dwish()。KernSmooth

包里的bkde2D()和MASS包的kde2d()做分箱(binned)或不分箱二维核密度估计。ks包也像ash和GenKern包样可做核平滑(kernel

smoothing)。prim包用法找高维多元数据的高密度区域,feature包可计算多元数据的显著特征。

正态检验(Assessing

normality):

mvnormtest

包提供Shapiro-Wilks检验的多元数据延伸方法,mvoutlier包检测多元离群点(outlier),ICS包可检验多元正态分布。

energy 包里的mvnorm.etest()基于E统计量做正态检验,k.sample()检验多个数据是否来自同一分布。dprep

包里的mardia()用Mardia检验正态性。stats包里的mauchly.test()可检验Wishart分布的协方差矩阵。

连接函数(Copulas):

copula 包提供常规的copula函数的程序,包括:normal,

t, Clayton, Frank, Gumbel。fgac包提供generalised archimedian

copula,mlCopulaSelection包可做二变量的copula。

4) 线形模型(Linear models):

stats

包里的lm()可做多元线形模型,anova.mlm()比较多个多元线形模型,manova()做多元方差分析(MANOVA)。sn包的

msn.mle()和 and

mst.mle()可拟合多元偏正态和偏t分布模型。pls包提供偏最小二乘回归(PLSR)和主成分回归;ppls包可做惩罚偏最小二乘回归;dr包提供降维回归方法,如.:片逆回归法(Sliced

Inverse Regression)、片平均方差估计(sliced average variance

estimation)。plsgenomics包做基于偏最小二乘回归的基因组分析。relaimpo包可评估回归参数的相对重要性。

5) 投影方法(Projection

methods):

主成分(Principal

components):

stats

包的prcomp()(基于svd())和princomp()(基于eigen())能计算主成分。sca包做单分量分析。nFactors可评价碎石图(Scree

plot),paran包可评估主成分分析得到的主成分和因子分析得到的因子。pcurve包做主曲线(Principal

Curve)分析和可视化。gmodels包提供适合大矩阵的fast.prcomp()和fast.svd()。kernlab包里的kpca()用核方法做非线性的主成分分析。pcaPP包用投影寻踪(projection

pursuit)法计算稳健/鲁棒(robust)主成分。amap包的acpgen()和acprob()函数分别针对广义(generalized)和稳健(robust)主成分分析。主成分在很多方面也有相应的应用,如:涉及生态的ade4包,感官的SensoMinR包。psy包里有用于心理学的各种程序,与主成分相关的有:sphpca()用球形直观表示相关矩阵,类似于3D的PCA;fpca()图形展示主成分分析的结果,而且允许某些变量间有相关性;scree.plot()图形展示相关或协方差矩阵的特征值。PTAk包做主张量分析(Principal

Tensor Analysis)。smatr包提供关于异速生长(allometry)的函数。

典型相关(Canonical

Correlation):

stats包里的cancor()是做典型相关的函数。kernlab包提供更稳健的核方法kcca()。concor包提供了许多concordance

methods。

冗余度分析(Redundancy

Analysis):

calibrate包里的rda()函数可做冗余度分析和典型相关。fso包提供了模糊集排序(Ordination)方法。

独立成分(Independent

Components):

fastICA

包用fastICA算法做独立成分分析(ICA)和投影寻踪分析(Projection

Pursuit),mlica包提供独立成分分析的最大似然拟合,PearsonICA包用基于互信息的打分函数分离独立信号。ICS包能执行不变坐标系(invariant

coordinate system)和独立成分分析(independent

components)。JADE包提供就JADE算法的接口,而且可做一些 ICA。

普鲁克分析(Procrustes

analysis):

vegan包里的procrustes()可做普鲁克分析,也提供排序(ordination)函数。更一般的普鲁克分析可由FactoMineR包里的GPA()实现。

6) 主坐标/尺度方法(Principal coordinates /

scaling methods):

stats

包的cmdscale()函数执行传统的多维尺度分析(multidimensional

scaling,MDS)(主坐标分析Principal Coordinates

Analysis),MASS包的sammon()和isoMDS()函数分别执行Sammon和Kruskal非度量多维尺度分析。vegan包提供非度量多维尺度分析的包装(wrappers)和后处理程序。

7) 无监督分类(Unsupervised

classification):

聚类分析:

CRAN

的Cluster任务列表全面的综述了R实现的聚类方法。stats里提供等级聚类hclust()和k-均值聚类kmeans()。cluster包里有大量的聚类和可视化技术,clv包里则有一些聚类确认程序,e1071包的classAgreement()可计算Rand

index比较两种分类结果。Trimmed k-means聚类分析可由trimcluster包实现,聚类融合方法(Cluster

Ensembles)由clue包实现,clusterSim包能帮助选择最佳的聚类,hybridHclust包提供一些混合聚类方法。energy包里有基于E统计量的距离测度函数edist()和等级聚类方法hclust.energy()。LLAhclust包提供基于似然(likelihood

linkage)方法的聚类,也有评定聚类结果的指标。fpc包里有基于Mahalanobis距离的聚类。clustvarsel包有多种基于模型的聚类。模糊聚类(fuzzy

clustering)可在cluster包和hopach包里实现。Kohonen包提供用于高维谱(spectra)或模式(pattern)的有监督和无监督的SOM算法。clusterGeneration包帮助模拟聚类。CRAN的Environmetrics任务列表里也有相关的聚类算法的综述。mclust包实现了基于模型的聚类,MFDA包实现了功能数据的基于模型的聚类。

树方法:

CRAN

的MachineLearning任务列表有对树方法的细节描述。分类树也常常是重要的多元方法,rpart包正是这样的包,rpart.permutation包还可以做rpart()模型的置换(permutation)检验。TWIX包的树可以外部剪枝。

hier.part包分割多元数据集的方差。mvpart包可做多元回归树,party包实现了递归分割(recursive

partitioning),rrp包实现了随机递归分割。caret包可做分类和回归训练,进而caretLSF包实现了并行处理。kknn包的k-近邻法可用于回归,也可用于分类。

8) 有监督分类和判别分析(Supervised

classification and discriminant analysis):

MASS

包里的lda()和qda()分别针对线性和二次判别分析。mda包的mda() and

fda()允许混合和更灵活的判别分析,mars()做多元自适应样条回归(multivariate adaptive

regression splines),bruto()做自适应样条后退拟合(adaptive spline

backfitting)。earth包里也有多元自适应样条回归的函数。rda包可用质心收缩法(shrunken centroids

regularized discriminant

analysis)实现高维数据的分类。VR的class包的knn()函数执行k-最近邻算法,knncat包里有针对分类变量的k-最近邻算法。

SensoMineR包的FDA()用于因子判别分析。许多包结合了降维(dimension

reduction)和分类。klaR包可以做变量选择,可处理多重共线性,还有可视化函数。superpc包利用主成分做有监督的分类,classPP

包则可为其做投影寻踪(projection

pursuit),gpls包用广义偏最小二乘做分类。hddplot包用交叉验证的线性判别分析决定最优的特征个数。supclust包可以根据芯片数据做基因的监督聚类。ROCR提供许多评估分类执行效果的方法。predbayescor包可做朴素贝叶斯(naïve

Bayes)分类。关于监督分类的更多信息可以看MachineLearning任务列表。

9) 对应分析(Correspondence

analysis):

MASS

包的corresp()和mca()可以做简单和多重对应分析。ca包提供单一、多重和联合(joint)对应分析。ade4包的ca()和mca()分别做一般的和多重对应分析。vegan包里也有类似的函数。cocorresp可实现两个矩阵间的co-correspondence分析。

FactoMineR

包的CA()和MCA()函数也能做类似的简单和多重对应分析,还有画图函数。homals执行同质分析(homogeneity)。

10) 前向查找(Forward search):

Rfwdmv包执行多元数据的前向查找。

11) 缺失数据(Missing data):

mitools 包里有缺失数据的多重估算(multiple

imputation)的函数, mice包用chained

equations实现了多重估算,mvnmle包可以为多元正态数据的缺失值做最大似然估计(ML

Estimation),norm包提供了适合多元正态数据的估计缺失值的期望最大化算法(EM

algorithm),cat包允许分类数据的缺失值的多重估算,mix包适用于分类和连续数据的混合数据。pan包可为面版数据(panel

data)的缺失值做多重估算。VIM包做缺失数据的可视化和估算。Hmisc包的aregImpute()和transcan()提供了其它的估算缺失值方法。EMV包提供了knn方法估计缺失数据。monomvn包估计单调多元正态数据的缺失值。

12) 隐变量方法(Latent variable

approaches):

stats

包的factanal()执行最大似然因子分析,MCMCpack包可做贝叶斯因子分析。GPArotation包提供投影梯度(Gradient

Projection)旋转因子法。FAiR包用遗传算法作因子分析。ifa包可用于非正态的变量。sem包拟合线形结构方程模型。ltm包可做隐含式语义分析

(Latent semantic analysis),eRm包则可拟合Rasch模型(Rasch

models)。FactoMineR包里有很多因子分析的方法,包括:MFA()多元因子分析,HMFA()等级多元因子分析,ADFM()定量和定性数据的多元因子分析。tsfa包执行时间序列的因子分析。poLCA包针对多分类变量(polytomous

variable)做潜类别分析(Latent Class Analysis)。

13) 非高斯数据建模(Modelling non-Gaussian

data):

bivpois

包建模Poisson分布的二变量。mprobit包提供了适合二元和顺序响应变量的多元概率模型。MNP包实现了Bayesian多元概率模型。

polycor包可计算多组相关(olychoric correlation)和四分相关(tetrachoric

correlation)矩阵。bayesm包里有多种模型,如:表面非相关回归(Seemingly unrelated

Regression),多元logit/probit模型, 工具变量法(Instrumental

Variables)。VGAM包里有:广义线形和可加模型(Vector Generalised Linear and Additive

Models),减秩回归(Reduced Rank regression)。

14) 矩阵处理(Matrix

manipulations):

R作为一种基于向量和矩阵的语言,有许多处理矩阵的强有力的工具,由包Matrix和,SparseM实现。matrixcalc包增加了矩阵微积分的功能。spam包提供了更深入的针对稀疏矩阵的方法。

15) 其它(Miscellaneous

utitlies):

DEA包执行数据包络分析(data envelopment

analysis,DEA)。abind包组合多维array。Hmisc

包的mApply()扩充了apply()的功能。除了前面描述的功能,sn包还未偏正态和偏t分布提供边缘化(marginalisation)、仿射变换(affine

transformations)等。SharedHT2包执行芯片数据的Hotelling's

T2检验。panel包里有面版数据(panel data)的建模方法。mAr包可做向量自回归模型(vector

auto-regression),MSBVAR包里有贝叶斯向量自回归模型。Hmisc包的rm.boot()函数bootstrap重复测量试验(Repeated

Measures Models)。compositions包提供复合数据分析(compositional data

analysis)。

cramer包为两样本数据做多元非参Cramer检验。psy里有许多心理学的常用方法。cwhmisc包集合的

cwhmath包里有许多有趣的功能,如各种旋转函数。desirability包提供了基于密度函数的多变量最优化方法。geozoo包可以画

geozoo包里定义的几何对象。

r语言的MASS包干什么的_R语言综述的包相关推荐

  1. r语言的MASS包干什么的_R语言常用包汇总

    转载于:https://blog.csdn.net/sinat_26917383/article/details/50651464?locationNum=2&fps=1 一.一些函数包大汇总 ...

  2. 语言的MASS包干什么的_R语言绘制平行坐标图(PCP)示例

    R语言绘制平行坐标图(PCP)示例前文在讲述冲击图(alluvial diagram)时提到了,它在某种形式上是平行坐标图(parallel coordinate plot,PCP)的一种变体,那么本 ...

  3. r语言ggplot2一夜多图_R语言ggplot2画四方形的热图展示相关系数的简单小例子

    R语言里画热图通常会使用pheatmap这个包.如果想使用ggplot2这个包画热图的话需要借助geom_tile()这个函数.今天的内容就以相关系数的数据为例介绍一下ggplot2画热图的一个简单小 ...

  4. r语言的MASS包干什么的_怎么记住r语言这么多包?

    如果你觉得太长不想看,那就记得 @Yan He 同学说的R里面有caret,python里面用sklearn 常用检验函数: 常用作图函数包: ggplot2:万能 rattle:fancyRpart ...

  5. R语言在图上标出点坐标_R语言绘制平行坐标图(PCP)示例

    R语言绘制平行坐标图(PCP)示例 前文在讲述 时提到了,它在某种形式上是平行坐标图( parallel coordinate plot,PCP)的一种变体,那么本篇顺便提一下什么是平行坐标图. 平行 ...

  6. r语言在java中的实现_R语言在现实中的应用

    R语言在现实中的应用有哪些?主要有以下几种 - 1.数据科学 "哈佛商业评论"将数据科学家命名为"21世纪最性感的工作". Glassdoor将其命名为2016 ...

  7. r语言 整理、处理数据步骤_R语言万能数据清洗整理包Tidyverse(一)

    数据整理和清洗是任何统计分析的前提,也是最为困难的一个环节,很多软件也提供了数据整理和清洗的功能.甚至连我们常用的EXCEL也可以做这个工作,但是效率很低,而且容易出错,且无法完整保存清洗过程.R语言 ...

  8. r语言 整理、处理数据步骤_R语言之数据处理(一)

    在上一篇小文中,提到了关于R语言导入数据的一些方法,之后的重点就转向了数据的处理上.数据处理其实在整个数据分析项目中所占用的时间是比较多的,所以根据处理的目的不同,也有不同的处理方法.在R语言中,我通 ...

  9. r语言ggplot画两条曲线_R语言作图——Line plot with error

    原创:黄小仙 为了画今天的这个图,小仙决定凭空想象一台可以实时监控基因表达水平的设备,成功得到了这么一组数据. 想要画的图是这样子滴. Step1.绘图数据的准备 首先要把你想要绘图的数据调整成R语言 ...

最新文章

  1. 【精辟】人工智能先锋人物杰夫·辛顿说:“深度学习将无所不能”
  2. mysql同时购买两种商品_SQL题1——查询所有购入商品为两种或两种以上的购物人记录...
  3. hdu1711 KMP模板
  4. 注意稳住或慢抬离合,给车辆一些缓冲,才能平顺起步。抬得太快,
  5. 最近比较火的一款字节产品
  6. LoadRunner常遇见的问题
  7. 2020年python工资一般多少-武汉Python薪资一般是多少?真实数据告诉你
  8. [转载] 使用Python中的NLTK和spaCy删除停用词与文本标准化
  9. htm5l,第一个script代码练习
  10. 手绘线条一直画不直_板绘线条不流畅怎么办?线稿就得这样练!
  11. Tomcat 服务详解
  12. 83行代码通关攻略|据说看的人都过了
  13. Shi-Tomasi角点检测算法
  14. 【STM32学习】(28)STM32实现光照度采集(标准库和HAL库实现)
  15. Ubuntu下安装Remix OS双系统
  16. Laravel Excel(maatwebsite/excel )导入
  17. 使用Cplex求解均值方差模型
  18. python从键盘输入一个数、判断其是奇数还是偶数_从键盘上任意输入一个正数,判断是奇数还是偶数...
  19. EventLog Analyzer:高效保护网络安全的强大工具
  20. 跨平台开发解决方案浅谈

热门文章

  1. 【网络流】【Dinic】【Next Array】Dinic模板
  2. 【JavaScript学习】JavaScript对象创建
  3. 淘宝山寨IOS sdk
  4. 办公自动化及工作流技术
  5. Hive的数据模型-管理表
  6. java 数据保存内存_java中的各种数据类型在内存中存储的方式 一
  7. [转载] Java StringBuilder StringJoiner
  8. arm tbh_TBH的完整形式是什么?
  9. Java RandomAccessFile seek()方法与示例
  10. long类型20位示例_Java Long类reverseBytes()方法与示例