R语言实现分位数回归和二次分位数回归

      大家好,我是带我去滑雪!新的一年,新的气象,在接下来的日子里我将继续和各位小伙伴们分享我在科研道路上,学习的一些知识!

     分位数回归和二次分位数回归是统计学中用于分析因变量与自变量之间关系的方法,特别适用于处理非线性和异方差的情况。在以往的学习中,大家最常用的是分位数回归,也比较容易找到分位数回归的相关R代码,但是在后续的学习中,我发现网上关于二次分位数回归的代码与学习内容比较少,代码难以获取,为了解决这个问题,就有了这一篇博客的由来。

目录

一、认识分位数回归和二次分位数回归

(1)什么是分位数回归?

(2)什么是二次分位数回归?

二、代码实现与实战

(1)下载相关包并导入

(2)导入数据

(3)绘制散点图

(4)验证因变量y是否服从正态分布

(5)分位数回归

 (6)二次分位数回归


一、认识分位数回归和二次分位数回归

(1)什么是分位数回归?

  • 分位数回归是一种回归分析方法,它估计的不是依变量的均值,而是给定分位数下的条件分布。通常,我们感兴趣的不仅仅是了解自变量如何影响因变量的期望值,还想了解自变量如何影响因变量在不同分位数下的表现。
  • 分位数回归提供了更全面的关于因变量与自变量之间关系的信息,能够捕捉到数据中存在的各种异质性和非线性关系。

(2)什么是二次分位数回归?

  • 二次分位数回归是分位数回归的一种扩展,它在分位数回归的基础上引入了自变量的平方项或其他高次项。
  • 通过引入二次项,二次分位数回归可以更好地捕捉到因变量和自变量之间的非线性关系。这样的非线性关系可能在特定的分位数下更为显著或重要。
  • 二次分位数回归能够提供更精细的数据拟合,进一步改善了对数据的解释和预测能力。 

二、代码实现与实战

(1)下载相关包并导入

install.packages("hrbrthemes")
install.packages("palmerpenguins")
install.packages("ggplot")
library(tidyverse)       
library(ggsci)           
library(ggExtra)         
library(ggpmisc)        
library(palmerpenguins) 
library(ggplot2)
library(quantreg) 

(2)导入数据

data<-read.csv("E:/工作/硕士/博客/data.csv",header=TRUE,sep=",",fileEncoding = "GBK")
data

部分数据展示:

          x           y         type
1   13.2567 6.3488    5
2   13.2099 6.2226    5
3   12.8984 6.0332    3
4   12.9607 6.0837    4
5   12.8361 5.8060    5
6   12.8049 5.6924    5
7   12.5245 5.6420    4
8   12.5401 5.6672    5
9   12.2285 5.5031    5
10  11.3718 5.1876    3

(3)绘制散点图

plot(data$x, data$y, xlab='x', ylab='y')
plot(data$x, data$type, xlab='x', ylab='type')

输出结果:

(4)验证因变量y是否服从正态分布

boxplot(data$y, xlab='y')
#简单验证一下因变量y是否服从正态分布
qqnorm(data$y, main='QQ plot')
qqline(data$y, col='red', lwd=2)
attach(data)

输出结果:

(5)分位数回归

rq_result <- rq(x ~ y, tau=c(0.05, 0.25, 0.55, 0.80, 0.99))
summary(rq_result)

输出结果:

 

Call: rq(formula = x ~ y, tau = c(0.05, 0.25, 0.55, 0.8, 0.99))

tau: [1] 0.05

Coefficients:
            coefficients lower bd upper bd
(Intercept)  5.90509     -0.04805  6.97585
y            0.92993      0.69762  1.96490

Call: rq(formula = x ~ y, tau = c(0.05, 0.25, 0.55, 0.8, 0.99))

tau: [1] 0.25

Coefficients:
            coefficients lower bd upper bd
(Intercept) 1.95680      0.86718  3.95382 
y           1.77132      1.37449  1.98130 

Call: rq(formula = x ~ y, tau = c(0.05, 0.25, 0.55, 0.8, 0.99))

tau: [1] 0.55

Coefficients:
            coefficients lower bd upper bd
(Intercept) 2.16670      0.54266  2.77642 
y           1.77877      1.65164  2.09980 

Call: rq(formula = x ~ y, tau = c(0.05, 0.25, 0.55, 0.8, 0.99))

tau: [1] 0.8

Coefficients:
            coefficients lower bd upper bd
(Intercept) 2.36689      1.27416  3.19410 
y           1.79510      1.63677  1.98807 

Call: rq(formula = x ~ y, tau = c(0.05, 0.25, 0.55, 0.8, 0.99))

tau: [1] 0.99

Coefficients:
            coefficients lower bd upper bd
