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?

  • Gibt es einen Kontextmanager für die vorübergehend wechselnde matplotlib-Einstellungen?
  • Wie man mit matplotlib Daten gegen bestimmte Daten auf der x-Achse zeichnet
  • Plot x-ticks im histogramm matplotlib
  • Wie kann ich NaN-Werte als Sonderfarbe mit Implow in Matplotlib aufstellen?
  • Drehen Sie Tick-Etiketten für seaborn barplot
  • Matplotlib savefig performance, sparen mehrere pngs in loop
  • 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.