当前位置: 首页 > news >正文

横截面数据回归

横截面数据回归

一些笔记

观测值一定要比参数值多
p值<0.05,拒绝H0.
参数显著,不能说明模型对
AIC与BIC准则,越小越好的指标值AIC
回归分析一定要进行残差的正态性检验。所有的残差都大于0,小于0,都不正常。残差正常应该是分布在0的附近,有正有负,它应该是随机的
残差的正态性检验:检验统计量,是否复合正态分布,QQ图检验正态性
经验分布函数与生存分析函数是相反的
多重共线性:
1.判断是否存在多重共线性VIF>10即存在多重共线性

实验

公路一氧化碳数据

数据:
image

先进行一般的回归,假定残差服从正态分布,也是最简单的线性回归,我们先拟合看一看效果怎么样。
C O = β 0 + β 1 H o u r + β 2 T r a f f i c + β 3 W i n d + ε CO = \beta_0+\beta_1Hour+\beta_2Traffic+\beta_3Wind+\varepsilon CO=β0+β1Hour+β2Traffic+β3Wind+ε
以最小二乘法拟合,得到参数估计值
代码:

w <- read.table("D:/cofreewy.txt",header = TRUE)
head(w)
a=lm(CO~.,w)#利用3个自变量做线性回归
summary(a)#展示结果
b=step(a,direction="backward")#逐步回归
summary(b)#展示逐步回归结果

image

由此可以看出,我们拟合的模型是:
C O = 1.274 + 0.018 ∗ T r a f f i c + 0.175 ∗ W i n d CO = 1.274+0.018*Traffic+0.175*Wind CO=1.274+0.018Traffic+0.175Wind
由此可以看出,我们拟合的模型是:
C O = 1.274 + 0.018 ∗ T r a f f i c + 0.175 ∗ W i n d CO = 1.274+0.018*Traffic+0.175*Wind CO=1.274+0.018Traffic+0.175Wind

  • R 2 R^2 R2表示线性回归模型中自变量X解释的响应变量y的变化比例.
  • R 2 R^2 R2越大,说明自变量X对响应变量y的解释越强.

这个模型在统计意义上已经不能说明模型对,因为残差是否满足正态分布,我们还不知道,毕竟回归的前提是假设残差满足正态分布。
我们再来看一下残差的分布情况,看看它是否服从正态分布。

shapiro.test(b$res)#做残差的正态性检验

image

我们可以看出p值>0.05,不拒绝原假设(注意:不是接受原假设,是不拒绝原假设),我们可以假设残差服从正态分布。
但这样是不是就好了,这就是最好的模型呢?

qqnorm(b$res);qqline(b$res)#做残差的QQ图.

image
这种线性回归,首先是假定了它的残差是服从正态分布,模型建出来之后,通过QQ图检验它的残差是否真的服从正态分布,那如图所示,如果没有很好的服从或者渐进服从正态呢?怎么办?

注意:在小样本情况下p值0.05的界限不能完全诠释模型优劣
重新拟合,不用线性,用非线性

在此之前让我们先看一看各个属性之间的关系是什么,绘制散点图看一看。

attach(w) #把变量名字放入内存
par(mfrow=c(2,3)) #建立6个图的摆放模式
plot(CO~Traffic);plot(CO~Hour);plot(CO~Wind)
plot(Traffic~Hour);plot(Wind~Hour);plot(Traffic~Wind)
# 也可以直接plot(w),用一行代码直接绘制所有属性的关系。

image
这样就很清楚了,那两个变量之间需要线性关系,那两个之间需要非线性关系,一目了然。
我们可以清晰的看到线性、三角函数,那那个既非线性又非三角函数的周期函数呢?用傅里叶级数。

法国数学家傅里叶认为,任何周期函数都可以用正弦函数和余弦函数构成的无穷级数来表示(选择正弦函数与余弦函数作为基函数是因为它们是正交的),后世称傅里叶级数为一种特殊的三角级数,根据欧拉公式,三角函数又能化成指数形式,也称傅立叶级数为一种指数级数。

