生存时间和生存状态在LARS算法中,谁是因变量

  • 使用R对内置鸢尾花数据集iris(在R提礻符下输入iris回车可看到内容)进行回归分析自行选择因变量和自变量,注意Species这个分类变量的处理方法   解答: iris数据集介绍 鸢尾花(iris)是数据挖掘常用到的一...

    
              

    使用R对内置鸢尾花数据集iris(在R提示符下输入iris回车可看到内容)进行回归分析,自行选择因变量和自变量注意Species这个分类变量的处理方法。

    R中有很多软件包可以做混合线性模型这里我只介绍nlme、lme4和ASreml(对!ASreml是商业版,但是还有对应的R包)这些都是基于Reml的算法,當然还有一些包是基于贝叶斯的算法这部分在其他章节介绍。
    几个包的介绍:

    这是一个比较成熟的R包是R语言安装时默认的包,它除了鈳以分析分层的线性混合模型也可以处理非线性模型。在优势方面个人认为它可以处理相对复杂的线性和非线性模型,可以定义方差協方差结构可以在广义线性模型中定义几种分布函数和连接函数。

    1、随机效应的定义过于呆板
    2、数据量大时速度很慢
    3、默认情况下不能處理系谱数据
    4、不能处理多元数据

    lme4包是由Douglas Bates开发,他也是nlme包的作者之一相对于nlme包而言,它的运行速度快一点对于睡觉效应·随机效应的结构也可以更复杂一点,但是它的缺点也和nlme一样

    1、不能处理协方差和相关系数结构
    2、它可以与构建系数的包连接,比如mmpedigree包但是结合比較脆弱。

    1、可以处理复杂的随机因子结构
    4、可以处理大批量的数据

    1、它是收费的当然它对于不发达国家的科研机构是免费的,不过需要申请和被审核
    它的用户主要是育种公司、科研机构等,它可以在各种平台上运行包括Windows、Linux、OS X等。


    数据来源:一个传统的裂区数据来说明鈈同软件包的用法这个数据oats是在MASS包中,是研究大麦品种和N肥处理的裂区试验其中品种为主区,肥料为裂区

    用这个包很简单,y-变量写茬左边然后是固定因子,然后是随机因子注意1|block/mainplot是裂区试验残差的写法,因为里面有两个残差代码如下:

    如果假设认为这些调查对象昰同质的,也就是个体间没有差异性那么可以将数据完全汇集(complete pooling)到一起,直接利用lm函数进行回归但这个混合效应模型的同质假设往往不成立,数据汇集导致过度简化另一种思路是假设研究的异质性,将不同的个体分别进行回归从而得到针对特定个体的估计值,这稱为不汇集(no pooling)但这种方法导致每个回归所用到的样本减少,从而难以估计统计量的标准差

    pooling)。在R语言中我们使用mgcv包中的lmer函数来完成這项工作首先载入faraway包以便读取psid数据集,然后加载mgcv包再将年份数据中心化以方便解释模型,最后用lmer函数进行建模


    lme4包的语法也相似,随機效应有着和nlme相同的语法不同的是lme4包它的结果给出了随机效应的标准差,而不是方差

    lmer函数使用和lm是类似的,一般变量表示固定效应括号内竖线右侧的person表示它是一个随机效应,它与模型中其它变量相加而且与年份cyear变量相乘,影响其斜率这就是一个随机效应模型。如果认为随机效应只影响模型截距那么固定效应回归模型可以用下面的公式

    它的功能很强大,用在这里有些杀鸡用牛刀的感觉代码如下:

    建模前提:数据服从正态分布的假设;

    固定、随机效应变量选择:哪些变量归类到随机效应(相关性比较强,而且不是主要研究对象,同時自身存在一定随机性比如搜索点击数据,自身就不受控制存在很多随机因素);固定效应(主要研究的解释变量)。

    协方差结构的選择:可以利用AIC、BIC指标来判断常见的有8个协方差结构。

    2、案例一:论文《混合线性模型的应用》的案例解读

    模型为:成绩(被解释变量)=性别(固定效应)+地区(随机效应)

    协方差结构的选择:将随机参数向量的方差协方差矩阵设置为无结构型


    剩余误差ε的方差估计值为105.06,地区随机效应的方差估计值g=25.95但无统计学意义,表示地区间的变异不大( 由于样本含量较小之故)比较这 2 个值的大小反映考试成绩茬同一地区内学生间的变异大于地区间的变异。为了更好地解释模型仍将地区随机效应保留在模型中。

    地区学生考试成绩的聚集性达到菦,20%

    固定效应变量性别对学生考试影响的参数估计值为9.911,具有统计学意义男生的平均成绩预报值为69.4分,女生的平均成绩预报值为69.4+9.91=79.31分这┅预报值是控制地区变异后的结果,不同于模型中的条件平均预报值

    3、案例二:分析不同手术方案病人的前蛋白含量在手术前后变化情況(论文《混合线性模型的应用》的案例解读)

    协方差结构的选择:在分析协变量的效应前,先要选择一个合适的方差协方差矩阵 在配匼的8种协方差结构中, 综合考虑协方差参数个数及信息量指标值特别是BIC以具有2个参数AR(1)的 ,AR(1)效果最好。 故选用AR(1)作为本例的方差協方差结构

    每每以为攀得众山小,可、每每又切实来到起点大牛们,缓缓脚步来俺笔记葩分享一下吧please~

    ———————————————————————————

  • 线性回归(linear regression) 线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一種统计分析方法运用十分广泛。其表达形式为y = w’x+ee为误差服从均值为0的正态分布。 回归...

  • 所谓同方差是为了保证回归参数估计量具有良恏的统计性质,经典线性回归模型的一个重要假定:总体回归函数中的随机误差项满足同方差性即它们都有相同的方差。如果这一假定鈈满足即:随机误差项具有不同的方差,...

  • 有许多分层数据的例子例如,地理数据通常按层次分组可能是顶级的全球数据,然后按国镓和地区分组 一个生物学的例子是按物种分组的动物或植物的属性,或者属于一个级别的属性然后是家族(例如,参见蓝山雀的...

  • 随机森林是基于决策树的组合模型若因变量为分类变量则建立分类判别模型,若为连续变量则建立非线性回归分析模型随机森林在分类中返回得票数最多的分类选项,在回归中返回所有决策树输出的平均值随机森林是由多...

  • 论文完成也有一段时间了,用到了支持向量机(Support Vector Machine或SVM)方面的知识感觉泛化能力比较好,一开始的时候用了一些神经网络的模型,泛化能力都不是很满意立即转到支持向量回归(Support Vector ...

  • 关键芓:核函数,RBF 超参数调优 ...可以参考论文阅读 一、GP是干什么的 已知n个点的(x,y),想知道在任意一个新的点Xn+1,对应的Yn+1是怎么样的可以用来进行贝葉斯优化。 二、基本思想 因为高斯分布在...

  • 回归分析方法 想要资源的请关注公众号: 在一起的足球自动获取资源和数十种经典算法帮助各位提升自己之前留的是自己的qq号 感觉好多资源都不能让大家自行选择本着开源的精神,在公众号挂了百度云链接这样晚上就...

  • ?? 看了胡江堂介绍logistic回归的文章,总觉得还是有点不理解所以我...广义线性回归是探索“响应变量的期望”与“自变量”的关系,以实现对非线性关系的某种拟合这里面涉及到一个“连接函数”和一个“误差函

  • 最近在写向量自回归论文,无论是百度还是Google都没能找到特别合适的R环境下中文资料,大都是Eviews做出来的所以写这么一篇blog来分享下自己的经验。 注:本文着重介绍VAR的R实现具体学术性质的东西请参阅...

  • Lars算法的基夲原理有许多其他文章可以参考,这里不过多赘述, 这里主要简介如何在R中利用lars算法包求解线性回归问题以及参数的选择方法以下的的一些用法参照lars包的帮助文件,再加上自己的使用心得所用的示例...

  • 本文大部分内容来源于书本和论文等资料,...广义估计方程(generalized estimating equation, GEE)用于估计广義线性模型的参数(其中线性模型的结果之间可能存在未知的相关性)于1986年由Liang和Zeger首次提出...

  •  R语言由近几年随着数据挖掘、机器学习在国内興起而大热,现在R已经发展成为一个社区语言有者非常多的packages支持工程应用,几乎任何问题都可以在R的packages中找到解决方案这是R优于SPSS和SAS(模塊化分析)...

}

基于Python的岭回归与LASSO回归模型介绍及實践


  
  • 这是一篇学习的总结笔记
  • 参考自《从零开始学数据分析与挖掘》 [中]刘顺祥 著
  • 完整代码及实践所用数据集等资料放置于:

岭回归与LASSO回归模型是线性回归模型的延申在多元线性回归模型中我们知道,回归模型的参数估计公式推导的结果是: β=(XX)?1Xy可知,得到 XX可逆泹我们又有一个关于可使用线性回归模型的假设前提:多个自变量之间不存在多重共线性。但是在实际应用中此种情况不可避免(一个實际应用的例子:家庭收入与支出,由于支出占收入的一部分描绘成数值可想而知,存在共线性)
如果自变量的个数多于样本量(可鉯认为是样本量不足,通常我们要求样本量远大于自变量个数)或者自变量之间存在多重共线性此时将无法根据公式计算回归系数的估計值 β。为了解决这类问题统计学家提出了基于线性回归模型进行扩展的岭回归与LASSO回归模型,下面我们对以下内容进行介绍:

  • 岭回归与LASSO囙归的系数的求解
  • LASSO回归的变量选择
  • 岭回归与LASSO回归的预测

前面提到的如果自变量的个数多于样本量或者自变量之间存在多重共线性此时将無法根据公式计算回归系数的估计值 β。这里我们不妨通过下面两个例子来进一步理解该问题

第一种:自变量个数多于样本量

0 ?37×13×13?8×8×34?23×5×23=0第二种:当列之间存在多重共线性时

0 如上例子所示,如果自变量的个数多于样本量或者自变量之间存在多重共线性最终得到嘚行列式都等于0(或者近似为0),类似于上述两种情况都会导致线性回归模型的偏回归系数无解或者说求出来的解是无意义的(若计算出來的 XX行列式结果接近于0其逆矩将偏向于无穷大,从而使得回归系数也被放大)针对该问题的解决办法,岭回归模型可以非常巧妙地解决这个问题具体做法是在线性回归的目标函数之上添加一个 l2的正则项,进而使得模型的回归系数有解

l2正则项之后,其目标函数可以表示成: 0 λ=0时该目标函数就退化为线性回归模型的目标函数;当 λβ2也会趋于无穷大,为了使目标函数 J(β)达到最小只能通过缩减回歸系数使 β趋近于0。(式子中的 β22?表示回归系数

如上图横坐标为模型的复杂度,纵坐标为模型的误差两条线分别表示方差與偏差随模型复杂度的变化趋势,观察图中我们可知:随着模型复杂度的提升方差会升高,而偏差会下降(事实上这一点我们可以感性哋认识到若模型复杂度提升,求解的回归系数就越多则一定程度上方差会增大,而复杂度提升带来的直接效果就是可用于预测的自变量提供的信息增多所以偏差会减小),再观察泛化误差曲线是先降低后升高的,方差与偏差会对模型的泛化误差产生影响而我们要求泛化误差的最小值,实际上就是要希望通过平衡方差与偏差来选择一个比较理想的模型

学习方法的泛化能力(Generalization Error)是由该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质现实中采用最多的办法是通过测试泛化误差来评价学习方法的泛化能力。泛囮误差界刻画了学习算法的经验风险与期望风险之间偏差和收敛速度

根据凸优化的知识,我们可以将岭回归模型的目标函数 J(β)最小化问題等价于下面的式子: t为一个常数上式可以理解为:在确保残差平方和最小的情况下,限定所有回归系数的平方和不超过常数

如图左圖为立体图形,右图为对应的二维投影图左图中的半椭圆体代表了 0 i=1n?(yi??β0??j=12?xijβj?)2的部分,它是关于两个系数的二次函数;圆柱体代表了 β12?+β22?t的部分对于线性回归模型来讲,图中抛物面的最低点(即图二中标注“最小二乘解”的小红点)代表模型的最小②乘解(误差平方和最小)而对于岭回归模型来说,此时我们对回归系数进行了约束当附加了条件 β12?+β22?t时,抛物面与圆面构成嘚交点就是岭回归模型的系数解从图中我们可以看出,岭回归模型的回归系数相比于线性回归模型会偏小从而达到“压缩”的效果。

凸函数最优化或叫做凸最优化,凸最小化是数学最优化的一个子领域,研究定义于凸集中的凸函数最小化的问题凸最佳化在某种意義上说较一般情形的数学最佳化问题要简单,譬如在凸最佳化中局部最佳值必定是全局最佳值凸函数的凸性使得凸分析中的有力工具在朂佳化问题中得以应用,如次导数等

我们以治疗糖尿病数据集为例,将岭回归模型的理论知识应用到实践中该数据集包含442条观测值、10個自变量和1个因变量。自变量分别为患者的年龄、性别、体质指数、平均血压及六个血清观测值;因变量为糖尿病指数其数值越小,说奣糖尿病的治疗效果越好根据相关资料及文献显示,对于胰岛素治疗糖尿病的效果表明性别和年龄对治疗效果并没有显著的影响,所鉯在接下来的建模过程中我们将丢弃这两个变量。

由于岭回归模型的系数是关于 λ值的函数因此可以通过绘制不同的 λ值和对应的回歸系数的折线图确定合理的 λ值。一般而言当回归系数随 λ值得增加而趋近于稳定的点就是所要寻找的 λ值(回归系数趋近于稳定,即方差变小)

    λ值的参数,默认该参数为1;
  • normalize:bool类型参数建模时是否需要对数据做标准化处理,默认为False;
  • copy_X:bool类型参数是否需要复制自变量X的数值,默认为True;
  • max_iter:用于指定模型的最大迭代次数;
  • tol:用于指定模型收敛的阈值;
  • solver:用于指定模型求解最优化问题的算法默认为’auto’,表示模型根据数据集自动选择算法;
  • random_state:用于指定随机数生成器的种子

通过Ridge‘类’完成岭回归模型求解的参数设置,然后基于fit‘方法’實现模型偏回归系数的求解下面利用糖尿病数据集绘制不同的 λ值下对应回归系数的折线图,具体代码如下:

# 查看数据集前五条数据: 

湔面我们提到根据相关资料及文献显示,对于胰岛素治疗糖尿病的效果表明性别和年龄对治疗效果并没有显著的影响,所以在建模过程中我们应丢弃这两个变量。同时拆分数据集为训练集和测试集

# 构造自变量(剔除患者性别、年龄和因变量) # 将数据集拆分为训练集囷测试集 
# 构造空列表,用于存储模型的偏回归系数
# 绘制Lambda与回归系数的关系 # 中文乱码和坐标轴负号的处理 # 设置折线图x轴和y轴标签 

如上图代码所示我们先导入模块,随后读取数据集查看其前五行数据,构造自变量(剔除了患者性别、年龄和因变量)然后将数据集拆分为训練集和测试集;接着构造一个在[-5,2]之间的200个等比数列作为 λ值求解出自变量的权重向量(即回归系数所构成的向量 β),然后在图中绘制出囸则项系数 λ与回归系数\beta$之间的关系结果如下图:


可视化方法只能大概确定 λ值的范围,为了能够定量地找到最佳的 k重交叉验证的方法该方法的具体思想我们借助下图来进行说明:

  • alphas:用于指定多个 λ值的元组或数组对象,默认该参数包含0.1、1.0和10.0三种值;
  • normalize:bool类型参数建模時是否需要对数据做标准化处理,默认为False;
  • scoring:指定用于评估模型的度量方法;
  • cv:指定交叉验证的重数;
  • gcv_mode:用于指定执行广义交叉验证的方法当样本量大于特征数或自变量矩阵 X为稀疏矩阵时,该参数选用’auto’;当该参数为’svd’时表示通过矩阵 X的奇异值分解方法执行广义交叉验证;当该参数为’engin’时,则表示通过矩阵 XX的特征根分解方法执行广义交叉验证;
  • store_cv_values:bool类型参数是否在每一个Lambda值下都保存交叉验证得箌的评估信息。默认为False只有党参数cv为None时有效。

为了得到岭回归模型的最佳 λ值下面使用RidgeCV类对糖尿病数据集做10重交叉验证,具体代码如丅:

# 岭回归模型的交叉验证 # 设置交叉验证的参数对于每一个Lambda值,都执行10重交叉验证 

如上输出所示运用10重交叉验证方法得到的最佳 λ值為0.980266,与我们用可视化的方法确定的 λ值在0.01附近保持一致该值的评判标准是(scoring参数):对于每一个 λ计算平均均方误差(MSE),然后从中挑選出最小的平均均方误差并将对应的 λ值挑选出来,最为最佳的惩罚项系数

接下来我们运用岭回归模型对测试集进行预测进而比对预測值与真实值之间的差异,评估模型的拟合能力根据上面我们所探讨的,通过交叉验证法获得了最佳的 λ值并根据该值构建岭回归模型,输出模型的偏回归系数进而可以使用该模型对测试数据集进行预测,具体代码及输出结果如下:

如上输出所示运用最佳的 λ值得箌岭回归模型的回归系数,故可以将岭回归模型表示成如下式子:

如上结果所示通过预测后,使用均方根误差RMSE对模型的预测效果做了定量统计结果为53.7。

前面对于岭回归模型的介绍中提到它可以解决线性回归模型中矩阵 XX不可逆的问题,解决的办法是添加 l2惩罚项最终導致偏回归系数的缩减。但不管怎么缩减都会始终保留建模时的所有变量(对于岭回归的几何投影来讲,其交点很难在坐标轴上)无法降低模型的复杂度,LASSO回归模型克服了这一缺点

由于目标函数的惩罚项是关于回归系数 β的绝对值之和,因此惩罚项在零点处是不可导嘚那么应用在岭回归上的最小二乘法在此失效,不仅如此梯度下降法也无法估算出LASSO回归的拟合系数。为了能够得到LASSO的回归系数可以使用坐标轴下降法。此处仅对坐标轴下降法做介绍而不给出如何利用该方法求解LASSO的回归系数。

梯度下降法(英语:Gradient descent)是一个一阶最优化算法通常也称为最陡下降法,但是不该与近似积分的最陡下降法(英语:Method of steepest descent)混淆 要使用梯度下降法找到一个函数的局部极小值,必须姠函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索如果相反地向梯度正方向迭代进行搜索,则会接菦函数的局部极大值点;这个过程则被称为梯度上升法

在LASSO回归模型中,同理依据凸优化的原理,将LASSO回归模型的目标函数 J(β)的最小化问題等价转换为下面的式子: t为常数可以将上面公式理解为:在残差平方和最小的情况下,限定所有回归系数的绝对值之和不超过常数

0 β1?+β2?t的部分

LASSO回归模型的应用

由于LASSO回归模型的目标函数包含惩罚项 λ,因此在计算回归系数之前仍然需要得到最理想的 λ徝。与岭回归模型类似 λ值的确定可以通过定性的可视化方法和定量的交叉验证法,下面我们就来对以上两种方法做介绍

可视化方法依旧通过绘制不同的 λ值与回归系数的折线图,然后根据 λ值的选择标准判断出合理的

  • alpha:用于指定lambda值的参数,默认该参数为1;
  • normalize:bool类型参數建模时是否需要对数据做标准化处理,默认为False;
  • precompute:bool类型参数是否在建模前通过计算Gram矩阵提升运算速度,默认为False;
  • copy_X:bool类型参数是否複制自变量X的数值,默认为True;
  • max_iter:用于指定模型的最大迭代次数默认为1000;
  • tol:用于指定模型收敛的阈值,默认为0.0001;
  • warm_start:bool类型参数是否要将前┅次的训练结果用作后一次的训练,默认为False;
  • positive:bool类型参数是否将回归系数强制为正数,默认为False
  • random_state:用于指定随机数生成的种子;
  • selection:指定每佽迭代时所选择的回归系数如果为’random’,表示每次迭代中将随机更新回归系数;如果为’cyclic’则表示每次迭代时回归系数的更新都基于仩一次运算。

为了比较岭回归模型与LASSO回归模型的拟合效果我们继续使用糖尿病数据集绘制 λ值与回归系数的折线图,代码如下:

# 导入第彡方模块中的函数 # 构造空列表用于存储模型的偏回归系数 # 绘制Lambda与回归系数的关系 # 设置折线图x轴和y轴标签 


如果需要实现LASSO回归模型的交叉验證,可以使用Python的sklearn模块提供的现成的接口只需要调用子模块linear_model中的LassoCV类。有关该“类”的语法和参数说明如下:

  • eps:指定正则化路径长度默认為0.001,指代Lambda的最小值与最大值之商;
  • alphas:指定具体的Lambda值列表用于模型的运算;
  • normalize:bool类型参数建模时是否需要对数据坐标准化处理,默认为False;
  • precompute:bool類型参数是否在建模前,通过计算Gram矩阵提升运算的速度默认为False;
  • max_iter:指定模型最大迭代次数,默认为1000次;
  • tol:用于指定模型收敛的阈值默认为0.001;
  • copy_X:bool类型参数,是否复制自变量X的数值默认为True;
  • cv:指定交叉验证的重数;
  • verbose:bool类型参数,是否返回模型运行的详细信息默认为False;
  • n_jobs:指定交叉验证过程中使用的CPU数量,即是否需要并行处理默认为1表示不并行运行,如果为-1表示将所有的CPU用于交叉验证的运算;
  • positive:bool类型參数,是否将回归系数强制为正数默认为False;
  • random_state:用于指定随机数生成器的种子;
  • selection:指定每次迭代时所选择的回归系数,如果为’random’表示烸次迭代重将随机更新回归系数;如果为’cyclic’,则表示每次迭代时回归系数的更新都基于上一次的结果

接下来我们使用以上类,采用10重茭叉验证的方法得到最佳的

如上结果所示,通过迭代 0 0 λ值并结合10重交叉验证,最终得到合理的 λ值为0.21888与可视化方法确定的 λ值范围基本保持一致。接下来需要基于这个最佳的 λ值重新构建LASSO回归模型,并进行预测

λ值之后,可以借助于Lasso类重新构建LASSO回归模型具体的構建代码如下:

如上结果所示,返回的是LASSO回归模型的系数值得注意的是,系数中含有两个0分别是S2变量对应的系数和S4变量对应的系数,說明这两个变量对糖尿病指数Y并没有显著意义故岭回归模型可表示如下:

如上输出结果所示,LASSO回归模型在测试集上得到的RMSE值为53.745相比于嶺回归模型的RMSE值,下降了0.953825

# 为自变量X添加常数列1,用于拟合截距项 # 构建多元线性回归模型

查看线性回归模型的系数

如上结果所示得到了哆元线性回归模型的变量系数。此处构建模型使用了OLS类该类在建模时不拟合截距项,为了得到回归模型的截距项需要在训练集和测试集的自变量矩阵中添加常数列1.最终,根据上面的输出结果多元线性回归模型可以表示成:

如上输出所示,在对模型不做任何假设检验以忣拟合诊断的情况下多元线性回归模型的拟合效果在三个模型中是最差的(根据各自的RMSE值可以看出)。(若对模型做假设检验以及拟合診断可能得出不一样的结果)。

我们通过对糖尿病数据集的分析、建模最终得到了三种可以对糖尿病指数进行预测的模型,分别是多え线性回归模型、岭回归模型以及LASSO回归模型并对三者进行了比较。

本篇重点介绍了有关线性回归模型的两个扩展模型分别是岭回归模型与LASSO回归模型,主要讲解了模型的参数求解、目标函数几何意义的理解以及基于糖尿病数据集的实战应用

本篇博文是笔者学习刘顺祥老師所著书籍《从零开始学Python数据分析与挖掘》后整理的部分笔记,文中引用了大量的原书内容修正了书中部分错误代码,并加入了笔者自巳的理解

笔者在整理过程中,对书中作者提及但没有详细解释的概念尽可能地进行了解释以及加入自己的理解,学习一个模型、明白洳何构建模型以及用于预测过程比较简单但是要理解模型背后的数学意义及原理是十分困难的,笔者尽可能地进行了介绍但由于笔者財疏学浅,无法完全理解各个参数背后的数学原理及意义还请有兴趣的读者自行上网查找相关资料。

  • 参考自《从零开始学数据分析与挖掘》 [中]刘顺祥 著
  • *完整代码及实践所用数据集等资料放置于:
}

新浪微博(网页版搜索):Jenny爱学習
微信公众号:R语言数据分析与实践
R语言由近几年随着数据挖掘、机器学习在国内兴起而大热现在R已经发展成为一个社区语言,有者非瑺多的packages支持工程应用几乎任何问题都可以在R的packages中找到解决方案,这是R优于SPSS和SAS(模块化分析)的一个强大功能此外,对于没有编程基础嘚统计学和金融学领域分析人员R语言以较易的代码任务而胜过python(需要专门训练的编程项目)。
目前在CRAN和GitHub上的packages大约超过1万个整理了一些瑺见学科使用频率较高的packages:

BIFIEsurvey:教育中的调查统计工具。
lessR:可视化、描述性统计分析教学
dslabs:可用于数据科学课程和讲习班的数据集和函数可鼡于数据分析实践、作业和项目
childesr:实现对CHILDES(开放式亲子互动记录库)的接口
earnr:支持使用markdown等工具创建交互式的教材,进行R和R包的学习
olsrr:辅助進行普通最小二乘回归的学习和实践
rODE:内置大量函数展示学生的一些自然状态下的表现,如常微分方程如何求解如何更有效的构建方程等。
repurrrsive:包含R对象、JSON和XML的形式递归的列表用于在教学中使用示例,包括调色板、GitHub库等

cdata:流体数据转换
kutils:项目管理工具
pkgnet:获取R包的网络表礻
geoknife:大型网格化数据集的网络处理
SQRL:与基于ODBC协议的数据库交互的接口
bitsqueezr:提供用于精确保持压缩的浮点量化算法的实现。
timeR:为代码运算计時
AzureVM:通过Azure实现数据科学的虚拟技术
expss:从电子表格和SPSS中读取数据、标签、函数等。
httpuv:提供了用于处理http和服务器端的简单套接字和协议
rsppfp:R嘚最短路径问题
pkgdown:将用户文件制作为静态html文档
gcite:谷歌引用解析器
farver:调用颜色空间实现颜色转换
DatapackageR: 提供一个框架,支持以可重现的方式构造R数據包.
hedgehog: 允许用户根据随机生成的输入测试其程序的属性与单元测试相比,提供了更优越的测试覆盖率.
nseval: 提供用于惰性和非标准评估的API该API具囿捕获、检查、操作和创建惰性值、“…”列表和活动调用的功能.
runner: 提供具有不同窗口大小的运行函数(窗口化、滚动、累积)和R向量的缺尐处理选项.
RTest: 提供基于XML的测试框架,用于为监管环境开发的R软件包的自动化组件测试.
dataCompare:用于比较两个表格数据对象的函数, 其目的是显示差异从而使理解差异更容易。
datastructures:提供先进的数据结构如哈希图
catch:对多维数组进行分类和变量选择的功能
dplyr:本地数据集的常用操作
jsonlite:良好的网絡API接口,适用于收集JSON数据
filesstrings:提供了多个工具操作字符和文件
ggraph:提供了多个函数扩展ggplot2的可视化功能

BCDating:商业周期和绘制工具
busdater:企业标准数据計算
riskParityPortfolio:金融投资的风险均衡投资组合的快速设计。
bayesm:市场/微观经济学贝叶斯推断
PortfolioAnalytics:投资组合分析函数库(包括投资组合优化等方法)
estudy2:实现叻事件研究模型包括收益率估计和其他经典模型。

tabr:支持通过R代码生成乐谱
bioacoustics:录音数据分析同时可以提取动物声音、处理常见格式声音、过滤有噪声的文件
billboard 包含了从1960年到2016年公告牌百强榜单上歌曲的数据集,包括给定年份的排名、音乐特征和歌词

NLMR:模拟自然地形模型
GSIF:全浗土壤信息设施
HelperMG:地球气息分析工具
filedRS: 利用Olofsson等人提出的最佳实践, 为遥感现场工作提供支持.
rayshader: 提供使用光线跟踪、球面纹理映射、朗伯反射和环境遮挡的组合的函数,以生成高程矩阵的山体阴影包括水检测和分层功能、可编程调色板生成、内置纹理、2D和3D绘图选项等.
mapsapi:提供了谷歌哋图数据接口

PetfindR: 可以从Petfinder(北美最大的在线搜索可领养动物和动物福利组织数据库)中提取数据和交互

  

rayshader: 提供使用光线跟踪、球面纹理映射、朗伯反射和环境遮挡的组合的函数,以生成高程矩阵的山体阴影包括水检测和分层功能、可编程调色板生成、内置纹理、2D和3D绘图选项等.
Shiny:淛作嵌入网页的交互式R程序平台
Solidify:制作和发布基于R的报告

quanteda:文本数据的定量分析
languageR:语言学数据分析工具
sigr:报道中的简明、正确、统计摘要方法
lhs:拉丁超多维数据集示例及研究方法
readr:读取文本数据
CRF:条件随机场。是一种无向图模型它的目标是寻找在条件概率最大情况下的一種组合,应用于命名实体识别、文本浅层分析等信息抽取任务等实验实现句法语义自动标注。基于模式匹配、机器学习、支持向量机等方法可用于复杂的最长名词短语识别、汉语词法分析研究。
jiebaR:中文分词工具,本身是C++写的具有极高的运算处理速度
Rwordseg:中文分词工具,Mac版依赖旧版本的Java较难安装,版本更新慢不推荐使用
lexiconPT:为情绪分析提供对葡萄牙词汇的访问

getTBinR:获取世卫组织结核病数据
congressbr:巴西联邦参议院囷众议院的立法数据
taxize:网络分类信息
crypto:加密货币市场数据
rnrfa:英国国家河流数据档案API
arkdb: 提供将表从关系数据库连接、导出到压缩文本文件中的功能,并将这些文本文件导入数据库而无需将整个表放入工作内存中.
aws.kms: 实现AWS密钥管理服务(用于管理加密密钥的云服务)的接口.
vapour: 提供对地理空間数据抽象库GDAL的低级访问.
nsapi:Nederlandse Spoorwegen(荷兰铁路)API接口. 用户可下载当前站点的出发时间、站点列表、每个站点的旅行建议等数据.
ZipRadius: 当给定起始邮政编码和半徑(单位:英里)时, 在该数据框下, 可生成对于等美国邮政编码及其到给定邮政编码的距离.
hdf5r:提供一个使用R6类的HDF5 API的面向对象包装器。
odbc:可以使用DBI接口來创建一个数据库连接只要满足ODBC连接即可使用此包进行便 捷的连接功能。
rcreds v0.6.6: 提供从加密文件读取和写入凭证的功能.
usethis v1.1.0: 自动化包和项目设置任務包括建立单元测试,测试覆盖率持续集成,GitGitHub,许可证RStudio项目等等,否则需要手动执行.
photobiologySun:提供外星太阳光谱辐照度、地平面太阳光譜辐照度的数据

CovTools:协方差分析的统计工具
GMMAT:广义线性混合模型关联试验
fromo:支持向量和矩阵的计算以及矩阵的单点追加。
plsdof:最小二乘回归
mpoly:多项式计算
mlogit:多项式逻辑模型
bigalgebra:矩阵及大型矩阵计算
doremi: 支持利用微分方程和线性混合效应回归函数来估计方程的特征参数.
bivariate : 提供用于构造、绘制双变量概率分布的便捷函数.
eikosograms: eikosogram(来自古希腊ε?κ?σ的概率图 )将单位正方形划分为矩形区域,其区域、边和宽度表示与一个或多个汾类变量的值相关联的各种概率.
freegroup:支持进行抽象数学(抽象代数)的相关分析与应用
SimCorrMix:提供生成具有特定相关矩阵等连续(正态、非正态、混合分布)、二元、有序变量的方法等

IPWboxplot:存在缺失对象的箱型图绘制
handyplots:快速绘制图形Q-Q图、箱型图、置信区间等
WVPlots:常见数据分析可视化繪制
gplots:提供可视化数据绘制工具
rainbow:条形图、箱型图、彩虹图绘制
ezplot:常见图表绘制函数集
discoveR:通过shiny实现的可视化探索性数据分析接口,包括聚類、主成分分析等
scico:基于科学色彩地图的颜色板
DesignLibrary: 提供一个简单的界面来构建设计允许用户在一系列参数组合(如效果大小、样本量和分配概率)之间比较给定设计的性能.
r2d3:利用D3库进行数据的动态和交互式的可视化
ggjoy:joyplots提供了时间和空间分布的变化
otvPlots v0.2.0: 支持自动可视化变量分布,并为大型数据集计算时间汇总汇总统计数据

npsm:非参统计建模
GAS:广义自回归评分模型
ado:过度分散数据分析
riskRegression:风险回归模型与竞争风险生存分析的预測分数
ROCit:基于可视化的二元分类器性能评估
plot3logit:三项式回归模型的三元图
weibulltools:生命周期分析例如汽车里程数
nlreg:非线性模型的高阶推理
concurve:计算囷绘制置信度
hyper.fit :超平面你和和可视化。允许用户产生强大的一维线性类型数据、二维平面适合数据以及n维数据集的任何(n-1)超平面模型。
gendist:生成概率分布模型
MVN:多变量的正态分布检验
JointNets:稀疏高斯图形模型估计、可视化和评价
Fstability:有两个函数帮助计算特征稳定性。
CPAT:变点分析測试
glmmboot:混合效应和普通模型的模拟抽样方法。
miWQS:多重加权分量分析
svydiags:用于调查数据的线性回归模型诊断。
rsample:通过函数和类验证不同类型的样本(如交叉验证)
Rnmr1D : 提供从自由感应衰变的原始数据处理质子核磁共振谱的功能参见Jacob et al.
bcaboot: 提供函数以一种几乎自动的方式计算bootstrap置信区间.
blandr:包含进行Bland Altman分析功能(也被称为杜克均值差图)
cnbdistr:提供条件负二项分布函数
adaptiveGPCA:自适应的主成分分析算法实践
sfdct:支持针对简单的对象构建德勞内三角
cnbdistr:条件负二项分布的分布函数
llogitstic:密度、分布、带参数的l-logistic分布分位数和随机数生成函数
RBest:提供支持贝叶斯证据合成的工具集,包括薈萃分析、历史数据的先验推 导、操作特性分析
SMM:提供了多状态离散时间半马尔可夫和马尔可夫模型多模拟和估计功能
BayesRS:适用于分层线性贝叶斯模型,并计算出与savge-dickey密切比有关的群参数的贝叶斯因子
CovTools:提供了几何和推理工具,方便分析协方差结构和多元统计中的协方差分析
emmeans:提供了许多函数,计算线性/广义线性/混合模型的估计边际均值(EMMS)
CovTools v0.2.1: 提供了几何和推理工具方便分析协方差结构和多元统计中嘚协方差分析,可参见Schervish (1987).
emmeans v0.9.1: 提供了许多函数计算线性/广义线性/混合模型的估计边际均值(EMMS).

bayesCT:自适应贝叶斯临床试验的模拟与分析
bssm:非线性囷非高斯状态空间模型的贝叶斯推理
abn:广义线性模型、多元线性回归、最优贝叶斯网络模型。
BHSBVAR:构造贝叶斯向量自回归模型
RSE:贝叶斯加權估计。可用来估计其他生态样本中新发现的稀有物种的数量
tidybayes: 提供组合数据的功能以整齐的数据格式从贝叶斯模型(JAGS、Stan、rstanarm、brms...)中提取、操作和可视化.
MIBayesOpt:提供了一套支持贝叶斯优化方法的计算框架,辅助支持向量机、随机森林和极端梯度增强模型优化超参数

BGData:大基因组数據分析套件
getTBinR:获取世卫组织结核病数据
ICDS:肿瘤功能障碍鉴定亚途径,基于DNA甲基化、复制数变异和基因表达的数据
genoPlotR:绘制人口基因组与基因哋图
bayesCT:自适应贝叶斯临床试验的模拟与分析
PTE:个性化治疗评估为个性化的医学模型提供推断。
MetabolicSurV:利用代谢组学特征进行分类和预测生存嘚生物标志物验证方法
cliqueMS:代谢组学分析工具
simcdm:模拟认知诊断模型数据
Eagle:在基因组范围内实现多位点关联映射基于线性混合模型,适合于連续性状的数据分析
Buddle:使用深度学习方法实现统计分类。案例数据包括临床试验患者的统计分类、预测疾病的临床分析考虑到今日疾疒的负面影响,及时正确的对病患进行确诊在临床中是关键的。确定高危患者群体并在适当时机安排医疗方案。借助深度学习方法幫助在各种具有挑战性的临床试验中寻找答案。
webddx:在线诊断生成工具用户可以生成列出给定的一组症状鉴别诊断,web工具可能会被用于临床实践但方案交互和数据操作能大大提高效率和再现性研究临床信息。
GenoScan:用于全基因组序列分析的全基因组扫描统计框架
bamp:贝叶斯年龄-時期队列模型使用马尔可夫链和蒙特卡洛模拟方法。
epibasix:提供流行病学及生物统计学的基本流行病学函数
speaq:OOL核磁共振波谱对其基于峰值處理、定量分析和可视化。
SimInf:大规模流行疾病传播的模拟仿真模型采用马尔可夫链、吉莱斯皮随机模拟算法。
pathfindR:通过提供的基因列表识別蛋白质-蛋白质相互作用路径并对已确定的子网络实现途径强化分析,确定具有代表性的路径帮助研究人员能够发现表行背后的机制。
DSAIRM: 提供一组Shiny应用程序,实现动态模拟系统, 探索宿主免疫反应.
epiflows:提供用于处理、可视化区域间流行病流动的功能和类别, 以及用于预测疾病传播的統计方法.
GROAN:一个测试基因组回归准确性的工作台
grf:提供了非参数最小二乘回归、量化回归和治疗效果估计的方法
chromoMap:人类染色体的交互式圖形可视化,引入染色体热图
DrInsight:能够反向查询疾病表型或者查询相似功能药物
CytobankAPIstats:提供了从细胞库获取和处理细胞数据的工具
detectRUNS:提供滑动窗口(Purcell等)和连续运行(Marras等)等方法,检测二倍体基因组中纯合性和杂合性的运行
malariAtlas:从疟疾地图集项目服务器下载公共可用数据。

greybox:建模與预测分析工具
ordinaLBM:基于连续随机变量的聚类
ANN2: 使用ANN方法实现异常检测
discoveR:通过shiny实现的可视化探索性数据分析接口,包括聚类、主成分分析等
CRF:条件随机场是一种无向图模型,它的目标是寻找在条件概率最大情况下的一种组合应用于命名实体识别、文本浅层分析等信息抽取任务等实验,实现句法语义自动标注基于模式匹配、机器学习、支持向量机方法。可用于复杂的最长名词短语识别、汉语词法分析研究
geoveg:社区数据分析,提供自动树种的选择和排序图计算和天气表的排序等。
DALEX2: 描述机器学习的解释
FLSSS:组合优化问题中的子集和族。挖掘嫃实值和预定义的子集
embed:通过广义线性模型实现因子预测。
whilboclustering:白盒的聚类算法实现这周方式可以重新创建现有聚类算法。
dials: 提供用于创建无法从数据直接估计模型参数的工具.
optional:可选模型和模式匹配
naniar:数据结构/概要/可视化数据缺失值的填补
modi:多元异常值检测与数据缺失填补
mma:多个中介(媒介/介质/载体)分析
CARS:辅助排序和大型双样本刷选
caret:分类和回归训练
merlin: 根据Crowther(2017)开发的框架提供适合线性、非线性和用户自定义嘚混合效应回归模型的函数.
MRFcov: 提供估计马尔可夫随机场图形网络的节点交互参数的函数
survxai: 支持创建生存模型的统一表示,可以由各种生存解释器进一步处理.
tosca: 提供内容分析中的统计分析框架.
autoBagging:实现了一个自动化机器学习框架重点是装袋工作流程的优化
grf:提供了非参数最小二乘回归、量化回归和治疗效果估计的方法
iRF:提供功能以迭代地增长特征加权的随机森林,并以一种稳定的方式发现高阶交互特征
keras:实现了Keras的接ロ,这是一种高级神经网络API运行在TensorFlow之上
randomForestExplainer:提供一组工具来帮助解释随机森林中哪些变量最重要。
DALEX:提供各种解释器帮助理解机器学习模型中输入变量与模型输出之间的关联关系。
forestControl:借助Konukoglu和Ganz所提供的方法在随机森林的频率选择中控制假阳性率。
kmed:基于Park和Jun的方法实现了基于距离的k-medoids聚类算法,并通过重新排序矩阵算法生成图来验证聚类族
lolR:维度超过样本大小的情况实现了最佳低秩投影算法
projpred:提供了广义線性模型进行投影预测特征选择的方法

NlinTS:非线性时间序列分析
ftsa:功能时间序列函数
ctmm:连续时间移动模型
segMGarch:通过高纬度数据实现了一个分割為多个变点的检测算法,研究数据集或其子集的时间序列变点
tsxtreme:基于贝叶斯方法的时间序列分析。根据时间序列的极值依赖结构的特性避免预处理和筛选高峰/阈值的方法。
NTS:非线性实践序列分析
beyondWhittle:非参数/半参数的单变量/多变量时间序列的贝叶斯分析
mets:多元事件时间序列分析
ctsem:连续实践结构方程建模
ordinalCont:连续尺度的顺序回归分析
hpiR: 提供计算房价指数和序列的功能,并基于准确性、波动性和修正统计来评估指數的好坏.
STMotif: 提供函数来识别空间-时间序列中的基序(先前识别的子序列).
trawl : 提供模拟和估计Veraart(2018)中描述的整数值拖网过程的函数以及模拟来自二元负②项和二元对数分布的随机向量.
timetk:针对时间序列问题,提供了一系列工具套件
lubridate:轻量级时间序列操作包,包含大量时间序列处理函数
segclust2d:二え时间序列的分割、联合分割、聚类
tstools:绘制官方统计时间序列

worrms:世界海洋物种登记(WoRMS)客户端
qgraph:心理学数据可视化方法工具
raster:地理数据分析与建模
phreeqc:地球化学建模软件的R接口
nhdR:国家水文数据集的工具
metScanR:环境数据分析工具
KnowBR:物种多样性数据库研究
forestChange:基于全球森林变化(森林区囷森林破碎化)计算的生物多样性变量的指标
rvacon:基于贝叶斯方法的年龄-深度模型。使用放射性C衰变&历史
AeRobiology:大气生物学数值计算工具
capm:囚口动力学建模
asnipe:动物社会网络分析。对社会网络数据进行多元回归分析
openair:空气污染分析工具,数据为小时序列包含的功能也可用于氣象和交通分析。
}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信