r - 减少 R 中功能性 PCA 的功能范围 - 功能性数据分析
问题描述
我对跨越 22 年的河流流量进行了离散测量。由于河流流量自然是连续的,我试图将函数拟合到数据中。
library(FDA)
set.seed(1)
### 3 years of flow data
base = c(1,1,1,1,1,2,2,1,2,2,3,3,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,6,5,5,4,4,4,3,4,3,3,3,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1)
year1 = sapply(base, function(x){x + runif(1)})
year2 = sapply(base, function(x){x + runif(1)})
year3 = sapply(base, function(x){x + runif(1)})
flow.mat = matrix(c(year1, year2, year3), ncol = 3)
虽然建议对周期性数据使用傅立叶基系统,但真实数据不会表现出强烈的重复模式(忽略此假设的数据模拟)。它还包含重要的极值。因此,我尝试将 bSpline 基系统拟合到数据中。
sp.basis=create.bspline.basis(c(1,length(base)), norder=6, nbasis=15)
sb.fd=smooth.basis(1:length(base), flow.mat, sp.basis)$fd
最终,我打算将流量数据用作每月间隔的回归模型中的协变量。这带来了一个问题,因为我将年度函数拟合到数据中,因为这为月度数据提供了更好的拟合,因为数据缺乏时间独立性。
因此,我想知道是否可以对生成的函数进行子集化,一次选择一个月。
我怀疑这是不可能的,因此,是否可以对子集数据运行 fPCA,因为我打算使用 fPCA 分数作为模型中的协变量?
到目前为止,我在运行子集 fPCA 方面完全不成功。相反,我一直通过以下方式获得年度分数:
pca.flow=pca.fd(sb.fd, 2)
解决方案
推荐阅读
- android - Nativescript Gestures 不适用于带有 ScrollViews 的 android 视图
- r - 使用 %j strptime 将十进制日期转换为儒略时,如何指定年份?
- django - 如何使用循环依赖保存 Django 模型实例?
- entity-framework - 具有多个表连接的实体框架中的长时间运行查询
- javascript - Angular - 如何将多个 FormGroups 插入 FormArray?
- python-3.x - 在 Python 3 中记录异常
- r - 条形相互超越的动画排序条形图
- elixir - Elixir,Ecto 仅回滚时间戳
- c# - C# 类的 XML 属性 - 属性和值
- scala - 适用于 RDD 和 Seq 的通用方法