转载自:http://blog.csdn.net/s04023083/article/details/40344273

摘要:目前经典的统计学分析方法主要有回归分析,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()函数可做冗余度分析和典型相关。

R语言基本统计分析方法(包及函数)相关推荐

  1. r语言实现模糊c均值算法,R语言基本统计分析方法(包及函数)

    转载自:http://blog.csdn.net/s04023083/article/details/40344273 摘要:目前经典的统计学分析方法主要有回归分析,Logistic回归,决策树,支持 ...

  2. R语言描述性统计分析:使用epiDisplay包的summ函数获取dataframe数据中每个变量的常用统计量、对每个变量进行汇总统计

    R语言描述性统计分析:使用epiDisplay包的summ函数获取dataframe数据中每个变量的常用统计量.对每个变量进行汇总统计 目录

  3. R语言ggplot2可视化:使用geom_smooth函数基于lm方法为每个分组的部分数据(subset data)拟合趋势关系曲线、对指定范围的数据拟合曲线

    R语言ggplot2可视化:使用geom_smooth函数基于lm方法为每个分组的部分数据(subset data)拟合趋势关系曲线.对指定范围的数据拟合曲线 目录

  4. R语言计算加权平均值:weighted.mean函数计算加权平均值、matrixStats包的weightedMean函数计算加权平均值、SDMTools包的wt.mean函数计算加权平均值

    R语言计算加权平均值:weighted.mean函数计算加权平均值.matrixStats包的weightedMean函数计算加权平均值.SDMTools包的wt.mean函数计算加权平均值 目录

  5. R语言使用data.table包中的merge函数连接(内连接)两个dataframe数据(Inner join)

    R语言使用data.table包中的merge函数连接(内连接)两个dataframe数据(Inner join) 目录 R语言使用data.table包中的merge函数连接(内连接)两个dataf ...

  6. R语言使用data.table包的merge函数对两个dataframe数据进行全连接(full join)

    R语言使用data.table包的merge函数对两个dataframe数据进行全连接(full join) 目录 R语言使用data.table包的merge函数对两个dataframe数据进行全连 ...

  7. R语言数据科学程序包:Tidyverse介绍

    R语言数据科学程序包:Tidyverse介绍 1. R语言简介 2. 数据科学简介 3. Tidyverse简介 1. R语言简介 R语言是用于统计计算和绘图的免费软件.它可以在Windows, Un ...

  8. R语言基本统计分析——抽样

    R语言基本统计分析--抽样 简单随机抽样 简单随机抽样是指从数据总体中任意抽取指定数量的数据作为样本,其中每个可能被抽取中的样本概率相等.可以用R语言中的sample()函数进行随机抽样.抽取方法分为 ...

  9. R语言基础题及答案(二)——R语言与统计分析第二章课后习题(汤银才)

    R语言与统计分析第二章课后习题(汤银才) 题-1 用函数rep( )构造一个向量x, 它由3个3, 4个2, 5个1构成. x<-rep(c(3,2,1),times=c(3,4,5));pri ...

最新文章

  1. 我给媳妇解释设计模式:第一部分
  2. python--paramiko模块
  3. hdu 4982 贪心构造序列
  4. C++建立队列_利用链表
  5. 焦虑的互联网人及35岁定律
  6. JQuery LazyLoad实现图片延迟加载-探究
  7. Spring-context-ConfigurationClassUtils类
  8. jQuery 前后端分离项目总结
  9. excel如何使用函数判断包含某值
  10. 互联网发展的成功经验,以及面临的挑战
  11. 使用思科交换机Packet——Tracer模拟器教程
  12. 360全景倒车影像怎么看_360全景影像怎么看
  13. css开启3d加速的属性,开启3D加速,提高游戏速度
  14. AntV使用方法详解
  15. python excel处理重复行并统计个数_python统计一个文本中重复行数的方法
  16. 如何优雅地使用Sublime Text3
  17. 虚幻属性系统(反射)
  18. 【附源码】计算机毕业设计java在线答题系统设计与实现
  19. Excel获取指定数字格式文本——TEXT函数及其用法
  20. 前端三剑客入门学习笔记之HTML

热门文章

  1. php打印js函数,JS局部打印方法
  2. r语言 四格画图_R绘图基础(一)
  3. bigdecimal 科学计数转普通计数_LoaRunner性能测试教程:Windows计数器(2)
  4. Adblock Plus无法屏蔽CSDN右下角广告解决
  5. 红茶一杯话Binder(初始篇)
  6. python一款神器:ptpython 安装
  7. ‘Microsoft Office Enterprise 2007 在安装过程中出错‘ 的解决方法
  8. 阿里云服务器Ubuntu16.04安装Anaconda(python3.6)和本地远程连接jupyter
  9. java webcms系统源码_java轻量级的CMS系统-天梯
  10. 文本圆角背景_ppt模板航天日PPT,半透明几何圆角长方形文本框