2011-10-23 21 views
5

青い線と灰色の対角線の間の面積を計算したいと思います。2つの曲線の間の面積を計算する

library(zoo)  
id <- order(x) 
AUC <- sum(diff(x[id])*rollmean(y[id],2)) 

Calculate the Area under a Curve in Rのおかげで)

任意のアイデアをどのように青とグレーのラインの間の領域を見つけるために:

enter image description here

私は青い線下の面積を計算することができますか?予め で

おかげEC

+1

私は何かが欠けていますここで:あなたはあなたのリンクで説明を欠場しましたか?あなたの青[j]と灰色[j]がデータの場合、値の間の距離で調整された 'sum(blue [j] -gray [j])'(実際のRコードではない) ]))。青色の[j]がデータでグレーが関数ならば、青色のx値で灰色を計算するだけです。 –

+0

灰色の線は対角線です。だから、それは何かのようになるでしょう z <-abs(y-x); id < - order(x); AUC < - sum(diff(x [id])* rollmean(z [id]、2)); – ECII

+0

青い線が灰色の線の上と下の両方にある場合に、領域を積極的にカウントするかどうかを指定する必要があります(1秒間考えてから)。 –

答えて

1

だけ許容できる答えがあることを確認することではなく、主に他の人の提案:

『要約数学』を、あなたが欲しいのは、曲線下の面積であるabs(blue - grey)

これらの値(つまり絶対差)は簡単に取得できます。シンプソンのルールやリンク先の記事などのような統合的な方法を使用すると、サーフェスを取得できます。

@Saurabhが示唆しているように、青い線はステップ関数(またはそうではありません)であり、もう1つは直線です。このために、青と灰色の線が交差するx値をすべて合計するか、青色の線に新しい値が表示されます(「ステップ」がとられます)。このようにエリアを分割すると、三角形や台形にしかなりません。すべてを合計する前に絶対値を取ることができます。青い線は、単純なステップ関数ではありませんが、それでも直線で構成された場合でも、これは動作するはず

、あなたは今、いくつかの追加の例を説明するために持っているが...

+0

シンプソンのルールライブラリ(Bolstad2)を使って得たと思う。 z <-abs(y-x); AUC <-sintegral(x、z)$ int; – ECII

4

曲線間の面積率(面積(青線下) - 灰色の線の下の面積())されている青線下 エリア1/2(BA)(F(ありますb)-f(a))ここで、aとbは限界のXsであり、f(a)、f(b)は限界のYsである。 グレイラインの下の領域を見つけることは、シンプソンのルールを使って行うことができます。 これを参照してくださいhttp://en.wikipedia.org/wiki/Simpson%27s_rule xsとysの配列を持っていれば、彼らは実装と正確さだけでなくルールも与えています。私はそれが役に立てば幸い

、 Saurabh

+2

シンプソンのルールや台形ルールは、一直線のために一種の過剰です:-)。 –

+0

私はそれらが灰色のものではなく青色のラインに使用できると言った。半分(b-a)(f(b)-f(a)) –

+1

灰色の領域は直接OPのすべての表面の差がプラスであることを望んでいるようです(自分のコメントのabsを参照してください)。そうであれば、最初のステートメントは機能しません。 –

関連する問題