R--基本统计分析方法(包及函数)
摘要:目前经典的统计学分析方法主要有回归分析,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--基本统计分析方法(包及函数)的更多相关文章
- R语言︱常用统计方法包+机器学习包(名称、简介)
一.一些函数包大汇总 转载于:http://www.dataguru.cn/thread-116761-1-1.html 时间上有点过期,下面的资料供大家参考基本的R包已经实现了传统多元统计的很多功能 ...
- EXCEL 导入 R 的几种方法 R—readr和readxl包
导入Excel数据至R语言的几种方法 如有如下Excel数据源,如何将数据导入R语言呢?今天主要来介绍几种常见的方法: 一.使用剪贴板,然后使用read.table函数: 首先选择Excel中的数据源 ...
- R语言kohonen包主要函数介绍
最近准备写一篇关于自组织映射 (Self-organizing map)的文章.SOM的代码很多,研究了一圈之后目前使用最顺手的是R语言的kohonen包. 这个kohonen包功能很丰富,但是接口不 ...
- R+OCR︱借助tesseract包实现图片文本提取功能
2016年11月,Jeroen Ooms在CRAN发布了tesseract包,实现了R语言对简单图片的文本提取.分析功能. 利用开源OCR引擎进行图片处理,目前可以识别超过100种语言,R语言可以借助 ...
- R语言:recommenderlab包的总结与应用案例
R语言:recommenderlab包的总结与应用案例 1. 推荐系统:recommenderlab包整体思路 recommenderlab包提供了一个可以用评分数据和0-1数据来发展和测试推荐算 ...
- R语言数据挖掘相关包总结-转帖
与数据挖掘有关或者有帮助的R包和函数的集合. 1.聚类 常用的包: fpc,cluster,pvclust,mclust 基于划分的方法: kmeans, pam, pamk, clara 基于层次的 ...
- vlc 详细使用方法:libvlc_media_add_option 函数中的参数设置
vlc 详细使用方法:libvlc_media_add_option 函数中的参数设置 [转载自]tinyle的专栏 [原文链接地址]http://blog.csdn.net/myaccella/ar ...
- R语言中文分词包jiebaR
R语言中文分词包jiebaR R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据 ...
- array_reduce方法用回调函数迭代地将对数组的值进行操作
在处理php数组的时候,有一种需求特别的频繁,如下二维数组: $arr = array( 1=>array( 'id' => 5, 'name' => '张三' ), 2=>a ...
随机推荐
- jdbc实现事务
//conn需要自己获取,这里我用的时springjdbcTemplate Connection conn = null; PreparedStatement pstm = null; try { c ...
- codevs1091 传染病控制
题目描述 Description [问题背景] 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未完 ...
- Linux学习路线
为什么要学习Linux? 为什么学Linux,每个人都有自己的理由: Linux是免费的不用花一分钱,能够节约大笔的成本: Linux是开源的,你可以根据自已的需要修改源代码: Linux是开放的,有 ...
- ecshop /search.php SQL Injection Vul
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 ECSHOP商城系统Search.php页面过滤不严导致SQL注入漏洞 ...
- [iOS 视频流开发-获得视频帧处理]
调用视频流所使用框架:<Foundation/Foundation.h> 必须定义的参数: 1.AVCaptureDevice(捕获设备:前置.后置摄像头等) 2.AVCaptureInp ...
- 谈谈favicon和他带来的问题
favicon.ico介绍 favicon.ico是个什么东西呢,也许见得太多都习以为常了(我就是这样,直到写这篇文章之前才知道),看看维基百科的解释: Favicon是favorites icon的 ...
- MVC项目经验杂谈
ASP.NET MVC 绝大多数的公司已经用上了ASP.NET MVC,博主手里也做了不少个MVC的项目,在这里分享一下我在项目中是如何使用MVC的 打造通用的异常处理 项目上线运行,并不是所有的时候 ...
- 【转载】Linux启动过程
转自:http://cizixs.com/2015/01/18/linux-boot-process 简介 我们都知道:操作系统运行的代码是在硬盘上的,最终要跑到内存和 CPU 上,才能被我们使用. ...
- 演示get、post请求如何算sn,算得sn如何使用
import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.UnsupportedEncoding ...
- 【Beta】Daily Scrum 第一天
[目录] 1.任务进度 2.困难及解决 3.燃尽图 4.代码check-in 5.总结 1. 任务进度 学号 已完成 接下来要完成的 612 添加计时界面返回按键事件,添加SharePreferenc ...