从0开始学习R语言--Day30--函数型分析

        在研究离散变量之间的影响时,我们往往只能获取类似中位数,平均数点来额外数据特点;但如果数据本身具有时间特性的话,我们可以尝试运用函数型分析,将静态的离散点转为动态过程来分析,即若本来是分析离散点对另一个变量的影响,那么转换后就变为研究一条曲线的变化趋势是否对应了另一个变量的变化特点。

        比如气温数据分析冰淇淋销量时,只看离散点只能知道气温越高,销量越好,但若看趋势,很可能捕捉到在下午气温会比其他时候更高,卖出更多冰淇淋的特点。以下是一个例子:

library(fda)# 生成模拟数据 -------------------------------------------------
set.seed(123)
n <- 100  # 样本量
time_points <- seq(0, 1, length.out=50)  # 观测时间点# 生成随机温度曲线(函数型X)
true_curve <- sin(2 * pi * time_points) * exp(-time_points)
X_curves <- t(replicate(n, true_curve + rnorm(length(time_points), sd=0.5)))# 生成产量Y(与曲线变化率相关)
# Y <- 5 * apply(X_curves, 1, function(x) sum(diff(x))) + rnorm(n, sd=2)
Y <- 5 * apply(X_curves, 1, function(x) sum(abs(diff(x)))) + rnorm(n, sd=2)
# 创建函数型数据对象
basis <- create.bspline.basis(c(0,1), nbasis=15)
X_fd <- smooth.basis(time_points, t(X_curves), basis)$fd# 函数型线性回归
fit <- fRegress(Y ~ X_fd)  # 注意这里变量名是X_fd# 预测新数据
new_curve <- true_curve + 0.3 * sin(4 * pi * time_points)
new_fd <- smooth.basis(time_points, new_curve, basis)$fdbeta_fd <- fit$betaestlist[[2]]$fd  # 第1个是截距,第2个是X_fd的系数# 计算预测值:Y = 截距 + 积分(X(t) * beta(t) dt)
intercept <- fit$betaestlist[[1]]$fd$coefs  # 截距项
pred_integral <- inprod(new_fd, beta_fd)    # 函数内积
prediction <- intercept + pred_integralprint(paste("预测产量:", prediction))# 输出结果
plot(new_fd, main="新温度曲线")
print(paste("预测产量:", round(prediction, 2)))

输出:

[1] "预测产量: 153.38"

图像显示温度按照正弦曲线的趋势波动,但在实际应用中,在画图时一般不推荐用标准化的时间轴,会忽略真实的现实信息,像这里便无法判断时间段指的是一个小时还是12个小时。

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

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

相关文章

Agent轻松通-P3:分析我们的Agent

欢迎来到啾啾的博客&#x1f431;。 记录学习点滴。分享工作思考和实用技巧&#xff0c;偶尔也分享一些杂谈&#x1f4ac;。 有很多很多不足的地方&#xff0c;欢迎评论交流&#xff0c;感谢您的阅读和评论&#x1f604;。 目录 1 引言2 使用工具分析Agent&#xff1a;”日志“…

如何将FPGA设计验证效率提升1000倍以上(1)

我们将以三个设计样例&#xff0c;助力您提升设计开发效率。 对于FPGA应用开发来说&#xff0c;代码是写出来的&#xff0c;更是调试出来的。软件仿真拥有最佳的信号可见性和调试灵活性&#xff0c;被大多数工程师熟练使用&#xff0c;能够高效捕获很多显而易见的常见错误。 …

RabbitMQ 利用死信队列来实现延迟消息

RabbitMQ 利用死信队列来实现延迟消息 基于 TTL&#xff08;Time-To-Live&#xff09; 死信队列&#xff08;DLX&#xff09;的方式来实现延迟消息 首先消息会被推送到普通队列中&#xff0c;该消息设置了TTL&#xff0c;当TTL到期未被消费掉&#xff0c;则会自动进入死信队列…

Keepalived+Haproxy+Redis三主三从

一、集群部署 1、案例拓扑 2、资源列表 主从节点是随机分配的&#xff0c;下属列表只是框架&#xff1a; 操作系统主机名配置IP应用OpenEuler24master12C4G192.168.10.101RedisOpenEuler24master22C4G192.168.10.102RedisOpenEuler24master32C4G192.168.10.103RedisOpenEule…

Modbus转IEC104网关:电力自动化系统的桥梁

现代电力系统中&#xff0c;变电站、发电厂以及配电网络中存在大量采用不同通信协议的设备。Modbus协议因其简单易用在现场设备中广泛部署&#xff0c;而电力行业主流监控系统则普遍采用IEC 60870-5-104&#xff08;简称IEC104&#xff09;协议。协议差异导致的数据孤岛现象&am…

@annotation:Spring AOP 的“精准定位器“

想象你是一位快递员&#xff0c;负责给一个大型社区送快递。社区里有几百户人家&#xff0c;但只有特定家庭需要特殊服务&#xff1a; 普通快递&#xff1a;直接放快递柜生鲜快递&#xff1a;需要冷藏处理贵重物品&#xff1a;需要本人签收药品快递&#xff1a;需要优先配送 …

Web Worker使用指南 解锁浏览器多线程 ,提升前端性能的利器

