R语言第七讲 线性回归分析案例

题目

          MASS 库中包含 Boston (波士顿房价)数据集,它记录了波士顿周围 506 个街区的 medv (房价中位数)。我们将设法用 13 个预测变量如 rm (每栋住宅的平均房间数), age (平均房 龄), lstat (社会经济地位低的家庭所占比例)等来预测 medv (房价中位数)。

************************************************MASS是R语言自带的库********************************************************

library(MASS) #加载MASS程序包
library(ISLR) #加载ISLR程序包,确保事先已经下载install.packages("ISLR")
fix(Boston) #打开Boston房价数据,excel
names(Boston) #查看所有的数据特征,即:列属性
# [1] "crim"    "zn"      "indus"   "chas"    "nox"     "rm"     
# [7] "age"     "dis"     "rad"     "tax"     "ptratio" "black"  
# [13] "lstat"   "medv"  
?Boston#查看Boston的更多数据信息(帮助文档)

       准备好了数据集,我们开始用 lm ()函数拟合一个简单线性回归模型开始,将 lstat 作为预测变量, medv 作 为响应变量。基本句法是 lm (y ~ x , data) ,其中 y 是响应变量, x 是预测变量, data 是这 两个变量所属的数据集。

lm.fit=lm(medv~lstat)

       发现提示错误:Error in eval(predvars, data, env) : 找不到对象'medv'

因为 R 不知道哪里可以找到变量 medv 和 lstat。下一行命令告诉 R,变 量在 Bosto日数据集中。如果绑定 Boston 数据集, R 就能识别变量,此时第一行语句可以正 常工作。

lm.fit=lm(medv~lstat,data=Boston)
attach(Boston)
lm.fit=lm(medv~lstat)
lm.fit# Call:
# lm(formula = medv ~ lstat)# Coefficients : 系数
# (Intercept)        lstat  
#       34.55        -0.95 

       如果我们输入 lm. fit ,则会输出模型的一些基本信息,这给出了预测的线性函数的截距以及系数。那么预测的线性函数就已经出来了。

summary(lm.fit)
Call:
lm(formula = medv ~ lstat)Residuals:      残差Min      1Q  Median      3Q     Max 
-15.168  -3.990  -1.318   2.034  24.500 Coefficients: Estimate Std. Error t value Pr(>|t|)   #估计标准误差t值 
(Intercept) 34.55384    0.56263   61.41   <2e-16 ***
lstat       -0.95005    0.03873  -24.53   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 6.216 on 504 degrees of freedom #预测的残差标准误 #Coefficient of determination(有的译为“决定性系数”)。 
Multiple R-squared:  0.5441,	Adjusted R-squared:  0.5432  #F统计量  P值
F-statistic: 601.6 on 1 and 504 DF,  p-value: < 2.2e-16

这一句会列出系数的p值和标准误,以及模型R^2统计量和F统计量。

Residuals:      残差Min      1Q  Median      3Q     Max 
-15.168  -3.990  -1.318   2.034  24.500 

上方的代表残差。 通过将预测结果(通过函数计算)  减去  对应的目标变量 (预测变量的真实值)的真实值,便可获得残差值。

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

       显著性标记   * * * 极度显著,* * 高度显著,*显著,圆点不太显著,没有记号不显著简而言之,*越多代表效果越好,下面估计的系数,代表就极度显著,就是很准确的意思。

Coefficients: Estimate Std. Error t value Pr(>|t|)   #估计标准误差t值 
(Intercept) 34.55384    0.56263   61.41   <2e-16 ***
lstat       -0.95005    0.03873  -24.53   <2e-16 ***

      第一列代表34.55384代表的是截距,-0.95005代表斜率
      第二列:推算的系数的标准差
      第三列:t值,t统计量
      第四列:p值,是一个验证假设是否成立的值。比如身高体重模型,假设身高height与weight无关系,也就是在原始的模型中呢,体重=常数+0*height,height前面系数为0,由此我们可以通过R算出一个统计量t值,Pr表示t值以外的面积,也就是下面谈到的p值

    估计标准误差(Se)是说明实际值与其估计值之间相对偏离程度的指标,主要用来衡量回归方程的代表性。估计标准误差,即因变量y的实际值与回归方程求出的估计值之间的标准误差,估计标准误差越小,回归方程拟合程度越好。

