热线电话:13121318867

登录
首页精彩阅读基于R和Python 如何使用多项式和有序逻辑回归
基于R和Python 如何使用多项式和有序逻辑回归
2016-03-23
收藏

基于R和Python 如何使用多项式和有序逻辑回归

我们中的大多数对于回归的知识是有限的。其中,线性和逻辑回归是我们最喜欢的一种。作为一个有趣的事实,回归具有扩展的能力来处理不同类型的变量。你是否知道,回归规定处理多层次的变量吗?我肯定,你没有,我也没有。直到我被推到探索这方面的回归。

对于多层次的变量,很多机器学习算法可以替你做工作。例如,朴素贝叶斯决策树随机森林等的初学者,这些算法可能有些难以理解。但是,如果你很好的理解逻辑回归,掌握这一新的回归应该是很容易的!

在这篇文章中,我已经解释了使用多项式和序数回归的方法。此外,为了实际的目的,我们已经证明这个算法在一个循序渐进的R潮流中。

注:这篇文章是最适合具有领先经验的逻辑回归的R用户。然而,如果你用Python,你仍然可以得到一个全面的了解这个回归的方法。

时间序列预测全攻略(附带Python代码)

<a href='/map/r/' style='color:#000;font-size:inherit;'>R语言</a>


多元回归是什么?

多远回归是一种线性回归分析,因变量是名义上的两个或两个以上的水平。它用来描述数据,并解释一个依赖名义变量和一个或多个联系水平(时间间隔或比例规模)的独立变量之间的关系。你可以理解的名义变量,一个没有内在顺序的变量。

例如:森林类型:”常绿阔叶林””落叶林”,”雨林”。正如你看到的,他们之间有一个内在的秩序,但是每一类都代表一个独特的分类。换句话说,多项式回归是回归分析逻辑的延伸,分析了独立二进制。

多元回归是如何运作的?

多元逻辑回归评估了每个虚拟变量的二元逻辑回归模型。其结果是M-1二元逻辑回归模型。每一个模型都传达了,在比较参考的类别中,该类别成功概率的影响。

每个模型都有自身的截距和回归系数——预测可以影响每个不同类别。让我们将这一部分与我们的经典之作进行比较——线性和逻辑回归

标准的线性回归需要变量成为连续水平(时间间隔或比率)的规模。然而,逻辑回归通过假设变量是一个随机事件,跳跃了差距。因变量描述该随机事件与密度函数的结果(一个累积概率从0到1的功能)。

统计人员认为,一个事件的概率小于0.5时则会发生,概率大于0.5时则是相反的情况。

现在我们知道MLR延伸了二元逻辑模型给一个众多类别的模型(因变量)。然而,它有一个限制。这个属于结果的类别并不假设任何顺序。例如,如果我们有N个有相等概率的类别。在现实中,我们遇到了一个自然顺序的类别的问题。

那么,当我们的因变量有一个自然顺序的类别时,我们该做什么?这种情况下,有序回归可以拯救我们。

有序回归是什么?

有序回归(也称序逻辑回归)是二项逻辑回归的又一延伸。有序回归是用来预测变量与”有序”多个类别和独立变量。换句话说,它是用来促进一个或多个独立变量的相互作用的依赖变量(具有多个有序的水平)。

例如:让我们假设一项已经完成的调查。我们问了调查者一个在同意与不同意之间的问题。回馈的收集并没有帮助我们很好的概括。后来,我们增加了我们的反应机制例如:非常不同意,不同意,同意,非常不同意。

这有助于我们观察自然秩序的种类。因为我们的回归模型是现实的,我们必须感谢这个顺序不是生来就有的,正如MLR的情况,有序逻辑回归解决了这种情况。有序意味着类别的顺序。

实例:

在我们演算这些算法之前,让我们确保我们已经获得了一个具体的理解,使用下面的案例:

案例1:(多项式回归)

高中生可以用多项式LOGIT模型完成程序建模选择。程序选择可以是一般程序,职业程序和学术程序。他们的选择可以用他们的写作成绩和他们的社会经济地位来建模。

基于各种属性,如社会地位,渠道类型,学生所得到的奖项和荣誉,性别,经济地位以及他们在一个给定的题目中他们能够写的或者读的有多好,程序类型的选择可以预测。多层次的程序选择(无序)是因变量。本案适用于多元逻辑回归技术。

案例2(有序回归)

一项研究着眼于是否一些因素会影响到申请研究生学校的决定。高校学生被问到他们是不可能,有点可能,或者很有可能申请研究生学院。因此,我们的结果变量有三类,即,不可能,有点可能和非常有可能。

父母对子女教育情况的数据,制度类(私营或国营),收集当前GPA。研究人员有理由相信,这三个点之间的”距离”是不平等的。例如,”不可能”和”有点可能”之间的”距离”可能比”有点可能”和”有可能”的距离短。在这种情况下,我们将使用有序回归。

R下的多元逻辑回归(MLR)

读取文件

大数据

现在我们将用2个独立变量进行多项式回归

<a href='/map/r/' style='color:#000;font-size:inherit;'>R语言</a>

解释

1、模型执行输入显示了一些迭代的历史,包括最终的像179.981726的负对数。这个值乘以两个模型最终显示残余偏差