(Intercept)  1.78244     -1.46488  6.81231
y            1.97464      1.25385  2.64396

plot(x, y, cex=2, type='n', xlab='x', ylab='y',lty=2,pch=16)
points(x, y, cex=2, col='blACK',pch=16)
abline(rq(y~x, tau=0.99), col='red',lty=1,lwd=2)plot(type, y, cex=2, type='n', xlab='type', ylab='y',lty=2,pch=16)
points(type, y, cex=2, col='blue',pch=16)
abline(rq(y~type, tau=0.99), col='red',lty=1,lwd=2)plot(type, y, cex=2, type='n', xlab='type', ylab='y',lty=2,pch=16)
points(type, y, cex=2, col='blue',pch=16)
abline(rq(y~type, tau=0.99), col='red',lty=1,lwd=2)

 输出结果:

 (6)二次分位数回归


rq_result1 <- lrq(y~A*x+B*x^2+C,start = list(A=0,B=0,C=0),tau=0.99,data=data)
summary(rq_result1 )
summary.nlrq(rq_result1 )
plot(x, y, cex=2, type='n', xlab='x', ylab='y',lty=2,pch=16)
points(x, y, cex=2, col='black',pch=16)curve(-5.96362*x+0.26132*x^2+39.48284, col='red',lty=1,lwd=2, add = TRUE)
text(12.5,6.3,"n=169,tau=0.99",cex=1.5,font=1)

 输出结果:

需要数据集的家人们可以去百度网盘(永久有效)获取:

链接:https://pan.baidu.com/s/173deLlgLYUz789M3KHYw-Q?pwd=0ly6
提取码:2138 


更多优质内容持续发布中,请移步主页查看。

若有问题可邮箱联系:1736732074@qq.com 

博主的WeChat:TCB1736732074

   点赞+关注,下次不迷路!

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

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

相关文章

数据结构:链表的冒泡排序

法一&#xff1a;修改指针指向 //法二 void maopao_link(link_p H){if(HNULL){printf("头节点为空\n");return;}if(link_empty(H)){printf("链表为空\n");return;}link_p tailNULL;while(H->next->next!tail){link_p pH;link_p qH->next;while(q…

2022《OpenScene: 3D Scene Understanding with Open Vocabularies》阅读笔记2

A. Implementation Details 3D Distillation. 我们基于PyTorch实现。为了提取,我们使用Adam[26]作为优化器,初始学习率为1e−4,并训练100个epochs。对于MinkowskiNet,我们对ScanNet和Matterport3D实验使用2cm的体素大小,对nuScenes使用5cm的体素尺寸。对于室内数据集,我…

12年高级工程师的“飞升之路”,redis和rabbitmq面试题

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

【管理咨询宝藏资料25】某能源集团五年发展战略报告

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏资料25】某能源集团五年发展战略报告 【关键词】战略规划、五年战略、管理咨询 【文件核心观点】 - LL应以快速做大做强为目标&#xff0c;专注…

laravel8配合jwt

