通过R简单的4行代码,来绘制回归分析结果的森林图,需要安装forsetplot程序包(绘制森林图)和haven程序包(导入SPSS文件)。
(1)plot(lm.ridge(GDP~Consume+Investment+IO+Population+Jobless+Goods,data=dat,lambda=seq(0,0.3,0.001))) # 和线性回归类似,这个plot可以画出岭迹图,lambda=seq(0,0.3,0.001)设置范围和间隔,可以观察岭迹图,人工选择,但是这样主观性较强。
(2)select(lm.ridge(GDP~Consume+Investment+IO+Population+Jobless+Goods,
data=dat,lambda=seq(0,0.3,0.001))) #利用select 函数找出最优岭参数lambda,会有三个值,任选一个即可。
lm.ridge(GDP~Consume+Investment+IO+Population+Jobless+Goods,
data=dat,lambda=0.09)#通过(1)或(2)把选取的lmbda 参数写到岭回归函数中去,在这里lambda=0.09。
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, ...)注:familybinomial(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包实现了功能数据的基于模型的聚类。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)