估计标准误差的值越小,则估计量与其真实值的近似误差越小,但不能认为估计量与真实值之间的绝对误差就是估计标准误差。估计标准误差与判定系数相反,se反映了预测值与真实值之间误差的大小,se越大说明拟合度越低。

Residual standard error: 6.216 on 504 degrees of freedom #预测的残差标准误

       残差标准误即计算标准误的样本是样本数值的残差。

       标准误,即样本均数的标准差,是描述均数抽样分布的离散程度及衡量均数抽样误差大小的尺度,反映的是样本均数之间的变异。标准误不是标准差,是多个样本平均数的标准差。

标准误用来衡量抽样误差。标准误越小,表明样本统计量与总体参数的值越接近,样本对总体越有代表性,用样本统计量推断总体参数的可靠度越大。因此,标准误是统计推断可靠性的指标。

#Coefficient of determination(有的译为“决定性系数”)。 
Multiple R-squared:  0.5441,	Adjusted R-squared:  0.5432  

       这里的决定性系数R方,我经常与函数的相关系数R弄混,今天将两者简单谈一下。

1、 相关系数 R

      定义: 变量之间线性相关的度量。

      计算:

                  

解释:

自变量X和因变量Y的协方差/标准差的乘积。
* 协方差:两个变量变化是同方向的还是异方向的。X高Y也高,协方差就是正,相反,则是负。
* 为什么要除标准差:标准化。即消除了X和Y自身变化的影响,只讨论两者之间关系。
* 因此,相关系数是一种特殊的协方差。


2、决定性系数 R方

      定义:对模型进行线性回归后,评价回归模型系数拟合优度。

      公式:R方=(TSS-RSS)/TSS=1-RSS/TSS 

                 TSS (total sum of squares):总平方和,即:用真实值-真实值的平均值的平方 

                                                               
                 RSS (regression sum of squares):残差平方和

                                                                 
          在简单回归模型中,R方是响应变量Y和预测变量X相关系数的平方.在多元线性回归中,是响应值Y和线性拟合值,相关系数的平方。

          综上:R方接近于1,则表明该模型能解释大部分响应变量的方差。

            

#F统计量  P值
F-statistic: 601.6 on 1 and 504 DF,  p-value: < 2.2e-16

 1、 P值

        P值即概率,反映某一事件发生的可能性大小。统计学根据显著性检验方法所得到的P 值,一般以P < 0.05 为有统计学差异, P<0.01 为有显著统计学差异,P<0.001为有极其显著的统计学差异。其含义是样本间的差异由抽样误差所致的概率小于0.05 、0.01、0.001。实际上,P值不能赋予数据任何重要性,只能说明某事件发生的几率。统计结果中显示Pr > F,也可写成Pr( >F),P = P{ F0.05 > F}或P = P{ F0.01 > F}。

      计算:

      一般呢,我们进行线性拟合时:拟合出来的公式为 Y(预测) =  b(预测) + a(预测)x  。

