摘要:目前经典的统计学分析方法主要有回归分析,Logistic回归,决策树,支持向量机,聚类分析,关联分析,主成分分析,对应分析,因子分析等,那么对于这些经典的分析方法在R中的使用主要有那些程序包及函数呢?
 
1、线性模型~回归分析:
【包】:stats  
【函数】:lm(formula, data,  ...)
逐步回归:step(lm(formula, data,  ...))
回归诊断:influence.measure(lm(formula, data,  ...))
多重共线性:kappa(XX,exact=T), eigen(XX)
自相关检验:一阶:dwtest(y~x) 多阶:bgtest(y~x,order=2,type=”Chisq”)
【备注】:1)stats包里的lm()可做多元线形模型,
anova.mlm()比较多个多元线形模型,
manova()做多元方差分析(MANOVA)。
2)sn包的msn.mle()和 and mst.mle()可拟合多元偏正态和偏t分布模型。
3)pls包提供偏最小二乘回归(PLSR)和主成分回归;
4)ppls包可做惩罚偏最小二乘回归;
5)dr包提供降维回归方法,
如:片逆回归法(Sliced Inverse Regression)、片平均方差估计(sliced average variance estimation)。
6)plsgenomics包做基于偏最小二乘回归的基因组分析。
7)relaimpo包可评估回归参数的相对重要性。
2、logistic回归:
【包】:stats  
【函数】:glm(formula, family=gaussian,data,  ...)
注:family
binomial(link = "logit")
gaussian(link = "identity")
Gamma(link = "inverse")
inverse.gaussian(link = "1/mu^2")
poisson(link = "log")
quasi(link = "identity", variance = "constant")
quasibinomial(link = "logit")
quasipoisson(link = "log")
 
3、无监督分类~决策树:
【包】:rpart
【函数】:rpart(formula,data, method="class",control=ct,parms=list(prior=c(p,1-p),split="information"))

rpart.plot(fit,branch=1,branch.type=2,type=1,extra=102,shadow.col=”gray”,box.col=”green”,

split.cex=1.2,main=”Kyphosis决策树”) #提供了复杂度损失修剪的修剪方法

printcp(fit):告诉分裂到哪一层,CP,nsplit,rel,error,交叉验证的估计误差(xerror),标准误差(xstd)

prune(fit,cp=fit$cptable[which.min(fit$cptable[,"xerror"]),"CP"]):剪枝函数

【备注】:1)CRAN的 MachineLearning任务列表有对树方法的细节描述。

2)分类树也常常是重要的多元方法,rpart包正是这样的包,

3)rpart.permutation包还可以做rpart()模型的置换(permutation)检验。

4)TWIX包的树可以外部剪枝。

5)hier.part包分割多元数据集的方差。

6)mvpart包可做多元回归树,

7)party包实现了递归分割(recursive partitioning),

8)rrp包实现了随机递归分割。

9)caret包可做分类和回归训练,进而caretLSF包实现了并行处理。

10)kknn包的k-近 邻法可用于回归,也可用于分类。

4、支持向量机:

【包】:e1071,kernlab

【函数】:svm(x_train,y_train,type="C-classification",cost=10,kernel="radial",probability=TRUE,scale=FALSE)

svp=ksvm(x,y,type="C-svc",kernel="rbf",kpar=list(sigma=1),C=1)

5、无监督分类~聚类分析:

【包】:stats

【函数】:系统聚类:hclust(d,method=”complete”,members=NULL)

快速聚类:kmeans(x,centers,iter.max=10,nstart=1,algorithm=“Hartigan-Wong”)

距离函数:dist(x,method=”euclidean”,diag=FALSE,upper=FALSE,p=2)

【备注】:1)CRAN的Cluster任务列表全面的综述了R实现的聚类方法。

2)stats里提供等级聚类hclust()和k-均值聚类kmeans()。

3)cluster包里有大量的聚类和可视化技 术,

4)clv包里则有一些聚类确认程序,

5)e1071包的classAgreement()可计算Rand index比较两种分类结果。

6)Trimmed k-means聚类分析可由trimcluster包实现,

7)聚类融合方法(Cluster Ensembles)由clue包实现,

8)clusterSim包能帮助选择最佳的聚类,

9)hybridHclust包提供一些混合聚类方法。

