17

我将使用两个变量计算时间序列的一阶导数(dpH/dtime),time并且pH.

在 R 中是否有任何类型的函数可以做到这一点,或者我应该计算一个额外的函数来做到这一点?

4

3 回答 3

19

假设pHtime是普通向量试试这个:

library(pspline)
predict(sm.spline(time, pH), time, 1)
于 2012-12-29T15:01:51.247 回答
12

您可能想从stats::derivdiff.ts按照 Matt L 的建议开始。请记住我的一位教授曾经对所有学生说的话:数值微分被称为“误差乘数”。

编辑:澄清一下——他警告的是,数据中的任何噪音都会使导数估计偏离。有人说积分是低通滤波器,微分是高通滤波器。因此,重要的是在计算导数之前对数据进行一些平滑处理。因此,Gabor 建议使用predict.spline. 但请记住,修改样条参数会使您的数据平滑到不同的水平,因此请始终查看结果以确保您删除了明显的噪声但不是所需的特征。

于 2012-12-29T14:37:19.283 回答
0

这是“数值微分”的链接。

http://en.wikipedia.org/wiki/Numerical_differentiation

这是描述基于泰勒级数展开的方法的链接:

http://ocw.usu.edu/civil_and_environmental_engineering/numerical_methods_in_civil_engineering/ODEsMatlab.pdf

于 2012-12-29T16:49:57.047 回答