但是b(预测)与真实的b会有一定误差,a(预测)也如此,差距如何衡量?

      计算a,b的标准误差可以使用以下公式   

                                  

                                        

        σ 是变量 Y 的每个实现值 Yi 的标准差。

        计算p值,还需要引入t统计量。

        t统计量

         定义:用于测量 了 β1 偏离 0 的标准偏差。即:测量函数是一个常数函数还是一个一元函数。

         计算:  

         以0为中心,左右对称的单峰分布;t分布是一簇曲线,其形态变化与n(确切地说与自由度df)大小有关。自由度df越小,t分布曲线越低平;自由度df越大,t分布曲线越接近标准正态分布(u分布)曲线;随着自由度逐渐增大,t分布逐渐接近标准正态分布。

      (自由度:估计的样本数据中有n个点,其中有a个点的取值不受其他点的影响,则自由度为a,所谓受影响即:变量x的取值如果不会影响的变量z的取值,比如z不是根据x来计算出来的。那么称z与x没有关系,则没有影响)

        P值定义: 计算任意观测值大于等于 I t I 的概率就十分简单了,我们称这个概率为 p 值 。

        解释::一个很小的 p 值表示,在预测变量和响应变量之间的真实关系 未知的情况下,不太可能完全由于偶然而观察到预测变量和响应变量之间的强相关。因此,如 果看到一个很小的 p 值,就可以推断预测变量和响应变量问存在关联。

  2、F统计量

       F统计量定义:用来检测响应变量Y与预测变量X之间是否有关系。对于多元一次函数分析用了超过一个参数的统计模型,以                                 判断该模型中的全部或一部分参数是否适合用来估计母体。

       计算:     

               这里把选择忽略的变量放在了列表末尾。在这种情况下,我们用除最后 q 个变量 之外的所有变量建立第二个模型。假                   设该模型的残差平方为 RSSo 

       解释:当响应变量与预测变量时F统计量应该接近于1。

       回到实验,我们可以使用names ()函数找出 lm. fit 中存储的其他信息。虽然可以用名称提取这些量 例 如: lm. fit $ coefficients但用提取功能如 coef ()访问它们会更安全。

      

 > names(lm.fit)[1] "coefficients"  "residuals"     "effects"       "rank"         [5] "fitted.values" "assign"        "qr"            "df.residual"  [9] "xlevels"       "call"          "terms"         "model"    
> coef(lm.fit)#这样访问更加安全
(Intercept)       lstat 34.5538409  -0.9500494 > confint(lm.fit)#得到系数估计值的置信区间2.5 %     97.5 %
(Intercept) 33.448457 35.6592247  #截距估计
lstat       -1.026148 -0.8739505  #一次项系数估计> predict(lm.fit,data.frame(lstat=(c(5,10,15))), interval="confidence")#计算置信区间fit      lwr      upr
1 29.80359 29.00741 30.59978
2 25.05335 24.47413 25.63256
3 20.30310 19.73159 20.87461
> predict(lm.fit,data.frame(lstat=(c(5,10,15))), interval="prediction")#计算预测区间fit       lwr      upr
1 29.80359 17.565675 42.04151
2 25.05335 12.827626 37.27907
3 20.30310  8.077742 32.52846

         由以上数据可以看出:如当 lstat 等于 10 时,相应的 95% 置信区间为 (24. 47 , 25. 63) ,相应的 95% 预测区 间为 (12.828 , 37.28) 。正如预期的那样,置信区间和预测区间有相同的中心点(当 lstat 等于 10 时, medv 的预测值是 25.05) ,但后者要宽得多。 

       用函数 plot ()和 abline ()绘制 medv 和 lstat 的散点图以及最小二乘回归 直线。 

plot(lstat,medv)
abline(lm.fit)

       

abline(lm.fit,lwd=3)
abline(lm.fit,lwd=3,col="red")
plot(lstat,medv,col="red")
plot(lstat,medv,pch=20)
plot(lstat,medv,pch="+")
plot(1:20,1:20,pch=1:20)

  以上命令,分别是改变线条的宽度,线的颜色,散点图的点的形状,点的大小、颜色等。

     接下来我们检查一些诊断图。对lm ( )的输出直接用 plot ()命令将自动生成四幅诊断图。一般情况下,这个命令每次生成一幅图,按下回车键 (Enter) 将生成下一幅图。然而,同时查看所有 4 幅图通常比较方便。可以用 par ()函数做到 这一点,它指示 R 将显示屏分割成独立的面板,所以可以同时查看多个图。例如, par (mfrow = c (2 , 2)) 把绘图区域划分成 2 x2 的网格面板。

par(mfrow=c(2,2))
plot(lm.fit)#生成4幅诊断图
plot(predict(lm.fit), residuals(lm.fit))
plot(predict(lm.fit), rstudent(lm.fit))plot(hatvalues(lm.fit))
which.max(hatvalues(lm.fit))
375 
375 


      以用 residuals ()函数计算线性回归拟合的残差。函数 rstudent ()可计算学生化 残差,我们也可以用这个函数绘制残差对拟合值的散点图。

      残差图中的一些证据表明数据有非线性。杠杆统计量可以由 hatva1ues ()函数为任意多 个预测变量来计算。

      which. max ()函数可识别出向量中最大元素的索引。在本例中,它告诉我们哪个观测具 有最大的杠杆统计量。


                 

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

