服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - R语言 - R语言实现广义线性回归模型

R语言实现广义线性回归模型

2022-01-18 19:04一天_pika R语言

本文主要介绍了R语言实现广义线性回归模型,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

广义线性模型(GLM)是常见正态线性模型的直接推广,它可以适用于连续数据和离散数据,特别是后者,如属性数据、计数数据。这在应用上,尤其是生物、医学、经济和社会数据的统计分析上,有着重要意义。

对于广义线性模型应有一下三个概念:

  • 第一是线性自变量,它表明第i个响应变量的期望值E(yi)只能通过线性自变量βTxi而依赖于xi,其中如通常一样,β是未知参数的(p+1)x1向量,可能包含截距。
  • 第二是连续函数,它说明线性自变量和E(yi)的关系,给出了线性模型的推广。
  • 第三是误差函数,它说明广义线性模型的最后一部分随机成分。

我们保留样本为相互独立的假设,但去掉可加和正态误差的假设。可以从指数型分布族中作选一个作为误差函数。

 

1 与广义线性模型有关的R函数

R软件提供了拟合计算广义线性模型的函数glm(),其命令格式如下:

R语言实现广义线性回归模型

其中:

  • formula是拟合公式,这里的意义与线性模型相同,
  • family是分布族,即前面讲到的广义线性模型的种类,如正态分布,Poisson分布,二项分布等。
  • data是数据框,这里的意义与线性模型相同。

对于每个分布族(family),提供了相应的连接函数,如表6.12所示:

R语言实现广义线性回归模型

有了这些分布族和连接函数,我么就可以完成相应的广义线性模型的拟合问题。

 

2 正态分布族

正态分布族的使用方法是:

R语言实现广义线性回归模型

式中link=identity可以不写,因为正态分布族的连接函数缺省值是恒等(identity)。事实上,整个参数family = gaussian也可以不写,因为分布族的缺省值就是正态分布。

从表6.11可以看出,正态分布族的广义线性模型实际上与线性模型是相同的,也就是说:

R语言实现广义线性回归模型

与线性模型

R语言实现广义线性回归模型

有完全相同的计算结果,但效率却低的多。

 

3 二项分布族

在二项分布族中,logistic回归模型是最重要的模型。在某些回归问题中,相应变量使分类的,经常是或者成功,或者失败。对于这些问题,正态线性模型显然是不合适的,因为正态误差不对应一个0-1相应。在这种情况下,可用一种重要的方法称为logistic回归。

用R软件计算logistic回归模型的公式为:

R语言实现广义线性回归模型

式中link=logit可以不写,因为logit是二项分布族连接函数是缺省状态。

在用glm()函数做logistic回归模型使,对于公式formula有两种输入方法,一种是输入成功和失败的次数,另一种像线性模型通常数据的输入方式。

例 R. Norell实验

为研究高压电线对牲畜的影响,R.Norell研究小的电流对农场动物的影响。他在实验中,选择了7头,6种电流强度,0,1,2,3,4,5毫安。每头牛被点击30下,每种强度5下,按随机的次序进行。然后重复整个实验,每头牛总共被点击60下。对每次电击,相应变量――嘴巴运动,或者出现,或者未出现。表6.13中的数据给出每种电击强度70次实验中相应的总次数。试分析电击对牛的影响。

R语言实现广义线性回归模型

解:用数据框形式输入数据,在构造矩阵,一列是成功(响应)的次数,另一列是失败(不响应)的次数,然后在做logistic回归。其程序如下:

首先构造出的数据框如下:

R语言实现广义线性回归模型

对构造好的数据框进行处理如下:

R语言实现广义线性回归模型

构建logistic模型如下:

R语言实现广义线性回归模型

R语言实现广义线性回归模型

与线性回归模型相同,在得到回归模型后,可以作出预测。例如,当电流强度为3.5毫安时,有相应的牛的概率为多少?

R语言实现广义线性回归模型

即:74.26%。

可以作出控制,如有50%的牛有相应,其电流强度为多少?

R语言实现广义线性回归模型

即:2.65毫安的电流强度,可以使50%的牛有响应。

最后画出相应的比例与logistic回归曲线。R软件的绘图命令如下:

R语言实现广义线性回归模型

在程序中,d是给出曲线横坐标的点,pre是计算预测值,p是相应的预测概率。用plot函数和lines函数给出散点图和对应的预测曲线。

到此这篇关于R语言实现广义线性回归模型的文章就介绍到这了,更多相关R语言 广义线性回归模型内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/yitian_z/article/details/103097363

延伸 · 阅读

精彩推荐
  • R语言R语言可视化存储矢量图实现方式

    R语言可视化存储矢量图实现方式

    这篇文章主要为大家介绍了R语言存储矢量图的实现方式过程,有需要的朋友可以借鉴参考下,希望能够有所你帮助,祝大家多多进步,早日升职加薪...

    Kanny广小隶9392022-01-20
  • R语言R语言编程学习绘制动态图实现示例

    R语言编程学习绘制动态图实现示例

    这篇文章主要介绍了R语言编程学习绘制动态图实现示例,有需要的的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    微小冷7652022-01-18
  • R语言R语言中c()函数与paste()函数的区别说明

    R语言中c()函数与paste()函数的区别说明

    这篇文章主要介绍了R语言中c()函数与paste()函数的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    yiyu_j11152022-01-12
  • R语言R语言-使用ifelse进行数据分组

    R语言-使用ifelse进行数据分组

    这篇文章主要介绍了R语言-使用ifelse进行数据分组,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    小力丸12042022-01-10
  • R语言聊聊R语言中Legend 函数的参数用法

    聊聊R语言中Legend 函数的参数用法

    这篇文章主要介绍了聊聊R语言中Legend 函数的参数用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    Gavin姓陈6352021-12-28
  • R语言R语言绘制散点图实例分析

    R语言绘制散点图实例分析

    在本篇文章里小编给大家整理的是一篇关于R语言绘制散点图实例分析内容,有需要的朋友们可以学习下。...

    w3cschool6942022-01-06
  • R语言R语言创建矩阵的实现方法

    R语言创建矩阵的实现方法

    这篇文章主要介绍了R语言创建矩阵的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随...

    hjk_caesar9462021-12-27
  • R语言R studio 批量注释的快捷方式

    R studio 批量注释的快捷方式

    这篇文章主要介绍了R studio 批量注释的快捷方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    JasonKQLin13342022-01-04