R語言︱常用統計方法包+機器學習包(名稱、簡介)


R語言︱常用統計方法包+機器學習包(名稱、簡介)

一、一些函數包大匯總

 

轉載於: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.htmlhttp://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),加以適當整理之后,可以得到變量間的稀疏化的偏相關系數矩陣,其中的零元素表示了變量間的條件獨立關系。我們可以利用其中的非零元素生成圖模型。


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM