Berechnen Sie den Bereich zwischen zwei Kurven (das sind normale Verteilungen)

Ich muss die Fläche zwischen zwei Kurven berechnen. Ich habe viele Daten, also würde ich es gern programmgesteuert machen.

Grundsätzlich habe ich immer 2 normale Verteilungen, berechnet aus einem Mittelwert und Standardabweichung. Ich würde dann gerne berechnen, wie viel sie sich schneiden. Hier ist ein Beispiel dafür, was ich meine, und auch ein Code in R (das weiß ich nicht).

Gibt es schon eine Funktion in matplotlib oder scipy oder irgendein anderes Modul, das es für mich macht? Wenn ich es selbst umsetzen muss, denke ich, dass ich tun sollte:

  • Finde die Kreuzungen (es wird max 2)
  • Sehen Sie, welche Funktion vorher niedriger ist, [zwischen] und nach der Kreuzung
  • Berechnen Sie das Integral der unteren Funktion und fügen Sie alle zusammen hinzu

Ist das richtig? Wie kann ich die einzelnen Schritte machen? Gibt es Funktionen, Module, etc., die helfen können?

  • Wie man empirische cdf in matplotlib in Python plotten?
  • Ranking von numpy Array mit möglichen Duplikaten
  • Scipy.optimize.curvefit: Asymmetrischer Fehler in fit
  • Wie lese ich einen Teil der Binärdatei mit numpy?
  • Kurvenanpassung in Scipy mit 3D-Daten und Parametern
  • Scipy.cluster.hierarchy.fclusterdata + Distanzmaß
  • Sparse Matrix Slicing mit der Liste der int
  • Berechnen eines 3D-Gradienten mit ungleichmäßig beabstandeten Punkten
  • One Solution collect form web for “Berechnen Sie den Bereich zwischen zwei Kurven (das sind normale Verteilungen)”

    Ich weiß auch nicht R, aber die Antwort scheint in dem Link zu sein, den du zur Verfügung stellst: einfach das Minimum deiner Distributionen integrieren. Sie brauchen keine Kreuzungen zu finden, scipy.integrate.quad nur min(f(x), g(x)) zu scipy.integrate.quad .

    Python ist die beste Programmiersprache der Welt.