10)energy包里有基于E统计量的距离测度函数edist()和等级聚类方法hclust.energy()。

11)LLAhclust包提供基于似然(likelihood linkage)方法的聚类,也有评定聚类结果的指标。

12)fpc包里有基于Mahalanobis距离的聚类。

13)clustvarsel包有多种基于模型的聚类。

14)模糊聚类(fuzzy clustering)可在cluster包和hopach包里实现。

15)Kohonen包提供用于高维谱(spectra)或模式(pattern)的有监督和无监督的SOM算法。

16)clusterGeneration包帮助模拟聚类。

17)CRAN的Environmetrics任务列表里也有相关的聚类算法的综述。

18)mclust包实现了基于模型的聚类,

19)MFDA包实现了功能数据的基于模型的聚类。

6、关联分析:

【包】:arules,Matrix,lattice,arulesViz

【函数】:apriori(Groceries,parameter=list(support=0.01,confidence=0.2))

eclat(Groceries, parameter = list(support = 0.05),control = list(verbose=FALSE))

7、主成分分析:

【包】:stats

【函数】:princomp(data,cor=False,scores=TRUE,covmat=NULL,subset=rep(TRUE,nrow(as.matrix(x))) ,…)

prcomp(data,cor=False,scores=TRUE,covmat=NULL,subset=rep(TRUE,nrow(as.matrix(x))) ,…)

prcomp:采用观测值的奇异值分解方法;princomp:采用相关系数阵的特征值分解方法

【备注】:1)stats 包的prcomp()(基于svd())和princomp()(基于eigen())能计算主成分。

2)sca包做单分量分析。

3)nFactors可评价碎石 图(Scree plot),

4)paran包可评估主成分分析得到的主成分和因子分析得到的因子。

5)pcurve包做主曲线(Principal Curve)分析和可视化。

6)gmodels包提供适合大矩阵的fast.prcomp()和fast.svd()。

7)kernlab包里的kpca()用核 方法做非线性的主成分分析。

8)pcaPP包用投影寻踪(projection pursuit)法计算稳健/鲁棒(robust)主成分。

9)amap包的acpgen()和acprob()函数分别针对广义(generalized) 和稳健(robust)主成分分析。

8、对应分析:

【包】:ca,MASS,vegan,FactoMineR

【函数】:简单对应分析:ca(data,...)

多重对应分析:mjca(data,...)

plot3d.ca(ca(data,nd=3))

plot(mjca(data,lambda="Burt"))

【备注】:1)MASS包的corresp()和mca()可以做简单和多重对应分析;

2)ca包提供单一、多重和联合对应分析;

3)FactoMineR包的CA()和MCA()函数也能做类似的简单和多重对应分析,还有画图函数,

homals可执行同质分析。

9、因子分析:

【包】:psycho,stats

【函数】:Bartlett球形检验:cortest.bartlett(cor(data),n=length(data))

factanal(~X1 + X2 + X3 + X4,data=freeny,factors=1)

10、神经网络

【包】:nnet

【备注】:nnet包执行单隐层前馈神经网络,nnet是VR包的一部分。

11、随机森林:(回归和分类)

【包】:randomForest,ipred,varSelRF

【备注】:1)ipred包用bagging的思想做回归,分类和生存分析,组合多个模型;

2)party包也提供了基于条件推断树的随机森林法;

3)varSelRF包用随机森林法做变量选择。

12、递归拆分:(回归,分类,生存分析)

【包】:rpart,tree

【备注】:1)递归拆分利用树形结构模型,来做回归、分类和生存分析,主要在rpart包和tree里执行,尤其推荐rpart包。

2)Weka里也有这样的递归拆分法,如:J4.8, C4.5, M5,包Rweka提供了R与Weka的函数的接口

13、Boosting:(提高给定任意学习算法精确度的方法)

【包】:gbm,boost

【备注】:1)gbm包做基于树的梯度下降boosting;

2)boost包包括LogitBoost和L2Boost;

3)GAMMoost包提供基于boosting 的广义相加模型(generalized additive models)的程序;

4)mboost包做基于模型的boosting。

14、模型确认和选择:

【包】:e1071,ipred,svmpath,ROCR,caret,caretLSF

【函数】:tune,errorest,cost,

【备注】:1)e1071 包的tune()函数在指定的范围内选取合适的参数;

