我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

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

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

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

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

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

image

其中:

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

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

image

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

2 正态分布族

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

image

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

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

image

与线性模型

image

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

3 二项分布族

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

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

image

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

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

例  R. Norell实验

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

image

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

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

image

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

image

构建logistic模型如下:

image

image

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

image

即:74.26%。

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

image

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

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

image

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

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

r语言线性回归怎么实现

在R语言中,可以使用`lm()`函数来实现线性回归。下面是一个简单的示例:```R# 创建一个简单的数据集x y # 执行线性回归model # 查看回归结果summary(model)```在上面的示例中,使用`lm(y ~ x)`进行线
2023-08-18

怎么在R语言中实现线性回归

本篇文章为大家展示了怎么在R语言中实现线性回归,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个
2023-06-15

使用R语言怎么实现一个线性回归

今天就跟大家聊聊有关使用R语言怎么实现一个线性回归,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一
2023-06-08

如何在R语言项目中实现多元线性回归

这期内容当中小编将会给大家带来有关如何在R语言项目中实现多元线性回归,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。输入数据先把数据用excel保存为csv格式放在”我的文档”文件夹打开R软件,不用新建,直
2023-06-08

R语言多元线性回归是什么及如何实现

这篇文章主要介绍“R语言多元线性回归是什么及如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“R语言多元线性回归是什么及如何实现”文章能帮助大家解决问题。一、模型简介一元线性回归是一个主要影响因
2023-07-02

R语言如何实现LASSO回归

小编给大家分享一下R语言如何实现LASSO回归,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Lasso回归又称为套索回归,是Robert Tibshirani于1
2023-06-09

基于nn.Module类实现线性回归模型

大多数情况下创建一个继承自 Pytorch 中的 nn.Module 的类,这样可以使用 Pytorch 提供的许多高级 API,而无需自己实现。

R语言怎么进行线性回归的拟合度

在R语言中,可以使用lm()函数来进行线性回归的拟合度计算。lm()函数用于拟合线性模型,并返回一个包含拟合结果的lm对象。以下是一个使用lm()函数计算线性回归拟合度的示例:```R# 创建一个数据集x y # 拟合线性回归模型model
2023-08-18

怎么在R语言中求线性回归的拟合度

本篇文章给大家分享的是有关怎么在R语言中求线性回归的拟合度,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。创建关系模型并获取系数x <- c(151, 174, 138, 186
2023-06-08

R语言如何实现前向逐步回归

这篇文章主要介绍了R语言如何实现前向逐步回归,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前向逐步回归原理前向逐步回归的过程是:遍历属性的一列子集,选择使模型效果最好的那一列
2023-06-20

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录