2、摘要输出有一个板块的系数和另一个板块的标准差。每个区块有一行对应于一个模型方程的值。在系数的区块,我们可以看到,第一行是比较prog=general 与我们的基础 prog=academic,并且第二行 prog=vocation与我们的基础prog=academic.

3、在一般程序与0.0579的学术计划,一个写日志记录的单位的增长会降低。

4、在职业计划与0.1136的学术课程,一个写日志记录的单位的概率增长会降低。

5、如果从ses=low到ses=high, 一般程序的日志概率比学术程序降低1.163.

6、另一方面,如果从ses=low到ses=middle,一般程序的日志概率比学术计划中的减少0.5332。

7、如果从ses=low到ses=high,职业计划的日志概率比学术计划减少0.983.

8、如果从ses=low 到ses=middle,职业计划的日志概率比学术计划增加0.291.

现在我们将计算模型中的变量Z值与P值。

<a href='/map/r/' style='color:#000;font-size:inherit;'>R语言</a>

P值告诉我们,ses变量并没有限制。我们现在将探索整个数据集,并分析我们是否可以删除不添加到模型性能的任何变量。

<a href='/map/r/' style='color:#000;font-size:inherit;'>R语言</a>

在移除ID和程序变量之后,让我们在整个数据集中建立一个数据多项式模型。

大数据大数据

让我们检查一下现在的值。

大数据

一旦我们建立了这个模型,我们就用它来预测。让我们用不同的排列组合创建一个新的数据集。

大数据

现在,我们计算出预测值。参数 type=probs, 指定我们对于概率的兴趣。为了直观的理解去绘制预测的概率,我们增加了预测概率值的数据。

<a href='/map/r/' style='color:#000;font-size:inherit;'>R语言</a>

现在,我们要计算每个水平的ses的平均概率。

<a href='/map/r/' style='color:#000;font-size:inherit;'>R语言</a>

我使用从reshape 2 package 中的Melt()功能。它带着每一个行都是独特的身份变量的组合,融合数据。

> library("reshape2")

## Warning: package 'reshape2' was built under R version 3.1.3

> bpp2 = melt (bpp,id.vars=c("female", "ses","schtyp", "read","write","math","science","socst","honors", "awards"),value.name="probablity")

> head(bpp2)

<a href='/map/r/' style='color:#000;font-size:inherit;'>R语言</a>

现在我们将探讨因变量与自变量的分布,并绘制图形。使用ggplot()功能。在ggplot,这个函数的第一个参数是数据值绘制。第二部分在( aes())绑定变量X和Y轴。我们告知使用geom_line()绘图功能画出一条线。我们通过绘制不同的颜色区分不同学校的类型。

<a href='/map/r/' style='color:#000;font-size:inherit;'>R语言</a>

到这里,我们已经学会了使用多元回归,如上面提到的,如果你有很好的逻辑回归的知识,解释这个结果并不太困难。现在让我们开始理解R中的有序回归。

R中的有序逻辑回归

下面是R中的OLR的执行步骤

<a href='/map/r/' style='color:#000;font-size:inherit;'>R语言</a>

加载库

大数据

让我们快速了解数据

该数据有一个被成为相关变量的应用。它有3个层次,即不可能,有点可能,很可能。编码在1,2 和3. 3最高,1最低。这种情况是最好的顺序回归的使用。因为存在有序类别。Pared(0/1)是指父母至少有一个人具有硕士研究生学历;Public(0/1)指本科院校的类型。

建立这个模型,我们将使用polR命令来估计一个有序逻辑回归。然后,我们将指定Hess=TRUE让模型输入显示所观察到的优化信息矩阵,这是曾经用来获得标准误差的方式。

大数据

我们通常看到的回归输出系数表包括各系数的值,标准差,T值,对两截距的估计,剩余偏差和AIC。AIC信息准则。越小越好。

现在我们要计算一些重要的指标如P值,CI,比值率。

大数据

大数据

解释

1、家长的教育每增加一个单位,从0(低)到1(高),极有可能申请比有点可能或不可能申请的可能性大2.85.

2、很有可能或有点可能申请比不可能申请的可能性大2.85倍。

3、从GPA考虑,当一个学生的GPA移动一个单位,不可能申请的概率是有点可能或很可能(从低到中等分类,或从低到高等分类)申请的概率乘以1.85。

现在让哦我们试着加强这个模型,以获得更好的预测评估。

<a href='/map/r/' style='color:#000;font-size:inherit;'>R语言</a>

大数据

让我们在这里添加交互项

<a href='/map/r/' style='color:#000;font-size:inherit;'>R语言</a><a href='/map/r/' style='color:#000;font-size:inherit;'>R语言</a><a href='/map/r/' style='color:#000;font-size:inherit;'>R语言</a><a href='/map/r/' style='color:#000;font-size:inherit;'>R语言</a><a href='/map/r/' style='color:#000;font-size:inherit;'>R语言</a>

结束语

我很喜欢写这篇文章。我建议你注意模型的解释。编码是比较容易的,但是除非你知道是怎么产生的,否则,你的学习是不完整的。


有许多重要的因素,比如,AIC,残差值来确定模型的有效性。如果你还想了解他们,我会建议你去刷逻辑回归的基本。这应该有助于你更好的理解这个概念。

数据分析咨询请扫描二维码

最新资讯
更多
客服在线
立即咨询