composer 安装包 composer require tymon/jwt-authconfig/app.php 注册服务提供者 providers > [Tymon\JWTAuth\Providers\LaravelServiceProvider::class, ]aliases > [JWTAuth > Tymon\JWTAuth\Facades\JWTAuth::class,JWTFactory > Tymon\JWTAuth\Facades\JWT…

HTTP 的 multipart 类型

上一篇文章讲到 http 的 MIME 类型 http MIME 类型 里有一个 multipart 多部分对象集合类型&#xff0c;这个类型 http 指南里有讲到&#xff1a;MIME 中的 multipart&#xff08;多部分&#xff09;电子邮件报文中包含多个报文&#xff0c;它们合在一起作为单一的复杂报文发送…

Rocky Linux 运维工具 systemctl

一、​​systemctl​的简介 ​​systemctl​是用于管理系统服务的命令行工具。​systemctl​命令可以启动、停止、重启或重新加载服务&#xff0c;并管理它们。 二、systemctl​的参数说明 序号参数描述1start启动指定系统服务2stop停止指定系统服务3status显示指定系统服务的…

STM32 +合宙1.54“ 电子墨水屏(e-paper)驱动显示示例

STM32 合宙1.54“ 电子墨水屏&#xff08;e-paper&#xff09;驱动显示示例 &#x1f4cd;相关篇《Arduino框架下ESP32/ESP8266合宙1.54“ 电子墨水屏&#xff08;e-paper&#xff09;驱动显示示例》&#x1f516;程序是从GooDisplay品牌和微雪电子下同型号规格墨水屏的示例程序…

Ubuntu Mysql Innodb cluster集群搭建+MaxScale负载均衡(读写分离)

Ubuntu系统版本 20.04.3 LTS (Focal Fossa) 、64位系统。 cat /etc/os-release查看Ubuntu系统是32位还是64位 uname -m如果显示“i686”,则表示安装了32位操作系统。如果显示“x86_64”,则表示安装了64位操作系统。 一、安装MySql 参考: https://blog.csdn.net/qq_3712…

高频面试题整理(一)

文章目录 平台无关性如何实现&#xff1f;JVM如何加载 .class文件&#xff1f;什么是反射?谈谈ClassLoader谈谈类的双亲委派机制类的加载方式Java的内存模型?JVM内存模型-jdk8程序计数器&#xff1a;Java虚拟机栈局部变量表和操作数栈&#xff1a; Java内存模型中堆和栈的区别…

Linux之前后端项目部署与发布

目录 前言 一. Nginx配置安装&#xff08;自启动&#xff09; 1.1 一键安装4个依赖 1.2 上传并解压安装包 1.3 安装nginx 1.4 启动Nginx服务 1.5 防火墙规则 1.6 配置开机自启动 1.7 修改/etc/rc.d/rc/local的权限 二. Nginx负载多个tomcat 2.1 准备2个tomcat 2.2 修改第二个…

【Java设计模式】四、适配器模式

文章目录 1、适配器模式2、举例 1、适配器模式 适配器模式Adapter Pattern&#xff0c;是做为两个不兼容的接口之间的桥梁目的是将一个类的接口转换成客户希望的另外一个接口适配器模式可以使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 最后&#xff0c;适配器…

阿里云中小企业扶持权益,助力企业开启智能时代创业新范式

在数字化浪潮的推动下&#xff0c;中小企业正面临着转型升级的重要关口。阿里云深知中小企业的挑战与机遇&#xff0c;特别推出了一系列中小企业扶持权益&#xff0c;旨在帮助企业以更低的成本、更高的效率拥抱云计算&#xff0c;开启智能时代创业的新范式。 一、企业上云权益…

自动驾驶消息传输机制-LCM

需要用到LCM消息通讯&#xff0c;遂研究下。 这里写目录标题 1 LCM简介2. LCM源码分析3 LCM C教程与实例3.1 安装配置及介绍3.2 创建类型定义3.3 初始化LCM3.4 发布publish一个消息3.5 订阅和接收一个消息3.6 LCM进程间通讯3.7 注意事项&#xff1f;3.7.1 当数据结构定义的是数…

SpringMVC 学习(十)之异常处理

目录 1 异常处理介绍 2 通过 SimpleMappingExceptionResolver 实现 3 通过接口 HandlerExceptionResolver 实现 4 通过 ExceptionHandler 注解实现&#xff08;推荐&#xff09; 1 异常处理介绍 在 SpringMVC中&#xff0c;异常处理器&#xff08;Exceptio…

go test用法(获取单元测试覆盖率)

go test用法&#xff08;获取ut覆盖率&#xff09; 为了提升系统的稳定性&#xff0c;一般公司都会对代码的单元测试覆盖率有一定要求。下面针对golang自带的测试命令go test做讲解。 1 命令 1.1 go test ./… &#xff08;运行当前目录及所有子目录下的测试用例&#xff09; …

13.云原生之常用研发中间件部署

云原生专栏大纲 文章目录 mysql主从集群部署mysql高可用集群高可用互为主从架构互为主从架构如何实现主主复制中若是两台master上同时出现写操作可能会出现的问题该架构是否存在问题&#xff1f; heml部署mysql高可用集群 nacos集群部署官网文档部署nacoshelm部署nacos redis集…

yolov9 瑞芯微芯片rknn部署、地平线芯片Horizon部署、TensorRT部署

特别说明&#xff1a;参考官方开源的yolov9代码、瑞芯微官方文档、地平线的官方文档&#xff0c;如有侵权告知删&#xff0c;谢谢。 模型和完整仿真测试代码&#xff0c;放在github上参考链接 模型和代码。 之前写过yolov8检测、分割、关键点模型的部署的多篇博文&#xff0c;y…

Mysql 高可用解决方案

1.环境说明 操作系统&#xff1a;centos7.7 主服务器&#xff1a;node2(192.168.1.102) 从服务器&#xff1a;node3(192.168.1.103) keepalived中虚拟ip(VIP):192.168.1.100 2.准备事项 主库和从库数据库的版本一致把主库的数据同步给从库一份 3.主库配置 3.1 编辑MySQL配…

读《Shape-Guided: Shape-Guided Dual-Memory Learning for 3D Anomaly Detection》

Chu Y M, Chieh L, Hsieh T I, et al. Shape-Guided Dual-Memory Learning for 3D Anomaly Detection[J]. 2023.&#xff08;为毛paperwithcode上面曾经的榜一引用却只有1&#xff09; 摘要 专家学习 无监督 第一个专家&#xff1a;局部几何&#xff0c;距离建模 第二个专家&…