1. 程式人生 > >R語言常用包匯總

R語言常用包匯總

ice hal 信號 行數據 包組 質量 spatial ike pat

轉載於:https://blog.csdn.net/sinat_26917383/article/details/50651464?locationNum=2&fps=1

一、一些函數包大匯總

轉載於:http://www.dataguru.cn/thread-116761-1-1.html

時間上有點過期,下面的資料供大家參考

基本的R包已經實現了傳統多元統計的很多功能,然而CRNA的許多其它包提供了更深入的多元統計方法,下面要綜述的包主要分為以下幾個部分:

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包裏定義的幾何對象。



二、Machine Learning & Statistical Learning


以下所有資訊都來自與VRAN task view的 Machine Learning & Statistical Learning

轉載於:https://www.douban.com/note/500637572/

機器學習是計算機科學和統計學的邊緣交叉領域,R關於機器學習的包主要包括以下幾個方面:

1)神經網絡(Neural Networks)

  nnet包執行單隱層前饋神經網絡,nnet是VR包的一部分(http://cran.rproject.org/web/packages/VR/index.html)。

2)遞歸拆分(Recursive Partitioning)

  遞歸拆分利用樹形結構模型,來做回歸、分類和生存分析,主要在rpart包(http://cran.r-project.org/web/packages/rpart/index.html)和tree包(http://cran.r-project.org/web/packages/tree/index.html)裏執行,尤其推薦rpart包。Weka裏也有這樣的遞歸拆分法,如:J4.8, C4.5, M5,包Rweka提供了R與Weka的函數的接口(http://cran.r-project.org/web/packages/RWeka/index.html)。

  party包提供兩類遞歸拆分算法,能做到無偏的變量選擇和停止標準:函數ctree()用非參條件推斷法檢測自變量和因變量的關系;而函數mob()能用來建立參數模型(http://cran.r-project.org/web/packages/party/index.html)。另外,party包裏也提供二分支樹和節點分布的可視化展示。

  mvpart包是rpart的改進包,處理多元因變量的問題(http://cran.r-project.org/web/packages/mvpart/index.html)。rpart.permutation包用置換法(permutation)評估樹的有效性(http://cran.r-project.org/web/packages/rpart.permutation/index.html)。knnTree包建立一個分類樹,每個葉子節點是一個knn分類器(http://cran.r-project.org/web/packages/knnTree/index.html)。LogicReg包做邏輯回歸分析,針對大多數自變量是二元變量的情況(http://cran.r-project.org/web/packages/LogicReg/index.html)。maptree包(http://cran.r-project.org/web/packages/maptree/index.html)和pinktoe包(http://cran.r-project.org/web/packages/pinktoe/index.html)提供樹結構的可視化函數。

3)隨機森林(Random Forests)

  randomForest 包提供了用隨機森林做回歸和分類的函數(http://cran.r-project.org/web/packages/randomForest/index.html)。ipred包用bagging的思想做回歸,分類和生存分析,組合多個模型(http://cran.r-project.org/web/packages/ipred/index.html)。

  party包也提供了基於條件推斷樹的隨機森林法(http://cran.r-project.org/web/packages/party/index.html)。varSelRF包用隨機森林法做變量選擇(http://cran.r-project.org/web/packages/varSelRF/index.html)。

4)Regularized and Shrinkage Methods

  lasso2包(http://cran.r-project.org/web/packages/lasso2/index.html)和lars包(http://cran.r-project.org/web/packages/lars/index.html)可以執行參數受到某些限制的回歸模型。elasticnet包可計算所有的收縮參數(http://cran.r-project.org/web/packages/elasticnet/index.html)。glmpath包可以得到廣義線性模型和COX模型的L1 regularization path(http://cran.r-project.org/web/packages/glmpath/index.html)。penalized包執行lasso (L1) 和ridge (L2)懲罰回歸模型(penalized regression models)(http://cran.r-project.org/web/packages/penalized/index.html)。

  pamr包執行縮小重心分類法(shrunken centroids classifier)(http://cran.r-project.org/web/packages/pamr/index.html)。earth包可做多元自適應樣條回歸(multivariate adaptive regression splines)(http://cran.r-project.org/web/packages/earth/index.html)。

5)Boosting

  gbm包(http://cran.r-project.org/web/packages/gbm/index.html)和boost包(http://cran.r-project.org/web/packages/boost/index.html)執行多種多樣的梯度boosting算法,gbm包做基於樹的梯度下降boosting,boost包包括LogitBoost和L2Boost。

  GAMMoost包提供基於boosting的廣義相加模型(generalized additive models)的程序(http://cran.r-project.org/web/packages/GAMMoost/index.html)。mboost包做基於模型的boosting(http://cran.r-project.org/web/packages/mboost/index.html)。

6)支持向量機(Support Vector Machines)

  e1071包的svm()函數提供R和LIBSVM的接口 (http://cran.r-project.org/web/packages/e1071/index.html)。kernlab包為基於核函數的學習方法提供了一個靈活的框架,包括SVM、RVM……(http://cran.r-project.org/web/packages/kernlab/index.html) 。

  klaR 包提供了R和SVMlight的接口(http://cran.r-project.org/web/packages/klaR/index.html)。

7)貝葉斯方法(Bayesian Methods)

  BayesTree包執行Bayesian Additive Regression Trees (BART)算法(http://cran.r-project.org/web/packages/BayesTree/index.html,http://www-stat.wharton.upenn.edu/~edgeorge/Research_papers/BART%206--06.pdf)。tgp包做Bayesian半參數非線性回歸(Bayesian nonstationary, semiparametric nonlinear regression)(http://cran.r-project.org/web/packages/tgp/index.html)、

8)基於遺傳算法的最優化(Optimization using Genetic Algorithms)

  gafit包(http://cran.r-project.org/web/packages/gafit/index.html)和rgenoud包(http://cran.r-project.org/web/packages/rgenoud/index.html)提供基於遺傳算法的最優化程序。

9)關聯規則(Association Rules)

  arules包提供了有效處理稀疏二元數據的數據結構,而且提供函數執Apriori和Eclat算法挖掘頻繁項集、最大頻繁項集、閉頻繁項集和關聯規則(http://cran.r-project.org/web/packages/arules/index.html)。

10)模型選擇和確認(Model selection and validation)

  e1071包的tune()函數在指定的範圍內選取合適的參數(http://cran.r-project.org/web/packages/e1071/index.html)。

  ipred包的errorest()函數用重抽樣的方法(交叉驗證,bootstrap)估計分類錯誤率(http://cran.r-project.org/web/packages/ipred/index.html)。

  svmpath包裏的函數可用來選取支持向量機的cost參數C(http://cran.r-project.org/web/packages/svmpath/index.html)。

  ROCR包提供了可視化分類器執行效果的函數,如畫ROC曲線(http://cran.r-project.org/web/packages/ROCR/index.html)。

  caret包供了各種建立預測模型的函數,包括參數選擇和重要性量度(http://cran.r-project.org/web/packages/caret/index.html)。

  caretLSF包(http://cran.r-project.org/web/packages/caretLSF/index.html)和caretNWS(http://cran.r-project.org/web/packages/caretNWS/index.html)包提供了與caret包類似的功能。

11)統計學習基礎(Elements of Statistical Learning)

書《The Elements of Statistical Learning: Data Mining, Inference, and Prediction 》(http://www-stat.stanford.edu/~tibs/ElemStatLearn/)裏的數據集、函數、例子都被打包放在ElemStatLearn包裏(http://cran.r-project.org/web/packages/ElemStatLearn/index.html)。

12) R統計軟件的Lars算法的軟件包提供了Lasso算法。

  根據模型改進的需要,數據挖掘工作者可以借助於Lasso算法,利用AIC準則和BIC準則精煉簡化統計模型的變量集合,達到降維的目的。因此,Lasso算法是可以應用到數據挖掘中的實用算法。

  glasso(graphical lasso)是lasso方法的一種擴展,采用加罰的極大似然方法估計變量間協方差矩陣的逆矩陣(這個逆矩陣在圖模型中被稱為Concentration Matrix或者Precision Matrix),加以適當整理之後,可以得到變量間的稀疏化的偏相關系數矩陣,其中的零元素表示了變量間的條件獨立關系。我們可以利用其中的非零元素生成圖模型。

R語言常用包匯總