01.神经网络和深度学习 W4.深层神经网络(作业:建立你的深度神经网络+图片猫预测)

文章目录作业1. 建立你的深度神经网络1. 导入包2. 算法主要流程3. 初始化3.1 两层神经网络3.2 多层神经网络4. 前向传播4.1 线性模块4.2 线性激活模块4.3 多层模型5. 损失函数6. 反向传播6.1 线性模块6.2 线性激活模块6.3 多层模型6.4 梯度下降、更新参数作业2. 深度神经网络应…

浅析调用android的content provider(一)

在Android下&#xff0c;查询联系人、通话记录等&#xff0c;需要用到content provider。但是&#xff0c;调用content provider时&#xff0c;Android框架内部是如何做的呢&#xff1f;这一系列文章就是解决这个问题的&#xff0c;所采用的开发环境及源码都是基于Android 1.6版…

R语言第七讲 线性回归分析案例续

题目 MASS 库中包含 Boston (波士顿房价)数据集&#xff0c;它记录了波士顿周围 506 个街区的 medv (房价中位数)。我们将设法用 13 个预测变量如 rm (每栋住宅的平均房间数)&#xff0c; age (平均房 龄)&#xff0c; lstat (社会经济地位低的家庭所占比例)等来预测…

LeetCode 1129. 颜色交替的最短路径(BFS)

文章目录1. 题目2. 解题1. 题目 在一个有向图中&#xff0c;节点分别标记为 0, 1, ..., n-1。 这个图中的每条边不是红色就是蓝色&#xff0c;且存在自环或平行边。 red_edges 中的每一个 [i, j] 对表示从节点 i 到节点 j 的红色有向边。 类似地&#xff0c;blue_edges 中的每…

web.config文件之自定义错误节

web.config文件之自定义错误节 大家都知道&#xff0c;在开发asp.net应用程序时&#xff0c;通过web.config文件可以配置在执行 Web 请求期间发生未处理的错误时&#xff0c;ASP.NET 显示信息的方式。下面是一个典型的基本配置&#xff1a; ?<system.web><customErro…

linux中UDP程序流程、客户端、服务端

UDP--- 用户数据报协议&#xff08;User Datagram Protocol&#xff09;&#xff0c;是一个无连接的简单的面向数据报的运输层协议。 优点&#xff1a;传输速度快 缺点&#xff1a;不可靠 socket的中文意思是接插件&#xff1a; 创建socket 在 Python 中 使用socket 模块的类 …

LeetCode 1041. 困于环中的机器人

文章目录1. 题目2. 解题1. 题目 在无限的平面上&#xff0c;机器人最初位于 (0, 0) 处&#xff0c;面朝北方。机器人可以接受下列三条指令之一&#xff1a; “G”&#xff1a;直走 1 个单位“L”&#xff1a;左转 90 度“R”&#xff1a;右转 90 度 机器人按顺序执行指令 ins…

Javascript实现合并单元格

Web上的报表或表格应用&#xff0c;较为复杂的表格操作一般都比较难实现&#xff0c;这里介绍一下用ComponentOne Studio for ASP.NET Wijmo中的SpreadJS&#xff0c;可以实现一些较为复杂的表格操作&#xff0c;个人认为他模仿桌面应用的操作体验非常不错&#xff0c;虽然我并…

LeetCode 1039. 多边形三角剖分的最低得分(区间DP)

文章目录1. 题目2. 解题1. 题目 给定 N&#xff0c;想象一个凸 N 边多边形&#xff0c;其顶点按顺时针顺序依次标记为 A[0], A[i], ..., A[N-1]。 假设您将多边形剖分为 N-2 个三角形。 对于每个三角形&#xff0c;该三角形的值是顶点标记的乘积&#xff0c;三角剖分的分数是…

02.改善深层神经网络:超参数调试、正则化以及优化 W1.深度学习的实践层面