# 计算相关系数
cor(cbind(CO,Traffic,Tsq=Traffic^2,Tcub=Traffic^3,Hour,Hsq=Hour^2,Hcub=Hour^3,Wind,Wsq=Wind^2,Wub=Wind^3))

注:cbind()函数是R语言中用于合并数据框的函数,它可以将多个数据框按照列合并。
image

# 回归
lm2 <- lm(CO~Traffic+Wind+I(Wind^2)+I(Wind^3)+sin((2*pi/24)*Hour)+cos((2*pi/24)*Hour)+sin((4*pi/24)*Hour)+cos((4*pi/24)*Hour))
summary(lm2)
lm3<- step(lm2)
summary(lm3)
anova(lm3)
shapiro.test(lm3$res)
# 去掉不显著的重新拟合
lm4 <- lm(CO~Traffic+Wind+I(Wind^2)+cos((2*pi/24)*Hour)+cos((4*pi/24)*Hour))
summary(lm4)
anova(lm4)
shapiro.test(lm4$res)
qqnorm(lm4$res)
qqline(lm4$res)

image

最后的拟合模型为:
C O = 1.38 + 0.017 ∗ T r a f f i c + 0.459 ∗ W i n d − 0.057 W i n d 2 − 0.366 c o s ( ( 2 ∗ p i 24 ) ∗ H o u r ) + 0.38 c o s ( ( 4 ∗ p i 24 ) ∗ H o u r ) + ε CO = 1.38+0.017*Traffic+0.459*Wind-0.057Wind^2-0.366cos((\frac{2*pi}{24})*Hour)+0.38cos((\frac{4*pi}{24})*Hour)+\varepsilon CO=1.38+0.017Traffic+0.459Wind0.057Wind20.366cos((242pi)Hour)+0.38cos((244pi)Hour)+ε

注:其中 ε \varepsilon ε表示残差,即 C O i − C O ^ i CO_i-\hat{CO}_i COiCO^i
注意 R 2 R^2 R2,此模型要更好


总结:

  1. 线性回归模型中,如果残差服从正态分布,则可以认为模型是合理的。
  2. P值不是万能的,好的模型还是要不断试一试才能出来。
  3. 回归是否有意义,还是要放在实际背景中去看

相关文章:

  • 2023-2024华为ICT大赛中国区 实践赛昇腾AI赛道 全国总决赛 理论部分真题
  • math.round和math.floor相互转化
  • CentOS 7配置阿里云镜像源及其加速
  • WRF学习——使用CMIP6数据驱动WRF/基于ncl与vdo的CMIP6数据处理
  • Qt 实战(7)元对象系统 | 7.1、简介
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • 信息时代,呼唤新的哲学
  • 【D3.js in Action 3 精译】1.2.3 Canvas 与 WebGL + 1.2.4 CSS
  • 普通集群与镜像集群配置
  • 记一次 .NET某网络边缘计算系统 卡死分析
  • GPT提示词模板
  • 出现 ValueError: attempted relative import beyond top-level package 解决方法
  • 【DevOps】Java内存分配与JVM参数详解
  • Selenium 扩展工具中哪些可以查看返回的各种格式的文件
  • 3D slicer
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【Amaple教程】5. 插件
  • 【EOS】Cleos基础
  • 78. Subsets
  • CAP理论的例子讲解
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • mongo索引构建
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • uva 10370 Above Average
  • vuex 笔记整理
  • Vue--数据传输
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 高程读书笔记 第六章 面向对象程序设计
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 如何学习JavaEE,项目又该如何做?
  • 数据结构java版之冒泡排序及优化
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 用Canvas画一棵二叉树
  • 带你开发类似Pokemon Go的AR游戏
  • ​虚拟化系列介绍(十)
  • #git 撤消对文件的更改
  • #图像处理
  • (1)(1.11) SiK Radio v2(一)
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (arch)linux 转换文件编码格式
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (新)网络工程师考点串讲与真题详解
  • (已解决)什么是vue导航守卫
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .Family_物联网
  • .htaccess 强制https 单独排除某个目录
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET Core 成都线下面基会拉开序幕
  • .NET gRPC 和RESTful简单对比
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET中两种OCR方式对比
  • @property python知乎_Python3基础之:property