Wystarczy, aby upewnić się, że jest to do przyjęcia odpowiedź, ale głównie podsumowując innych ludzi propozycje:
«Matematycznie», co chcesz to obszar pod krzywą abs(blue - grey)
.
Wartości te (tj. Różnice bezwzględne) można łatwo uzyskać, a po ich uzyskaniu można użyć dowolnej metody podobnej do integracji (takiej jak reguła Simpsona lub sugerowana w artykule, do którego prowadzi łącze) w celu uzyskania powierzchni.
Jako alternatywę, i nieco podobną do @Saurabh zasugerowałeś, możesz użyć faktu, że niebieska linia jest funkcją krokową (czy nie jest?), A druga jest linią prostą. W tym celu sumuje się wszystkie wartości x, dla których przecinają się niebieskie i szare linie lub pojawia się nowa wartość ("krok" jest brany) w niebieskiej linii. Dzielenie takiego obszaru doprowadzi tylko do trójkątów i trapezów, a przed podsumowaniem można po prostu wziąć bezwzględną wartość.
Nawet jeśli niebieska linia nie jest prostą funkcją krok, ale nadal składa się z linii prostych, to powinno działać, mimo że teraz trzeba uwzględnić kilka dodatkowych przypadków ...
ja czegoś brakuje tutaj: czy tęskniłeś za wyjaśnieniami pod linkiem? Jeśli twoje niebieskie [j] i szare [j] są danymi, po prostu obliczyć 'sumę (niebieski [j] -gray [j])' (nie rzeczywisty kod R), skorygowany o odległość między wartościami (twoja różnica (x [id ])). Jeśli niebieski [j] to dane, a szary to funkcja, po prostu wylicz na szaro wartości x w kolorze niebieskim. –
Szara linia jest przekątna. Więc powinno to być coś w rodzaju: z <-abs (y-x); id <- order (x); AUC <- sum (diff (x [id]) * rollmean (z [id], 2)); – ECII
Musisz wskazać (po przemyśleniu na ten temat przez sekundę), czy chcesz policzyć obszar pozytywnie, zarówno gdy niebieska linia jest powyżej i poniżej szarej linii. –