文章目录1. 训练&#xff0c;验证&#xff0c;测试集2. 偏差&#xff0c;方差3. 机器学习基础4. 正则化5. 为什么正则化预防过拟合6. dropout&#xff08;随机失活&#xff09;正则化7. 理解 dropout8. 其他正则化9. 归一化输入10. 梯度消失 / 梯度爆炸11. 神经网络权重初始化1…

R语言第十讲 逻辑斯蒂回归

模型函数介绍 Logistic Regression 虽然被称为回归&#xff0c;但其实际上是分类模型&#xff0c;并常用于二分类。Logistic Regression 因其简单、可并行化、可解释强深受工业界喜爱。 Logistic 回归的本质是&#xff1a;假设数据服从这个Logistic 分布&#xff0c;然后使用极…

阿里云 超级码力在线编程大赛初赛 第3场 题目4. 完美字符串

文章目录1. 题目2. 解题1. 题目 描述 定义若一个字符串的每个字符均为’1’&#xff0c;则该字符串称为完美字符串。 给定一个只由’0’和’1’组成的字符串s和一个整数k。 你可以对字符串进行任意次以下操作 选择字符串的一个区间长度不超过k的区间[l, r]&#xff0c;将区间…

R语言第十一讲 决策树与随机森林

概念 决策树主要有树的回归和分类方法&#xff0c;这些方法主要根据分层和分割 的方式将预测变量空间划分为一系列简单区域。对某个给定待预测的观 测值&#xff0c;用它所属区域中训练集的平均值或众数对其进行预测。 基于树的方法简便且易于解释。但预测准确性通常较低。如图…

python面试题汇总(1)

1. (1)python下多线程的限制以及多进程中传递参数的方式   python多线程有个全局解释器锁&#xff08;global interpreter lock&#xff09;&#xff0c;这个锁的意思是任一时间只能有一个线程使用解释器&#xff0c;跟单cpu跑多个程序一个意思&#xff0c;大家都是轮着用的&…

阿里云 超级码力在线编程大赛初赛 第3场 题目1. 最大公倍数

文章目录1. 题目2. 解题1. 题目 来源&#xff1a;https://tianchi.aliyun.com/oj/15179470890799741/85251759933690467 2. 解题 看的大佬的解题&#xff0c;很强&#xff01; class Solution { public:/*** param a: Left margin* param b: Right margin* return: return t…

Javascript:前端利器 之 JSDuck

背景 文档的重要性不言而喻&#xff0c;对于像Javascript这种的动态语言来说就更重要了&#xff0c;目前流行的JDoc工具挺多的&#xff0c;最好的当属JSDuck&#xff0c;可是JSDuck在Windows下的安装非常麻烦&#xff0c;这里就写下来做个备忘。 JSDuck生成的文档效果 JSDuck安…

Ubuntu 扩展内存或断电之后卡在 /dev/sda1 clean 和 /dev/sda1 recovering journal

当ubuntu虚拟机硬盘空间不够用的时候&#xff0c;往往会出现新增扩展硬盘空间之后&#xff0c;出现开机卡死的现象。 通过查阅相关资料&#xff0c;排坑如下&#xff1a; 一、原VM硬盘空间已满 当原VM硬盘空间已满的情况下&#xff0c;千万不要重启或者关机操作&#xff0c;极…

阿里云 超级码力在线编程大赛初赛 第3场 题目2. 房屋染色(DP)

文章目录1. 题目2. 解题1. 题目 有n个房子在一列直线上&#xff0c;现在Bob需要给房屋染色&#xff0c;共有k种颜色。 每个房屋染不同的颜色费用也不同&#xff0c;Bob希望有一种染色方案使得相邻的房屋颜色不同。 但Bob计算了使相邻房屋颜色不同的最小染色费用&#xff0c;发…

TCP协议以及三次握手

TCP协议&#xff0c;传输控制协议&#xff08;英语&#xff1a;TransmissionControl Protocol&#xff0c;缩写为 TCP&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议&#xff0c;由IETF的RFC793定义。 tcp通信需要经过创建连接、数据传送、终止连接三个步骤…