2)svmpath包里的函数可用来选取支持向 量机的cost参数C;

3)ROCR包提供了可视化分类器执行效果的函数,如画ROC曲线;

4)caret包供了各种建立预测模型的函数,包括参数选择和重要性量度;
15、缺失数据
【包】:mitools,mice,mvnlme,norm,cat,mix,pan,VIM,Hmisc,EMV,monomvn
【备注】:1)mitools包里有缺失数据的多重估算(multiple imputation)的函数;
2)mice包用chained equations实现了多重估算;
3)mvnmle包可以为多元正态数据的缺失值做最大似然估计(ML Estimation);
4)norm包提供了适合多元正态数据的估计缺失值的期望最大化算法(EM algorithm);
5)cat包允许分类数据的缺失值的多重估算,mix包适用于分类和连续数据的混合数据;
6)pan包可为面版数据(panel data)的缺失值做多重估算;
7)VIM包做缺失数据的可视化和估算;
8)Hmisc包的aregImpute()和transcan()提供了其它的估算缺失值方法;
9)EMV包提供了knn方法估计缺失数据;
10)monomvn包估计单调多元正态数据的缺失值。
16、隐变量方法
【包】:stats,MCMCpack,GPArotation,FAiR,ifa,sem,ltm,eRm,FactoMineR,tsfa,polCA
【备注】:1)stats包的factanal()执行最大似然因子分析,
2)MCMCpack包可做贝叶斯因子分析。
3)GPArotation包提供投影梯度(Gradient Projection)旋转因子法。
4)FAiR包用遗传算法作因子分析。ifa包可用于非正态的变量。
5)sem包拟合线形结构方程模型。
6)ltm包可做隐含式语 义分析 (Latent semantic analysis),
7)eRm包则可拟合Rasch模型(Rasch models)。
8)FactoMineR包里有很多因子分析的方法,
包括:MFA()多元因子分析,HMFA()等级多元因子分析,ADFM()定量和定性 数据的多元因子分析。
9)tsfa包执行时间序列的因子分析。
10)poLCA包针对多分类变量(polytomous variable)做潜类别分析(Latent Class Analysis)。
17、有监督分类和判别分析
【包】:MASS ,mda,
【备注】:1)MASS 包里的lda()和qda()分别针对线性和二次判别分析。
2)mda包的mda() and fda()允许混合和更灵活的判别分析,
3)mars()做多元自适应样条回归(multivariate adaptive regression splines),
4)bruto()做自适应样条后退拟合(adaptive spline backfitting)。
5)earth包里也有多元自适应样条回归的函数。
6)rda包可用质心收缩法(shrunken centroids regularized discriminant analysis)实现高维数据的分类。
7)VR的class包的knn()函数执行k-最近邻算法,
8)knncat包里有针对分类变量的k-最近邻算法。
9)SensoMineR包的FDA()用于因子判别分析。
10)许多包结合了降维(dimension reduction)和分类。
klaR包可以做变量选择,可处理多重共线性,还有可视化函数。
11)superpc包利用主成分做有监督的分类,
12)classPP 包则可为其做投影寻踪(projection pursuit),
13)gpls包用广义偏最小二乘做分类。
14)hddplot包用交叉验证的线性判别分析决定最优的特征个数。
15)supclust包可以根据芯片数据做基因的监督聚类。
16)ROCR提供许多评估分类执行效果的方法。
17)predbayescor包可做朴素贝叶斯(na?ve Bayes)分类。
18、典型相关分析
【包】:stats,kernlab
【备注】:1)stats包里的cancor()是做典型相关的函数。
2)kernlab包提供更稳健的核方法kcca()。
3)concor包提供了许多concordance methods。
4)calibrate包里的rda()函数可做冗余度分析和典型相关。

转自:http://blog.163.com/zhangyanxia2008@126/blog/static/3639752420148126569222/

