brief
等式 y =ax + b,就是一个简单线性回归方程,
解释变量x与因变量y的关系可以用一个等式表达
或者说变量x可以解释变量y,变量x每变动1个单位,y就有预计会变动a个单位,也可以说就有一个变量y与之对应(其实是一个y总体的平均数)
R函数拟合OLS回归模型
基础理论部分
需要注意的是,正态性指因每一个自变量x对应一个正态总体的变量y。
构建函数
简单线性回归
attach(women)
head(women)
# 直接用身高预测体重试一下
myfit <- lm(weight~height,data = women)
#看一下总体表现
summary(myfit)
# 实际值和预测值
women$weight
fitted(myfit)
# 实际值和预测值之差被称为残差值
women$weight - fitted(myfit)
residuals(myfit)
# 利用散点图看一下拟合情况
plot(women$height,women$weight,xlab = "height",ylab="weight")
abline(myfit)
这里可一看到R2等于0.991,这个数据个人理解就是决定系数
还有F检验对回归系数进行了显著性检验
多项式回归
上面利用简单线性回归拟合数据,最后作图可以发现数据整体趋势微微向上弯曲,也许进行多项式回归最终拟合的效果会更好。
y = ax + bx2+c 二次项
y = ax + bx2+cx3+d 三次项
myfit2 <- lm(weight ~ height + I(height^2), data=women)
summary(myfit2)
plot(women$height,women$weight,xlab = "height",ylab="weight")
line(women$height,fitted(myfit2))
多元线性回归
当预测变量不止一个时,可以使用多元线性回归模型进行拟合
states <- as.data.frame(state.x77[,c("Murder", "Population","Illiteracy", "Income", "Frost")])
fit <- lm(Murder ~ Population + Illiteracy + Income + Frost,data=states)
summary(fit)
当预测变量不止一个时,回归系数的含义为:一个预测变量增加一个单位,其他预测变量保持不变时,因变量将要增加的数量。
在结果中,文盲率的回归系数为4.14,表示控制人口、收入、温度等不变时,文盲率上升1%,自杀率将会上升4.14%。Pr显著性小于α=0.05,拒绝原假设H0:回归系数等于0.
然后Frost的系数进行显著性检验时,没有拒绝原假设,表明控制其他变量不变时,Frost与Murder不成线性关系。
有交互项的线性回归
比如两个预测变量,这两个预测变量存在一定程度相互作用/影响,而且相互作用/影响的结果对结果变量影响程度怎么样,我们就可以使用交互向进行拟合。
fit <- lm(mpg ~ hp + wt + hp:wt, data=mtcars)
summary(fit)
hp:wt交互项的系数显著不为0,说明因变量与其中一个自变量的关系严重依赖于另一个自变量。
评价拟合优度
文章最后面有pearson系数计算的手写公式,R2 等于pearson系数的平方,
R2 = SSxy2 / SSx * SSy
SS回归 = SSxy2 / SSx
所以 R2 = SS回归 / SSy 或者说X变异引起Y变异的平方和占Y总变异的平和的多少。
当然是R2 拟合的越大越好了,当然需要等式有实际意义。
检验假设条件
回归系数显著性检验
假设的检验
fit <- lm(weight ~ height, data=women)
par(mfrow=c(2,2))
plot(fit)
- 你的数据有多满足前提假设,进行回归后的结果就越有可能正确
- 假设认为一个自变量x对应一个因变量正态总体y,也就说y包含理论值和误差两部分,而且误差时正态随机分布的,残差值如果是误差造成的,是不是应该符合正态随机分布?所以残差值和因变量理论上没有趋势可言,第一幅图显示了他们的分布具有趋势。
- 残差值如果是随机正态分布那和理论上的分布应该是正相关且斜率靠近1,但是NormalQ-Q图表明,残差值不是标准版的正态随机分布。
- scale – location 图同上述解释一样,标准残差值理论上也是随机分布的,前提假设中因变量具有方差齐性,其实个人认为就是y包含的误差部分如果是正态分布的延伸。
- Residuals vs leverage可以让我们看到离群点,也就是对因变量y方差贡献最多的一些点。
其他方法
选择最终模型
模型比较
预测变量的选择
install.packages("leaps")
library(leaps)states <- as.data.frame(state.x77[,c("Murder", "Population","Illiteracy", "Income", "Frost")])
leaps <-regsubsets(Murder ~ Population + Illiteracy + Income +Frost, data=states, nbest=4)
plot(leaps, scale="adjr2")
类似于热图的最上面的几行显示,当增加预测变量时,adjr2不会增加了,最大是0.55,增加预测变量反而使得
adjr2变小,所以两个预测变量用于线性回归是最好的选择。
线性回归和相关性的关系
查看全文
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dgrt.cn/a/2171917.html
如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!
相关文章:
R — 线性回归
brief
等式 y ax b,就是一个简单线性回归方程, 解释变量x与因变量y的关系可以用一个等式表达 或者说变量x可以解释变量y,变量x每变动1个单位,y就有预计会变动a个单位,也可以说就有一个变量y与之对应(其实……
如何将html模板资源转为vuecli项目
1.目标
将找到的html素材模板,转换为vue的文件。 这个网上照了一圈,没找到合适的方案,就自己尝试弄了一下
目标效果 2.具体步骤
1. 通过vueclie 创建项目
vue create 项目名称然后把默认的样式删除了
2. 将静态资源放到vue项目的 publi……
分布式锁及其三种实现
目录为什么要使用分布式锁分布式锁应该具备哪些条件分布式锁的三种实现方式基于数据库的实现方式基于Redis的实现方式选用Redis实现分布式锁原因使用命令介绍实现思想分布式锁的简单实现代码基于ZooKeeper的实现方式为什么要使用分布式锁
在开发应用的时候,如果需要……
QtWebEngine提供了C++和Qml的接口,可以在Widget/Qml中渲染HTML、XHTML、SVG,也支持CSS样式表和JavaScript脚本。
GPT-4能力接近人类
https://www.cnblogs.com/BoiledYakult/p/17255205.html https://www.cnblogs.com/zengzhanping/p/11044715.html
http://www.info-soft.cn/?sdclkidA5fs15ei152_xrD6AL-
https://github.com/944095635/DMSkin http://www.dmskin.com/ https://www.cnblo……
学编程需要哪些基础呢?一起来看看吧
众所周知程序员薪酬高、工作环境好,是很多人向往的职业,那么学编程需要什么基础?0基础能学编程吗?
学编程需要什么基础?
1、数学基础 从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的&……
电商平台API接口,店铺所有商品
item_search_shop-店铺的所有商品
名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥(注册Key和secret接入: https://o0b.cn/anzexi)api_nameString是API接口名称(包括……
[Java Web]JSON | 一种轻量级数据交换格式
⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:Java Web 目录1、简介2、JSON和JS的区别3、基础语法3.1、格式3.2、简单代码3.2.1、获取值3.3、发送异步请求4、应……
ARM—汇编指令集
一、汇编指令与伪指令 1、伪指令:如.test_start等,本质不是指令,用于指导编译过程,最终不产生机器码。 2、指令:ldr,str等,机器码的助记符,最终生成机器码CPU执行。
二、两种不同风……
扫雷最大降雨量
题目 在一个 n 行 m 列的方格图上有一些位置有地雷,另外一些位置为空。 请为每个空位置标一个整数,表示周围八个相邻的方格中有多少个地雷。 输入描述 输入的第一行包含两个整数 n,m。 第 2行到第n1 行每行包含m 个整数,相邻整数之间用一个空……
分享: 解决mysql死锁的思路
分享: 解决mysql死锁的思路问题: 使用springBoot做单元测试时,出现mysql死锁的问题.
### The error occurred while setting parameters
### SQL: INSERT INTO t_escheduler_queue_used_info …….
Caused by: java.sql.SQLException: Lock wait timeout exceeded; try rest……
Spring Boot概述(一)
1. SpringBoot 概述
1.1 SpringBoot 概念
SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的……
计算机笔试/面试常见逻辑题/智力题汇总
说明:按种类汇总,难度不分先后,做了分级罗列,方便后续扩充,大家有比较有意思的题目可以在讨论区讨论。 下面有的题题解相对复杂的直接参考了网上的一些解答,而有的题解我认为并不好的也做了补充,……
OpenAI文档翻译——搭建第一个自己的ChatGPT应用
这篇主要是讲了重头到位创建一个基于OpenAI API的应用程序的过程,同时给出了Node.js、Python版本的实例代码。应用程序的构建总体来说是很简单的就是一个接口调用,前提是我们需要提供密匙。
如果想要获取更好的结果返回一个是可以给模型提供一些列子从而……
python以及PyCharm工具的环境安装与配置
这里以Windows为例
Python的安装
当然是到Python官网下载咯,https://www.python.org/downloads/点我直达,如图: 可以下载最新版本,可以下拉找到之前特定的版本安装,如图: 这里先择的是最新版的进行安装……
JavaScript【六】JavaScript中的字符串(String)
文章目录🌟前言🌟字符串(String)🌟单引号和双引号的区别🌟属性🌟 length :字符串的长度🌟 方法🌟 str.charAt(index);🌟 str.charCodeAt(index);🌟 String.fromCharCode(……
获取文件MD5小案例(未拆分文件)
文章目录前端获取MD5后端获取MD5前端获取MD5
1、引入js
<script src"js/spark-md5.min.js" type"text/javascript"></script>注:spark-md5库GitHub链接 2、这里是一个按钮和被隐藏调的<input/>标签 <body><button……
Java 进阶(15)线程安全集合
CopyOnWriteArrayList
线程安全的ArrayList,加强版读写分离。
写有锁,读⽆锁,读写之间不阻塞,优于读写锁。
写⼊时,先copy⼀个容器副本、再添加新元素,最后替换引⽤。
使⽤⽅式与ArrayList⽆异。
示例……
HR:面试官最爱问的linux问题,看看你能答对多少
文章目录摘要Linux的文件系统是什么样子的?如何访问和管理文件和目录?如何在Linux中查看和管理进程?如何使用Linux命令行工具来查看系统资源使用情况?如何配置Linux系统的网络设置?如何使用Linux的cron任务调度器来执行……
vscode开发常用的工具栏选项,查看源码技巧以及【vscode常用的快捷键】
一、开发常用的工具栏选项
1、当前打开的文件快速在左侧资源树中定位: 其实打开了当前的文件已经有在左侧资源树木定位了,只是颜色比较浅 2、打开太多文件的时候,可以关闭 3、设置查看当前类或文件的结构 OUTLINE
相当于idea 查看当前类或接……
数据要素化条件之一:原始性
随着技术的发展,计算机不仅成为人类处理信息的工具,而且逐渐地具有自主处理数据的能力,出现了替代人工的数据智能技术。数据智能的大规模使用需要关于同一分析对象或同一问题的、来源于不同数据源的海量数据。这种数据必须是针对特定对象的记……
编程日记2023/4/16 14:56:36