r_stuio回归函数的程序包是哪个?

Python024

r_stuio回归函数的程序包是哪个?,第1张

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包实现了功能数据的基于模型的聚类。

多元线性回归 是 简单线性回归 的扩展,用于基于多个不同的预测变量(x)预测结果变量(y)。

例如,对于三个预测变量(x),y​​的预测由以下等式表示: y = b0 + b1*x1 + b2*x2 + b3*x3

回归贝塔系数测量每个预测变量与结果之间的关联。“ b_j”可以解释为“ x_j”每增加一个单位对y的平均影响,同时保持所有其他预测变量不变。

在本节中,依然使用 datarium 包中的 marketing 数据集,我们将建立一个多元回归模型,根据在三种广告媒体(youtube,facebook和报纸)上投入的预算来预测销售。计算公式如下: sales = b0 + b1*youtube + b2*facebook + b3*newspaper

您可以如下计算R中的多个回归模型系数:

请注意,如果您的数据中包含许多预测变量,则可以使用 ~. 以下命令将模型中的所有可用变量简单地包括在内:

从上面的输出中,系数表显示β系数估计值及其显着性水平。列为:

如前所述,您可以使用R函数轻松进行预测 predict() :

在使用模型进行预测之前,您需要评估模型的统计显着性。通过显示模型的统计摘要,可以轻松地进行检查。

显示模型的统计摘要,如下所示:

摘要输出显示6个​​组件,包括:

解释多元回归分析的第一步是在模型摘要的底部检查F统计量和关联的p值。

在我们的示例中,可以看出F统计量的p值<2.2e-16,这是非常重要的。这意味着 至少一个预测变量与结果变量显着相关

要查看哪些预测变量很重要,您可以检查系数表,该表显示了回归beta系数和相关的t统计p值的估计。

对于给定的预测变量,t统计量评估预测变量和结果变量之间是否存在显着关联,即,预测变量的beta系数是否显着不同于零。

可以看出,youtube和facebook广告预算的变化与销售的变化显着相关,而报纸预算的变化与销售却没有显着相关。

对于给定的预测变量,系数(b)可以解释为预测变量增加一个单位,同时保持所有其他预测变量固定的对y的平均影响。

例如,对于固定数量的youtube和报纸广告预算,在Facebook广告上花费额外的1000美元,平均可以使销售额增加大约0.1885 * 1000 = 189个销售单位。

youtube系数表明,在所有其他预测变量保持不变的情况下,youtube广告预算每增加1000美元,我们平均可以预期增加0.045 * 1000 = 45个销售单位。

我们发现报纸在多元回归模型中并不重要。这意味着,对于固定数量的youtube和报纸广告预算,报纸广告预算的变化不会显着影响销售单位。

由于报纸变量不重要,因此可以 将其从模型中删除 ,以提高模型精度:

最后,我们的模型公式可以写成如下:。 sales = 3.43+ 0.045*youtube + 0.187*facebook

一旦确定至少一个预测变量与结果显着相关,就应该通过检查模型对数据的拟合程度来继续诊断。此过程也称为拟合优度

可以使用以下三个数量来评估线性回归拟合的整体质量,这些数量显示在模型摘要中:

与预测误差相对应的RSE(或模型 sigma )大致代表模型观察到的结果值和预测值之间的平均差。RSE越低,模型就越适合我们的数据。

将RSE除以结果变量的平均值将为您提供预测误差率,该误差率应尽可能小。

在我们的示例中,仅使用youtube和facebook预测变量,RSE = 2.11,这意味着观察到的销售值与预测值的平均偏差约为2.11个单位。

这对应于2.11 / mean(train.data $ sales)= 2.11 / 16.77 = 13%的错误率,这很低。

R平方(R2)的范围是0到1,代表结果变量中的变化比例,可以用模型预测变量来解释。

对于简单的线性回归,R2是结果与预测变量之间的皮尔森相关系数的平方。在多元线性回归中,R2表示观察到的结果值与预测值之间的相关系数。

R2衡量模型拟合数据的程度。R2越高,模型越好。然而,R2的一个问题是,即使将更多变量添加到模型中,R2总是会增加,即使这些变量与结果之间的关联性很小(James等,2014)。解决方案是通过考虑预测变量的数量来调整R2。

摘要输出中“已调整的R平方”值中的调整是对预测模型中包含的x变量数量的校正。

因此,您应该主要考虑调整后的R平方,对于更多数量的预测变量,它是受罚的R2。

在我们的示例中,调整后的R2为0.88,这很好。

回想一下,F统计量给出了模型的整体重要性。它评估至少一个预测变量是否具有非零系数。

在简单的线性回归中,此检验并不是真正有趣的事情,因为它只是复制了系数表中可用的t检验给出的信息。

一旦我们开始在多元线性回归中使用多个预测变量,F统计量就变得更加重要。

大的F统计量将对应于统计上显着的p值(p <0.05)。在我们的示例中,F统计量644产生的p值为1.46e-42,这是非常重要的。

我们将使用测试数据进行预测,以评估回归模型的性能。

步骤如下:

从上面的输出中,R2为 0.9281111 ,这意味着观察到的结果值与预测的结果值高度相关,这非常好。

预测误差RMSE为 1.612069 ,表示误差率为 1.612069 / mean(testData $ sales) = 1.612069/ 15.567 = 10.35 % ,这很好。

本章介绍了线性回归的基础,并提供了R中用于计算简单和多个线性回归模型的实例。我们还描述了如何评估模型的性能以进行预测。