web-dev-qa-db-ja.com

時系列の1次導関数を計算する方法

2つの変数timepHを使用して、時系列の1次導関数(dpH/dtime)を計算します。

Rでこれを行う関数の種類はありますか、またはこれを行うには追加の関数を計算する必要がありますか?

15
alexmulo

pHtimeが単純なベクトルであると想定すると、次のようになります。

library(pspline)
predict(sm.spline(time, pH), time, 1)
17
G. Grothendieck

Matt Lが提案したように、stats::derivまたはdiff.tsから始めることをお勧めします。ちょうど私の教授が彼のすべての学生に言っていたものを覚えておいてください:数値微分は「誤差乗数」として知られています。

編集:明確にするために-彼が警告していたことは、データ内のノイズが微分推定値を大幅に低下させる可能性があることでした。積分はローパスフィルターであり、微分はハイパスフィルターであると言われています。したがって、重要なことは、導関数を計算する前に、データの平滑化を行うことです。したがって、ガボールはpredict.splineを使用することをお勧めします。ただし、スプラインパラメータを変更すると、データがさまざまなレベルに平滑化されるので、結果を常に確認して、明らかなノイズが除去されているが、必要な機能が除去されていないことを確認してください。

10
Carl Witthoft

ここに「数値微分」へのリンクがあります。

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

以下は、テイラー級数展開に基づく方法を説明するリンクです。

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

1
bill_080