R--基本统计分析方法(包及函数)的更多相关文章

  1. R语言︱常用统计方法包+机器学习包(名称、简介)

    一.一些函数包大汇总 转载于:http://www.dataguru.cn/thread-116761-1-1.html 时间上有点过期,下面的资料供大家参考基本的R包已经实现了传统多元统计的很多功能 ...

  2. EXCEL 导入 R 的几种方法 R—readr和readxl包

    导入Excel数据至R语言的几种方法 如有如下Excel数据源,如何将数据导入R语言呢?今天主要来介绍几种常见的方法: 一.使用剪贴板,然后使用read.table函数: 首先选择Excel中的数据源 ...

  3. R语言kohonen包主要函数介绍

    最近准备写一篇关于自组织映射 (Self-organizing map)的文章.SOM的代码很多,研究了一圈之后目前使用最顺手的是R语言的kohonen包. 这个kohonen包功能很丰富,但是接口不 ...

  4. R+OCR︱借助tesseract包实现图片文本提取功能

    2016年11月,Jeroen Ooms在CRAN发布了tesseract包,实现了R语言对简单图片的文本提取.分析功能. 利用开源OCR引擎进行图片处理,目前可以识别超过100种语言,R语言可以借助 ...

  5. R语言:recommenderlab包的总结与应用案例

    R语言:recommenderlab包的总结与应用案例   1. 推荐系统:recommenderlab包整体思路 recommenderlab包提供了一个可以用评分数据和0-1数据来发展和测试推荐算 ...

  6. R语言数据挖掘相关包总结-转帖

    与数据挖掘有关或者有帮助的R包和函数的集合. 1.聚类 常用的包: fpc,cluster,pvclust,mclust 基于划分的方法: kmeans, pam, pamk, clara 基于层次的 ...

  7. vlc 详细使用方法:libvlc_media_add_option 函数中的参数设置

    vlc 详细使用方法:libvlc_media_add_option 函数中的参数设置 [转载自]tinyle的专栏 [原文链接地址]http://blog.csdn.net/myaccella/ar ...

  8. R语言中文分词包jiebaR

    R语言中文分词包jiebaR R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据 ...

  9. array_reduce方法用回调函数迭代地将对数组的值进行操作

    在处理php数组的时候,有一种需求特别的频繁,如下二维数组: $arr = array( 1=>array( 'id' => 5, 'name' => '张三' ), 2=>a ...

随机推荐

  1. Linux Process Management && Process Scheduling Principle

    目录 . 引言 . 进程优先级 . 进程的生命周 . 进程表示 . 进程管理相关的系统调用 . 进程调度 . 完全公平调度类 . 实时调度类 . 调度器增强 . 小结 1. 引言 在多处理器系统中,可 ...

  2. 关于 SSV-ID: 4474 POC的分析和思考

    SSV-ID: 4474 SSV-AppDir: Discuz!漏洞 发布时间: 2008-11-21 (GMT+0800) URL:http://sebug.net/vuldb/ssvid-4474 ...

  3. CSS基础知识真难啊

    CSS层叠样式表Cascading Style Sheets CSS派生选择器(上下文选择器): 后代选择器:h1  strong {color:red;}第一个参数和第二个参数之间的代数是可以无限的 ...

  4. 动态库在线更新导致coredump的问题

    最近我们数据中心主机上的第三方管理工具升级,导致数据中心系统coredump,看起来不相关的事情,到底是怎么回事了? 首先,打开core文件看看: core.45259 is truncated: e ...

  5. Altium Designer 15 --- Design PCB Frame by Rhinoceros

    step 1: Draw a PCB shape and the main component placed in the PCB. The drawing sheet should be in th ...

  6. DiskFileItemFactory类

    将请求消息实体中的每一个项目封装成单独的DiskFileItem (FileItem接口的实现) 对象的任务由 org.apache.commons.fileupload.FileItemFactor ...

  7. CSS3定位和浮动详解

    本文为大家分享CSS3定位和浮动的基础概念,与使用方法,供大家参考,具体内容如下 一.定位 1. css定位: 改变元素在页面上的位置 2. css定位机制: 普通流: 浮动: 绝对布局: 3. cs ...

  8. 运算符++,--的使用及 while循环测试的用处

    前++与后++的区别: b=3+(++a);//a=a+1;b=3+a; b=3+(a++);//b=3+a;a=a+1; while (true)( 循环语句,可以实现程序的多次测试) { Cons ...

  9. WinRAR压缩

    WinRAR压缩软件: ------------------ 软件官网:http://www.winrar.com.cn/ -------------------------------

  10. listen()

    创建一个套接口并监听申请的连接. #include <winsock.h> int PASCAL FAR listen( SOCKET s, int backlog); S:用于标识一个已 ...