[PYTHON] [Einführung in Datenwissenschaftler] Grundlagen der Wahrscheinlichkeit und Statistik ♬ Wahrscheinlichkeits- / Wahrscheinlichkeitsvariable und Wahrscheinlichkeitsverteilung

Bis zum letzten Mal wurde [Einführung in Data Scientists] Deskriptive Statistik und einfache Regressionsanalyse zusammengefasst. Dieses Mal werden wir die Wahrscheinlichkeits- / Wahrscheinlichkeitsvariable und die Wahrscheinlichkeitsverteilung als Grundlage für Wahrscheinlichkeit und Statistik zusammenfassen. Ich werde die Erklärungen in diesem Buch ergänzen. 【Hinweis】 ["Data Scientist Training Course an der Universität von Tokio"](https://www.amazon.co.jp/%E6%9D%B1%E4%BA%AC%E5%A4%A7%E5%AD%A6%E3 % 81% AE% E3% 83% 87% E3% 83% BC% E3% 82% BF% E3% 82% B5% E3% 82% A4% E3% 82% A8% E3% 83% B3% E3% 83 % 86% E3% 82% A3% E3% 82% B9% E3% 83% 88% E8% 82% B2% E6% 88% 90% E8% AC% 9B% E5% BA% A7-Python% E3% 81 % A7% E6% 89% 8B% E3% 82% 92% E5% 8B% 95% E3% 81% 8B% E3% 81% 97% E3% 81% A6% E5% AD% A6% E3% 81% B6 % E3% 83% 87% E2% 80% 95% E3% 82% BF% E5% 88% 86% E6% 9E% 90-% E5% A1% 9A% E6% 9C% AC% E9% 82% A6% Ich werde E5% B0% 8A / dp / 4839965250 / ref = tmm_pap_swatch_0? _ Encoding = UTF8 & qid = & sr =) lesen und die Teile zusammenfassen, an denen ich einige Zweifel habe oder die ich nützlich finde. Daher denke ich, dass die Zusammenfassung unkompliziert sein wird, aber bitte lesen Sie sie und denken Sie, dass der Inhalt nichts mit diesem Buch zu tun hat.

Kapitel 4 Grundlagen der Wahrscheinlichkeit und Statistik

Kapitel 4-1 Vorbereitung auf Lernwahrscheinlichkeit und Statistik

4-1-2 Importieren einer Bibliothek

Importieren Sie die in diesem Kapitel verwendete Bibliothek.

import numpy as np
import scipy as sp
import pandas as pd
from pandas import Series, DataFrame

import matplotlib as mpl
import seaborn as sns
import matplotlib.pyplot as plt
sns.set()
np.random.seed(0)

Kapitel 4-2 Wahrscheinlichkeit

Wahrscheinlichkeit, Versuch, Wurzelereignis, Probenraum, Ereignis, bedingte Wahrscheinlichkeit, Bayes'scher Satz, Vorwahrscheinlichkeit, Nachwahrscheinlichkeit

4-2-1 Mathematische Wahrscheinlichkeit

Lernen Sie anhand von Würfeln die Begriffe und Konzepte, die für die Lernwahrscheinlichkeit erforderlich sind.

#Mögliche Würfelwerte
dice_data =np.array([1,2,3,4,5,6])
4-2-1-1 Ereignis

Jedes Ereignis; Stammereignis

print('Nur eine zufällig extrahierte', np.random.choice(dice_data,1))
#Nur eine zufällig extrahierte[3]

Satz aller Wurzelereignisse: Probenraum Ω Beliebige Teilmenge des Probenraums: Ereignisse

Wenn Sie von 1 auf 10 wechseln, geschieht hier auch Folgendes

print('Nach dem Zufallsprinzip 10 extrahieren', np.random.choice(dice_data,10))
#Nach dem Zufallsprinzip 10 extrahieren[2 3 4 2 2 1 6 2 2 5]
\begin{align}
&Kolmogorovs Agenda\\
&Wahrscheinlichkeit P, dass ein bestimmtes Ereignis E (Ereignis) auftritt(E)Wenn Sie schreiben, ist das Folgende die Tagesordnung.\\
&Agenda 1: 0 für alle Veranstaltungen A.\leq P(A)\leq 1\\
&Apokalypse 2; P.(\Omega)=1\\
&Theorie 3: Zusätzliche Ereignisse, die sich gegenseitig ausschließen, A._1,A_2,A_3,.. .. .. Gegen\\
&P(A_1\cup A_2\cup A_3\cup...)=P(A_1)+P(A_2)+P(A_3)+...=\Sigma_i P(A_i)\\
\end{align}

Obwohl es sich von der Tagesordnung dieses Buches unterscheidet, wird es aus dem Nachschlagewerk zitiert. Apokalypse 3 dieses Buches beschreibt den Fall von $ A_1 $, $ A_2 $. 【Referenz】 [Grundlegende Mathematikwahrscheinlichkeit / Statistik I S. 6 Ingenieurkurs der Universität Tokio](https://www.amazon.co.jp/%E5%9F%BA%E7%A4%8E%E7%B3%BB-%E6%95 % B0% E5% AD% A6-% E7% A2% BA% E7% 8E% 87% E3% 83% BB% E7% B5% B1% E8% A8% 88I-% E6% 9D% B1% E4% BA % AC% E5% A4% A7% E5% AD% A6% E5% B7% A5% E5% AD% A6% E6% 95% 99% E7% A8% 8B-% E7% B8% 84% E7% 94% B0 / dp / 4621087150)

4-2-1-2 Leeres Ereignis

Leeres Ereignis $ \ phi $ ist ein Ereignis ohne Elemente. Wenn beispielsweise A und B Ausschlussereignisse sind, ist $ A \ cap B $ ein leeres Ereignis $ \ phi $. $ P (\ phi) = 0 $.

4-2-1-3 Zusätzliche Ereignisse

Ein Ereignis, das nicht zu einem bestimmten Ereignis E gehört, wird als Restereignis bezeichnet. Dies wird auch als Komplement von E bezeichnet. Mit c im Komplement ausgedrückt.

E=\{2,4,6\}\\
E^c=\{1,3,5\}
4-2-1-4 Produktereignis und Summenereignis
A=\{1,2,3\}\\
B=\{1,3,4,5\}

$ A \ cap B $; Produktereignis

A\cap B = \{1,3\}

$ A \ cup B $; Summenereignis

A\cup B = \{1,2,3,4,5\}
4-2-1-5 Berechnung der Wahrscheinlichkeit

Berechnen Sie die Wahrscheinlichkeit, dass "Ereignis X mit 3", "leeres Ereignis", "Produktereignis von A und B" und "Summenereignis von A und B" auftreten.

\begin{align}
P(X) &= \frac{1}{6}\\
P(\phi ) &= 0\\
P(A\cap B)&=\frac{1}{3}\\
P(A\cup B)&=\frac{5}{6}\\
\end{align}
4-2-2 Statistische Wahrscheinlichkeit

Wahrscheinlichkeit von Würfeln

Anzahl von Versuchen 1 2 3 4 5 6
1 0.0 0.0 1.0 0.0 0.0 0.0
10 0.1 0.5 0.2 0.1 0.1 0.0
100 0.16 0.17 0.18 0.19 0.18 0.12
1000 0.176 0.152 0.18 0.158 0.164 0.17
10000 0.1695 0.1701 0.1642 0.166 0.1617 0.1685
100000 0.16776 0.16621 0.16661 0.16573 0.16724 0.16645
1000000 0.166517 0.166637 0.166131 0.16692 0.166876 0.166919

Das Folgende ist meine persönliche Meinung. .. .. Ich finde dieses Ergebnis interessant. Mit anderen Worten, selbst wenn es 6 Kandidaten gibt und die Wähler gleichmäßig (zufällig) wählen, unterscheidet sich das Ergebnis in Abhängigkeit von der Anzahl der Versuche (Anzahl der Wähler), so dass bei etwa 1000 Wählern ein geringfügiger Vorteil besteht. In diesem Fall ist das Ergebnis unzuverlässig. Die Wahrheit kann also nicht gesehen werden, ohne die Überlegenheit statistisch zu überprüfen, und eine Stimme wird nicht sorgfältig gewählt.

calc_steps = 1000
print('calc_steps=',calc_steps)
dice_rolls = np.random.choice(dice_data,calc_steps)
for i in range(1,7):
    p = len(dice_rolls[dice_rolls==i])/calc_steps
    print(i, 'Wahrscheinlichkeit des Auftretens;', p)
4-2-3 Bedingter Wahrscheinlichkeits- und Multiplikatorsatz

Die Wahrscheinlichkeit, dass Ereignis B unter der Bedingung auftritt, dass Ereignis A aufgetreten ist, wird als bedingte Wahrscheinlichkeit von B unter der Bedingung bezeichnet, dass A gegeben ist.

P(B|A)=\frac{P(A\cap B)}{P(A)}

Es wird ausgedrückt als. Diese Formel wird wie folgt transformiert und heißt ** Multiplikatorsatz **.

P(A\cap B)=P(B|A)P(A)

Konkretes Beispiel; Sogar Augen auf die Würfel A={2,4,6} 4 oder mehr Ereignisse B={4,5,6} Produktereignis von A und B. $A\cap B = ${4,6}

P(B|A)=\frac{P(A\cap B)}{P(A)}=\frac{\frac{2}{6}}{\frac{3}{6}}=\frac{2}{3}
4-2-4 Unabhängigkeit und Unterordnung

Die Tatsache, dass Ereignis A und Ereignis B unabhängig voneinander sind, bedeutet

P(A|B)=P(A)

Ist wahr. Zu diesem Zeitpunkt gilt aus dem Multiplikationssatz Folgendes.

P(A\cap B)=P(A)P(B)

Wenn diese Gleichung nicht zutrifft, werden Ereignis A und Ereignis B als voneinander abhängig bezeichnet. In Anbetracht des obigen Würfelbeispiels ist es wie folgt.

\begin{align}
P(A\cap B)&=\frac{2}{6}&=\frac{1}{3}\\
P(A)P(B)&=\frac{3}{6}\frac{3}{6}&=\frac{1}{4}
\end{align}

Es ist ersichtlich, dass Ereignis A und Ereignis B nicht unabhängig, sondern abhängig sind, weil sie nicht gleich sind. Was ist mit "C = {1,3,5}"? Produktereignis von A und C. $A\cap C = ${} Dies ist wiederum nicht gleich 0 bzw. $ \ frac {1} {4} $ und ist eine Abhängigkeit.

4-2-5 Satz von Bayes

Ich werde den Satz von Bayes erklären. Zitiert aus der Referenz "Manchmal wollen wir die Ursache B aus dem Ergebnis A kennen ... In einem solchen Fall die bedingte Wahrscheinlichkeit P von B mit A als Bedingung.(B|A)Wird benötigt. Was in Experimenten und Umfragen benötigt wird, ist P.(A|B)Also P.(B|A)Sie benötigen eine Gleichung zur Berechnung. "" Unter Berücksichtigung der obigen bedingten Wahrscheinlichkeiten erhalten wir den folgenden Bayes'schen Satz, wenn wir A als das resultierende Ereignis und B als das verursachende Ereignis betrachten. Dies dient dazu, die Wahrscheinlichkeit zu ermitteln, dass die Ursache ein B-Ereignis ist, wenn das Ergebnis von A bekannt ist. Beachten Sie, dass $ B ^ c $ eine Ergänzung von B ist.

P(B|A)=\frac{P(B\cap A)}{P(A)}\\
∵P(A\cap B)=P(B\cap A)\\
=\frac{P(A|B)P(B)}{P(A)}\\
=\frac{P(A|B)P(B)}{P(A|B)P(B)+P(A|B^c)P(B^c)}\\

P (B); Wahrscheinlichkeit von Ereignis B vor Ereignis A; Vorwahrscheinlichkeit P (B | A); Wahrscheinlichkeit von Ereignis B nach Ereignis A; hintere Wahrscheinlichkeit P (A | B); Wahrscheinlichkeit, dass A auftritt, wenn B auftritt; Wahrscheinlichkeit;

Ich beziehe mich auf Folgendes. 【Referenz】 [Grundlegende Mathematikwahrscheinlichkeit / Statistik I S. 18 Ingenieurkurs der Universität Tokio](https://www.amazon.co.jp/%E5%9F%BA%E7%A4%8E%E7%B3%BB-%E6%95 % B0% E5% AD% A6-% E7% A2% BA% E7% 8E% 87% E3% 83% BB% E7% B5% B1% E8% A8% 88I-% E6% 9D% B1% E4% BA % AC% E5% A4% A7% E5% AD% A6% E5% B7% A5% E5% AD% A6% E6% 95% 99% E7% A8% 8B-% E7% B8% 84% E7% 94% B0 / dp / 4621087150) "Es gibt k verursachende Ereignisse von $ B_1, B_2, ..., B_k $, und diese Ereignisse schließen sich gegenseitig aus, und es treten keine anderen Ereignisse auf."

P(A)=P[\cup _{i=1}^{k}(A\cap B_i)]\\
=\sum _{i=1}^{k}P(A\cap B_i)\\
=\sum _{i=1}^{k}P(A|B_i)P(B_i)

Wird sein. Einsetzen in die obige Gleichung

P(B_i|A)=\frac{P(A|B_i)P(B_i)}{\sum _{j=1}^{k}P(A|B_j)P(B_j)}

Übung 4-1

Anzahl von Versuchen Tabelle zurück
10 0.6 0.4
100 0.51 0.49
1000 0.479 0.521
10000 0.505 0.495
100000 0.49939 0.50061
1000000 0.500783 0.499217
10000000 0.500065 0.499935
calc_steps = 1000
print('calc_steps=',calc_steps)
dice_rolls = np.random.choice(dice_data,calc_steps)
for i in range(0,2):
    p = len(dice_rolls[dice_rolls==i])/calc_steps
    print(i, 'Wahrscheinlichkeit des Auftretens;', p)

Kapitel 4-3 Wahrscheinlichkeitsvariablen und Wahrscheinlichkeitsverteilung

Probabilistische Variable, Wahrscheinlichkeitsfunktion, Wahrscheinlichkeitsdichtefunktion, Erwartungswert, Gleichverteilung, Bernoulli-Verteilung, Binomialverteilung, Normalverteilung, Poisson-Verteilung, logarithmische Normalverteilung, Kerndichteschätzung

4-3-1 Wahrscheinlichkeitsvariable, Wahrscheinlichkeitsfunktion, Verteilungsfunktion, Erwartungswert

Eine Wahrscheinlichkeitsvariable ist eine Variable, der eine Wahrscheinlichkeit einem möglichen Wert zugeordnet ist. In Anbetracht der Würfel sind die möglichen Werte der Variablen 1-6, und die Erscheinungswahrscheinlichkeit wird gleichermaßen 1/6 zugewiesen, wie in der folgenden Tabelle gezeigt. Hier wird die Variable X als Wahrscheinlichkeitsvariable bezeichnet, die mögliche Werte angibt, und P (X) ist die Wahrscheinlichkeit jedes Auftretens.

X 1 2 3 4 5 6
P(X) 1/6 1/6 1/6 1/6 1/6 1/6

Großbuchstaben X repräsentiert eine stochastische Variable und Kleinbuchstaben x repräsentiert ihren Realisierungswert. Zusätzlich zeigt der Großbuchstabe P (X) die Erscheinungswahrscheinlichkeit und der Kleinbuchstabe p (x) den realisierten Wert.

\Sigma _{i=1}^6 p(x_i)= 1
4-3-1-1 Verteilungsfunktion

Der "" Teil unten wird aus der obigen Referenz p21 zitiert. "Wenn die Wahrscheinlichkeitsvariable X ein diskreter Typ ist, wird das Folgende als Wahrscheinlichkeitsverteilung von X bezeichnet.

P(X=x_i) = f(x_i)

Die Wahrscheinlichkeit an jedem Punkt ist eine Funktion von $ x $ (der Index i wird unten weggelassen), und $ f (x) $ wird als Wahrscheinlichkeitsfunktion bezeichnet. ""

Die Verteilungsfunktion (kumulative Wahrscheinlichkeitsverteilungsfunktion) ist unten definiert.

F(X)=P(X\leq x) = \Sigma _{x_i \leq x}p(x_i)

Hier wird im Fall einer kontinuierlichen Wahrscheinlichkeitsvariablen die Ableitung der Verteilungsfunktion als Dichtefunktion (Wahrscheinlichkeitsdichtefunktion) bezeichnet und wie folgt definiert.

f(x)= \frac{dF(x)}{dx}
4-3-1-2 Erwarteter Wert (Durchschnitt)

Unter der Annahme, dass die Wahrscheinlichkeitsvariable X ist, lautet die Definitionsformel des erwarteten Werts E (X) wie folgt.

E(x)= \Sigma _x xf(x)

Zum Beispiel sind die Würfel wie folgt.

\begin{align}
E(x)&= 1*\frac{1}{6}+2*\frac{1}{6}+3*\frac{1}{6}+4*\frac{1}{6}+5*\frac{1}{6}+6*\frac{1}{6}\\
&=\frac{21}{6}\\
&=3.5
\end{align}

4-3-2 Verschiedene Verteilungsfunktionen

4-3-2-1 Gleichmäßige Verteilung

Diejenigen mit der gleichen Wahrscheinlichkeit, dass alle Ereignisse auftreten, werden als Gleichverteilungen bezeichnet. Im Fall von Würfeln ist es wie folgt Figure_saikoro.png

prob_data = []
print('calc_steps=',calc_steps)
dice_rolls = np.random.choice(dice_data,calc_steps)
for i in range(1,7):
    p = len(dice_rolls[dice_rolls==i])/calc_steps
    prob_data.append(p)
    print(i, 'Wahrscheinlichkeit des Auftretens;', p)
plt.bar(dice_data, prob_data)
plt.grid()
plt.show()

>python dice_choice.py
calc_steps= 1000
Wahrscheinlichkeit von 1; 0.153
Wahrscheinlichkeit von 2; 0.17
Wahrscheinlichkeit von 3; 0.161
Wahrscheinlichkeit von 4; 0.17
Wahrscheinlichkeit von 5; 0.148
Wahrscheinlichkeit von 6; 0.198
4-3-2-2 Bernoulli-Verteilung

Bernoulli-Studie, Studie mit binären Ergebnissen Bernoulli-Verteilung: Wahrscheinlichkeit, dass jedes Ereignis in einem einzelnen Bernoulli-Versuch auftritt Wenn Sie Münzen werfen, die Wahrscheinlichkeit, dass die Vorderseite herauskommt, die Wahrscheinlichkeit, dass die Rückseite herauskommt

Das Folgende ist die Bernoulli-Verteilung, wenn das Ergebnis des achtmaligen Werfens von Münzen [0,0,0,0,0,1,1,1] ist. Figure_bernoui.png

prob_be_data = []
coin_data = np.array([0,0,0,0,0,1,1,1])
for i in np.unique(coin_data):
    p = len(coin_data[coin_data==i])/len(coin_data)
    prob_be_data.append(p)
    print(i, 'Wahrscheinlichkeit des Auftretens;', p)
plt.bar([0,1], prob_be_data, align = 'center')
plt.xticks([0,1], ['head', 'tail'])
plt.grid()
plt.show()  

Wahrscheinlichkeit von 0; 0.625
Wahrscheinlichkeit von 1; 0.375

4-3-2-3 Verteilungsbasierte Daten in Python abrufen

Erstellen Sie Daten basierend auf einer bestimmten Verteilung. Im Folgenden werden die Eigenschaften der Verteilungsdaten durch Berechnung unter Verwendung verschiedener Verteilungsfunktionen von numpy untersucht.

4-3-2-4 Binäre Verteilung

Die Binomialverteilung ist ein unabhängiger Bernoulli-Versuch, der n-mal wiederholt wird. Es kann wie folgt generiert werden. (30 Versuche, Wahrscheinlichkeit 0,5), als ich 1000 Mal versuchte, ist es wie folgt. Es gibt einen Durchschnitt um 15 und die Dispersion ist 30/4

np.random.seed(0)
x = np.random.binomial(30,0.5,1000)
print(x.mean(), x.var())
#14.98 7.6176
plt.hist(x)
plt.grid()
plt.show()

Figure_binom.png 10000sample Figure_binom10000.png

4-3-2-4 Poisson-Verteilung

Anzahl der Regentropfen pro Flächeneinheit, Anzahl der Bäume pro Quadratmeter usw. Die Zahl, die in einem bestimmten Abschnitt erwartet wird, ist 7, und die Stichprobe 1000 ist wie folgt.

np.random.seed(0)
x = np.random.poisson(7,1000)
print(x.mean(), x.var())
#6.885 6.457775
plt.hist(x)
plt.grid()
plt.show()

Figure_poisson.png 10000sample Figure_poisson10000.png

4-3-2-5 Normalverteilung und logarithmische Normalverteilung

Normalverteilung mu; Mittelwert, Sigma; Standardabweichung

np.random.seed(0)
x = np.random.normal(5,10,1000)
print(x.mean(), x.var())
#4.547432925098047 97.42344563121543
plt.hist(x)
plt.grid()
plt.show()

Figure_normal.png Log Normalverteilung mit logarithmischer Achse auf der horizontalen Achse

np.random.seed(0)
mu, sigma = 3., 0.4
x = np.random.lognormal(mu,sigma,1000)
print(x.mean(), x.var())
#21.329823289919993 76.9718785871209
plt.hist(x)
plt.grid()
plt.show()

Figure_lognormal-.png Da es schwierig ist, die Bedeutung des Durchschnitts und der Standardabweichung zu verstehen, wenn man die Referenz betrachtet, Lassen Sie uns die vertikale Achse standardisieren und mit der durch die Formel berechneten Achse ausrichten.

s = np.random.lognormal(mu, sigma, 1000)
count, bins, ignored = plt.hist(s, bins=12, range =(0,60), density=True, align='mid')
x = np.linspace(min(bins), max(bins),120)
pdf = (np.exp(-(np.log(x) - mu)**2 / (2 * sigma**2))/ (x * sigma * np.sqrt(2 * np.pi)))
plt.plot(x, pdf, linewidth=2, color='r')
plt.axis('tight')
plt.show()

Figure_lognormal1000calcdensity.png

4-3-3 Kerneldichtefunktion

Schätzen Sie die Dichtefunktion anhand der angegebenen Daten. Gehen Sie wie folgt vor, um Fehlzeiten mithilfe der Kerneldichtefunktion abzuschätzen:

student_data_math = pd.read_csv('./chap3/student-mat.csv', sep =';')

student_data_math.absences.plot(kind='kde', style='k--')
student_data_math.absences.hist(density=True,align='mid')
plt.grid()
plt.show()

Figure_kde.png Ich kann nicht verstehen, welche Art von Funktion kde übernimmt, also aus der Referenz 【Referenz】 [Schätzung der Kerneldichte @wikipedia](https://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E5%AF%86] % E5% BA% A6% E6% 8E% A8% E5% AE% 9A #: ~: Text =% E3% 82% AB% E3% 83% BC% E3% 83% 8D% E3% 83% AB% E5 % AF% 86% E5% BA% A6% E6% 8E% A8% E5% AE% 9A% EF% BC% 88% E3% 82% AB% E3% 83% BC% E3% 83% 8D% E3% 83 % AB% E3% 81% BF% E3% 81% A4,% E3% 83% 8E% E3% 83% B3% E3% 83% 91% E3% 83% A9% E3% 83% A1% E3% 83% 88% E3% 83% AA% E3% 83% 83% E3% 82% AF% E6% 89% 8B% E6% B3% 95% E3% 81% AE% E3% 81% B2% E3% 81% A8% E3% 81% A4% E3% 80% 82 & Text =% E5% A4% A7% E3% 81% BE% E3% 81% 8B% E3% 81% AB% E8% A8% 80% E3% 81% 88% E3 % 81% B0% E3% 80% 81% E3% 81% 82% E3% 82% 8B,% E3% 83% 87% E3% 83% BC% E3% 82% BF% E3% 82% 92% E5% A4% 96% E6% 8C% BF% E3% 81% A7% E3% 81% 8D% E3% 82% 8B% E3% 80% 82) "Sei x1, x2, ..., xn Abtastwerte aus unabhängigen identischen Verteilungen mit einer (unbekannten) Wahrscheinlichkeitsdichtefunktion. Kernelfunktion K, Kerndichteschätzung der Bandbreite (Glättungsparameter) h. Was ist ein Kernel-Dichteschätzer?

\begin{align}
f(x)&=\frac{1}{nh}∑^n_{i=1}K(\frac{x−X_i}{h})\\
\\
Hier normaler Kernel&Die folgende Normalverteilung wird für die Funktion verwendet.\\
\\
K(x)&=\frac{1}{2\pi}e^{\frac{x^2}{2}}\\
\end{align}

Kapitel 4-4 Mehrdimensionale Wahrscheinlichkeitsverteilung

Simultane Wahrscheinlichkeitsverteilung, periphere Wahrscheinlichkeitsfunktion, bedingte Wahrscheinlichkeitsfunktion, bedingter Mittelwert, verteilte Kovarianzmatrix, mehrdimensionale Normalverteilung

4-4-1 Simultane Wahrscheinlichkeitsfunktion und periphere Wahrscheinlichkeitsfunktion

Stellen Sie sich eine diskrete Wahrscheinlichkeitsvariable vor, bei der X einen Wert für $ {x_0, x_1, ...} $ und Y einen Wert für $ {y_0, y_1, ...} $ annimmt. Wenn die Wahrscheinlichkeiten von $ X = x_i $ und $ Y = y_i $ wie folgt geschrieben werden, wird das Folgende als simultane Wahrscheinlichkeitsfunktion bezeichnet.

P(X=x_i, Y=y_i) = p_{X,Y}\{x_i,y_i\}

Das Folgende wird als periphere Wahrscheinlichkeitsfunktion von X bezeichnet.

P_X(x_i) = \Sigma _{j=0}^{\infty }p_{X,Y}\{x_i,y_i\}

Y wird auf die gleiche Weise definiert.

4-4-2 Bedingte Wahrscheinlichkeitsfunktion und bedingter erwarteter Wert

Die bedingte Wahrscheinlichkeitsfunktion von $ Y = y_i $ bei $ X = x_i $ kann wie folgt definiert werden.

p_{Y|X}(y_j|x_i)=P(Y=y_j|X=x_i)=\frac{p_{X,Y}(x_i,y_j)}{p_X(x_i)}

Außerdem ist die bedingte Erwartung von Y, wenn $ X = x_i $ gegeben ist, wie folgt.

E[Y|X=x_i]=\Sigma _{j=1}^{\infty }y_jp_{Y|X}(y_j|x_i)=\frac{\Sigma _{j=1}^{\infty }y_ip_{X,Y}(x_i,y_j)}{p_X(x_i)}

4-4-3 Definition von Unabhängigkeit und kontinuierlicher Verteilung

Die Definition der Unabhängigkeit in zwei Variablen wird für alle xi, yi als unabhängig angenommen, wenn das Folgende gilt.

p_{X|Y}(x_i|y_j)=p_X(x_i)p_Y(y_j)

In Bezug auf die kontinuierliche Verteilung können die simultane Wahrscheinlichkeitsdichtefunktion, die periphere Wahrscheinlichkeitsdichtefunktion, die bedingte Wahrscheinlichkeitsdichtefunktion, die unabhängige Definition usw. definiert werden, sie werden jedoch weggelassen.

4-4-3-1 Zeigen Sie eine zweidimensionale Normalverteilung als Diagramm an

Das folgende Diagramm wurde im folgenden Programm angezeigt.

import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as st
from scipy.stats import multivariate_normal
from mpl_toolkits.mplot3d import Axes3D

x,y =np.mgrid[10:100:2,10:100:2]

pos = np.empty(x.shape + (2,))
pos[:,:,0]=x
pos[:,:,1]=y

rv = multivariate_normal([50,50],[[100,0],[0,100]])
z=rv.pdf(pos)

fig = plt.figure(dpi=100)
ax=Axes3D(fig)
ax.plot_wireframe(x,y,z)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('f(x,y)')
ax.ticklabel_format(style='sci', axis = 'z',scilimits=(0,0))
plt.show()

Figure_fxy_gauss.png Das Programm ist etwas schwierig, deshalb werde ich es erklären. Es ist wichtig, die folgenden zwei Zeilen zu verstehen.

rv = multivariate_normal([50,50],[[100,0],[0,100]])
z=rv.pdf(pos)

Die folgenden Referenzen helfen Ihnen beim Verständnis. 【Referenz】 ① [Multivariate Normalverteilung @wikipedia](https://ja.wikipedia.org/wiki/%E5%A4%9A%E5%A4%89%E9%87%8F%E6%AD%A3%E8%A6 % 8F% E5% 88% 86% E5% B8% 83) ② Daten generieren, die einer mehrdimensionalen Normalverteilung folgen Gemäß Referenz (2) kann der obige Code wie folgt geschrieben werden. Wobei mu der Mittelwert und Sigma die Kovarianzmatrix ist.

mu = [50,50]
sigma = [[100,0],[0,100]]
rv = multivariate_normal(mu, sigma)

Die Formel lautet wie folgt.

\mu=\begin{pmatrix}\mu_x \\ \mu_y \end{pmatrix}\\
\sum=
\begin{pmatrix} \sigma_x^2 & Cov(x,y) \\ Cov(y,x) & \sigma_y^2 \end{pmatrix}\\
=\begin{pmatrix} \sigma_x^2 & \rho \sigma_x\sigma_y \\ \rho\sigma_y\sigma_x & \sigma_y^2 \end{pmatrix}

Das heißt, hier ist es wie folgt.

\mu=\begin{pmatrix} 50 \\ 50\end{pmatrix}\\
\sum=\begin{pmatrix}100 & 0 \\ 0 & 100\end{pmatrix}

Und die gesamte Formel von multivariate_normal (mu, sigma) wird durch das Gitter mit z = rv.pdf (pos) für die Menge von (x, y) unten berechnet.

f(x,y)=\frac{1}{2\pi\sigma_x\sigma_y\sqrt{1-\rho^2}}\exp(-\frac{1}{2(1-\rho^2)}[\frac{(x-\mu_x)^2}{\sigma_x^2}+\frac{(y-\mu_y)^2}{\sigma_y^2}-\frac{2\rho(x-\mu_x)(y-\mu_y)}{\sigma_x\sigma_y}])

Darüber hinaus ist fast derselbe Code in Referenz ③ unten angegeben. 【Referenz】 ③Python plot 3d scatter and densityscipy.stats.multivariate_normal Um z = rv.pdf (pos) zu verstehen, hat pdf die folgende Bedeutung und nimmt ein Argument als Bonus. Ich benutze: pdf=Probability density function.

Funktionsdefinition und ursprüngliche Berechnung

【Referenz】 Python 3: Schreiben eines 3D-Diagramms (matplotlib, pyplot, mplot3d, MPL) Der Code lautet wie folgt.

def func(x,y):
    mux,muy,sigmax,sigmay,rho=50.,50.,10.,10.,0.
    fxy=np.exp(-((x-mux)**2/(sigmax**2) + (y-muy)**2/(sigmay**2)-2*rho*(x-mux)*(y-muy)/(sigmax*sigmay))/2*(1-rho**2))/(2*np.pi*sigmax*sigmay*np.sqrt(1-rho**2))
    return fxy

x,y =np.mgrid[10:100:2,10:100:2]
z=func(x,y)

fig = plt.figure(dpi=100)
ax=Axes3D(fig)
ax.plot_wireframe(x,y,z)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('f(x,y)')
ax.ticklabel_format(style='sci', axis = 'z',scilimits=(0,0))
plt.show()

Da das Aussehen das gleiche ist, wurde das gleiche Bild wie unten gezeigt erhalten. Figure_fxy_gauss_original.png Wenn mux, muy, sigmax, sigmay, rho = 50., 50., 10., 10., 0.3 Figure_fxy_gauss_rho03-.png Und rv = multivariate_normal([50,50],[[100,30],[30,100]]) Wenn ich mit berechnete, wurde das gleiche Ergebnis wie folgt erhalten. Figure_fxy_gauss_cov30.png

Bonus

Was ist erforderlich als rv.Methods () von rv = multivariate_normal (mu, sigma)

Methods Kommentar
pdf(x, mean=None, cov=1, allow_singular=False) Probability density function.
logpdf(x, mean=None, cov=1, allow_singular=False) Log of the probability density function.
cdf(x, mean=None, cov=1, allow_singular=False, maxpts=1000000*dim, abseps=1e-5, releps=1e-5) Cumulative distribution function.
logcdf(x, mean=None, cov=1, allow_singular=False, maxpts=1000000*dim, abseps=1e-5, releps=1e-5) Log of the cumulative distribution function.
rvs(mean=None, cov=1, size=1, random_state=None) Draw random samples from a multivariate normal distribution.
entropy() Compute the differential entropy of the multivariate normal.

Recommended Posts

[Einführung in Datenwissenschaftler] Grundlagen der Wahrscheinlichkeit und Statistik ♬ Wahrscheinlichkeits- / Wahrscheinlichkeitsvariable und Wahrscheinlichkeitsverteilung
[Einführung in Data Scientists] Grundlagen von Python ♬ Funktionen und Klassen
[Einführung in Data Scientist] Grundlagen von Python ♬
[Einführung in Data Scientists] Grundlagen von Python ♬ Bedingte Verzweigung und Schleifen
[Einführung in Data Scientists] Grundlagen von Python ♬ Funktionen und anonyme Funktionen usw.
[Einführung in Data Scientists] Deskriptive Statistik und einfache Regressionsanalyse ♬
[Einführung in Data Scientist] Grundlagen der wissenschaftlichen Berechnung, Datenverarbeitung und Verwendung der Grafikzeichnungsbibliothek ♬ Grundlagen von Scipy
[Einführung in Data Scientist] Grundlagen der wissenschaftlichen Berechnung, Datenverarbeitung und Verwendung der Grafikzeichnungsbibliothek ♬ Grundlagen von Pandas
[Einführung in Data Scientist] Grundlagen der wissenschaftlichen Berechnung, Datenverarbeitung und Verwendung der Grafikzeichnungsbibliothek ♬ Grundlagen von Matplotlib
[Grundlagen der modernen mathematischen Statistik mit Python] Kapitel 2: Wahrscheinlichkeitsverteilung und Erwartungswert
[Einführung in Data Scientist] Grundlagen der wissenschaftlichen Berechnung, Datenverarbeitung und Verwendung der Grafikzeichnungsbibliothek ♬ Umgebungskonstruktion
[Statistik für Programmierer] Wahrscheinlichkeitsvariablen, Wahrscheinlichkeitsverteilungen und Wahrscheinlichkeitsdichtefunktionen
[Einführung in cx_Oracle] (Teil 2) Grundlagen zum Verbinden und Trennen mit Oracle Database
[Grundlagen der modernen mathematischen Statistik mit Python] Kapitel 3: Typische Wahrscheinlichkeitsverteilung
Mathematische Statistik aus den Grundlagen Probabilistische Variablen
Zusammenfassung der Wahrscheinlichkeitsverteilungen, die häufig in Statistiken und Datenanalysen vorkommen
[Statistikübersicht] Vier Regeln für stochastische Variablen
[Python] Kapitel 02-01 Grundlagen von Python-Programmen (Operationen und Variablen)
Konzept des Bayes'schen Denkens (2) ... Bayes'sche Schätzung und Wahrscheinlichkeitsverteilung
[Einführung in cx_Oracle] (5.) Umgang mit japanischen Daten
[Einführung in cx_Oracle] (Teil 7) Umgang mit Bindevariablen
[Einführung in die Statistik] Welche Art von Verteilung ist die t-Verteilung, die Chi-Quadrat-Verteilung und die F-Verteilung? Eine kleine Zusammenfassung der Verwendung von [Python]
Es ist Zeit, ernsthaft über die Definition und die Fähigkeiten von Datenwissenschaftlern nachzudenken
Liste der Python-Bibliotheken für Datenwissenschaftler und Dateningenieure
[Einführung in cx_Oracle] (Teil 11) Grundlagen der PL / SQL-Ausführung
[Grundlagen der modernen mathematischen Statistik mit Python] Kapitel 1: Wahrscheinlichkeit
[Einführung in cx_Oracle] (Teil 6) Zuordnung von DB- und Python-Datentypen
[Einführung in cx_Oracle] (Teil 4) Abrufen und Scrollen der Ergebnismenge
Einführung in die Statistik Die University of Tokyo Press Kapitel 2 Übungen
[Einführung in Scipy] Berechnung der Lorenzkurve und des Gini-Koeffizienten ♬
Einführung von DataLiner Version 1.3 und Verwendung von Union Append
1. Mit Python gelernte Statistiken 2. Wahrscheinlichkeitsverteilung [Gründliches Verständnis von scipy.stats]
[Einführung in Python] Kombinieren Sie Nikkei-Durchschnitts- und NY Dow-CSV-Daten
Memo darüber, wie zwei korrelierte Variablen (ungefähr) erstellt werden, von denen jede einer beliebigen Verteilung folgt
[Einführung in cx_Oracle] Übersicht über cx_Oracle
Einführung in die Anomalieerkennung 1 Grundlagen
Grundlegende Statistik und Gaußsche Verteilung
Hypothesentest und Wahrscheinlichkeitsverteilung
Einführung und Tipps von mlflow.Tracking
Wahrscheinlichkeitsvorhersage von unausgeglichenen Daten
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part1-
So extrahieren Sie Funktionen von Zeitreihendaten mit PySpark Basics
Einführung in die Python-Grundlagen des maschinellen Lernens (unbeaufsichtigtes Lernen / Hauptanalyse)
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part2-
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part4-
[Einführung in die Udemy Python3 + -Anwendung] 69. Import des absoluten Pfads und des relativen Pfads
Lernen Sie die M-H- und HMC-Methoden, indem Sie die Bayes'schen Statistiken anhand der Grundlagen lesen
[Einführung in die Udemy Python3 + -Anwendung] 12. Indizieren und Schneiden von Zeichenketten
Einführung in TensorFlow - Zusammenfassung von vier Regeln und grundlegenden mathematischen Funktionen
Lösen der Einführung von AOJ in Algorithmen und Datenstrukturen in Python -Part3-