Hier möchte ich das Grundproblem der Exponentialverteilung und das Problem der wahrscheinlichsten damit verbundenen Schätzmenge mit Python lösen.
python
Ns Homepage-Zugriffsintervall T.(Einheit: Zeit)Ist eine Exponentialverteilung\\
f(t) = 2 e^{-2t}~~~~ (t>0)\\
Gehorchen. Zu diesem Zeitpunkt P.(T\leq 3)Nachfragen.
Zunächst verschiedene Vorbereitungen.
python
import sympy as sym
from sympy.plotting import plot
sym.init_printing(use_unicode=True)
%matplotlib inline
oo = sym.oo #Unendlichkeit
(x,t) = sym.symbols('x t')
Als nächstes zeichnen wir einen Graphen der Wahrscheinlichkeitsdichtefunktion.
python
expr =2* sym.exp((-2*t))
#Der Graph der erhaltenen Funktion ist von 0 bis 3 dargestellt.
plot(expr, (t, 0, 3))
#Überprüfen Sie auch, ob es sich für alle Fälle um eine Wahrscheinlichkeitsdichtefunktion handelt.
sym.integrate(expr, (t, 0, oo))
Lösen Sie das zuletzt gegebene Problem.
python
sym.integrate(expr, (t, 0, 3))
Lösen wir nun das Problem der wahrscheinlichsten Schätzung.
python
Ns Homepage-Zugriffsintervall T.(Einheit: Zeit)Ist eine Exponentialverteilung\\
f(t) = x e^{-xt}~~~~ (t>0)\\
Angenommen, Sie folgen. Geben Sie willkürlich einen Satz unabhängiger Beobachtungen von T ein und finden Sie die wahrscheinlichste Schätzung von x, die diesem Satz von Werten entspricht.
Definieren Sie eine Wahrscheinlichkeitsfunktion. Die Variable ändert sich zu x anstelle von t. (Verwenden Sie normalerweise λ anstelle von x.)
python
#Geben Sie zunächst den Satz der beobachteten Werte ein.
A = list(map(float, input().split()))
#Definieren Sie als Nächstes die Wahrscheinlichkeitsfunktion.
expr = 1
for t in A:
expr = expr*(x * sym.exp((-x)*t))
print(expr)
#Der Graph der Wahrscheinlichkeitsfunktion mit x als Variable wird von 0 bis 3 gezeigt. Die Zahl 3 hat hier keine besondere Bedeutung. Alles ist gut.
plot(expr, (x, 0, 3))
Definieren Sie als Nächstes die logarithmische Wahrscheinlichkeitsfunktion.
python
L = sym.log(expr)
print(L)
#Das Diagramm der erhaltenen Funktion ist dargestellt.
plot(L, (x, 0, 3))
Berechnen Sie, wo es zu 0 differenziert.
python
L_1 = L.diff(x,1)
plot(L_1, (x, 1, 3))
sym.solve(L_1, x)
Normalerweise müssen Sie das Differential zweiter Ordnung wie folgt berechnen und sicherstellen, dass es immer negativ ist. Obwohl diese Berechnung für Menschen einfach ist, funktioniert sie nicht, da Python die Formel in der Mitte nicht transformiert, um die Berechnung zu vereinfachen. (´ · ω · `) Shobon.
python
L_2 = L_1.diff(x,1)
plot(L_2, (x, 1, 2))
print(L_2)
Recommended Posts