文章目录 前言一、什么是 Web Worker二、适用场景1、CPU 密集型计算2、图像/视频处理3、实时数据流处理&#xff08;高频场景&#xff09;4、后台文件操作5、复杂状态机/AI逻辑&#xff08;游戏开发&#xff09;6、长轮询与心跳检测7、WebAssembly 加速8、WebGL 与 Canvas 渲染…

React 18.2.0 源码打包

一、React源码地址 GitHub&#xff1a;React 二、参考文章 sourcemap实战-生成react源码sourcemap Rollup中文文档 JavaScript Source Map 详解 全网最优雅的 React 源码调试方式 三、打包操作 安装依赖 // 全局安装yarn npm i -g yarn // 源码项目目录下执行yarn安装依赖…

UniApp 开发第一个项目

UniApp 开发第一个项目全流程指南,涵盖环境搭建、项目创建、核心开发到调试发布,结合最新实践整理而成,适合零基础快速上手: 🧰 一、环境准备(5分钟) 安装开发工具 HBuilderX(官方推荐IDE):下载 App 开发版,安装路径避免中文或空格 微信开发者工具(调试小程序必备…

Web项目开发中Tomcat10+所需的jar包

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 项目背景 Web项目中使用低版本Tomcat时常用的jar包如下&#xff1a; javax.servlet-apijavax.ejb-apijavax.jms-apijavax.json-api 当Web项目使用Tomcat10的版本时&#…

网络安全就业方向与现实发展分析:机遇、挑战与未来趋势

网络安全行业的战略地位与就业背景 在数字经济蓬勃发展的今天&#xff0c;网络安全已从技术分支演变为关乎国家安全、企业存亡和个人隐私的核心领域。根据国家网信办数据显示&#xff0c;2025年我国网络安全人才缺口达200万人&#xff0c;较2023年增长33%。这一现象源于三重驱…

iOS runtime随笔-消息转发机制

运行时的消息转发分三步, 当你调用了没有实现的方法时, 有机会通过runtime的消息转发机制补救一下 resolveInstanceMethod/resolveClassMethod 这里可以动态去创建方法来解决CrashforwardingTargetForSelector ​​​​​第一步未解决, 就会走到这里, 可以给出一个Target去转发…

vue3用js+css实现轮播图(可调整堆叠程度)

先看效果 html <divclass"outer"style"width: 650px;background: #fff;box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.1);border-radius: 15px;margin: 0 10px 15px 5px;">//这里用的是svg-icon,需要的可自行替换为其他图片<svg-iconid"btn_l&q…

Three.js项目实战:从零搭建小米SU7三维汽车

大家如果有过购车的经验&#xff0c;肯定会先从网站上收集车辆的信息&#xff0c;比如懂车帝&#xff0c;汽车之家&#xff0c;这些网站上逼真的看车效果是如何实现的呢&#xff0c;这节课带你从0-1快速的手搓一个看车小项目。 懂车帝官网 效果 视频教程和笔记 大家可以下方小…

Android13 永久关闭SELinux 权限

永久关闭 SeLinux 在cmdline中增加参数androidboot.selinuxpermissive&#xff1b; 芯片: QCM6115 版本: Android 13 kernel: msm-4.19 ~/temp_code/SLM927D_LA.UM.9.15$ git diff device/qcom/bengal/BoardConfig.mk diff --git a/device/qcom/bengal/BoardConfig.mk b…

Linux创建DHCP服务

Linux可作为DHCP服务端使用&#xff0c;为同一个网络下的其它机器动态分配ip。在一些情况下&#xff0c;可以起到很大的作用。 二级标题 安装dnsmasq # ubuntu sudo apt update -y sudo apt install -y dnsmasq# centos sudo yum install -y dnsmasq修改配置文件 sudo vim …

汽车4G-TBOX智能终端 汽车国标GB/T 32960协议

汽车国标GB/T 32960协议4G TBOX是一种广泛应用于车联网的设备&#xff0c;下面将从不同方面为你详细介绍。 移动管家汽车4G-TBOX智能终端定义与用途 4G TBOX是基于车联网技术智能服务系统中的采集终端。以车云网的4G TBOX_CC750为例&#xff0c;它为整个智能服务系统提供GPS/…

JavaEE-Mybatis初阶

什么是MyBatis MyBatis是⼀款优秀的 持久层 框架&#xff0c;⽤于简化JDBC的开发。 MyBatis本是 Apache的⼀个开源项⽬iBatis&#xff0c;2010年这个项⽬由apache迁移到了google code&#xff0c;并 且改名为MyBatis 。2013年11⽉迁移到Github 创建项目时添加依赖 上面有…

记一次jvm机器问题定位经历

背景 开发过程中发现机器指标异常&#xff0c;端口也hang住无响应&#xff0c;端口返回为timeout&#xff0c;对应探活检测也失败了。 现象 在st测试环节&#xff0c;突然每隔一段时间新接口就hang住无响应&#xff0c;观察机器监控也发现端口探活失败&#xff0c;看机器指标…

【机器学习深度学习】张量基本操作

目录 一、张量基本操作 1.1 执行代码 1.2 运行结果 1.3 代码解析 ✅ 1. 创建张量&#xff08;tensor、randn、zeros&#xff09; ✅ 2. 索引与切片&#xff08;类似 NumPy&#xff09; ✅ 3. 形状变换&#xff08;reshape、转置、压缩&#xff09; ✅ 4. 数学运算&#x…