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):告訴分裂到哪一層,CPnsplitrelerror,交叉驗證的估計誤差(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/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章