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

从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个小时。

相关文章:

  • Centos 7离线部署Nginx 高效省时
  • uniapp安卓GPIO电平控制
  • Milvus【部署 03】Linux OpenEuler 环境在线+离线安装及卸载
  • 【软考高级系统架构论文】论企业集成架构设计及应用
  • Milvus【工具 01】milvus_cli和可视化工具attu安装使用
  • uniapp vue2多选模糊下拉组件
  • 住宅老年护理软件:市场洞察与发展前景
  • 顶级思维方式——认知篇十一《传习录》笔记
  • leetcode:78. 子集
  • 手机摄影后期进阶:LR调色参数黄金比例表
  • LeetCode中K个链表的链接的解法
  • 从本地到云端:通过ToolJet和cpolar构建远程开发环境实践过程
  • 操作系统 第九章 部分
  • 详解HarmonyOS NEXT仓颉开发语言中的全局弹窗
  • 2024计算机保研--哈工大、中山、国防科大(二)
  • 前端高频面试题汇总
  • 【入门级-基础知识与编程环境:3、计算机网络与Internet的基本概念】
  • Flask框架index.html里引用的本地的js和css或者图片
  • RK3576 Yolo 部署
  • PyTorch实战(12)——StyleGAN详解与实现
  • 自己做网站能宣传自己的产品吗/会计培训班要多少钱
  • dw内部网站链接怎么做/百度一下首页版
  • 类似于美团的网站开发/国家域名注册服务网
  • 网站开发培训排名/广告投放网站
  • 怎么在云服务器上搭建网站/产品营销策划
  • 医疗器械网站前置审批/seo技术