Ich habe versucht, die inverse Gammafunktion in Python zu implementieren

Einführung

Ich möchte die inverse Gammafunktion in Python testen, sie ist jedoch in scipy [invgamma] implementiert (https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.invgamma.html) [ ^ 1] wurde so konzipiert, dass einer der Parameter nicht manipuliert werden konnte (der Parameter β der Funktion, der im nächsten Abschnitt angezeigt wird, ist auf β = 1 festgelegt: Bitte lassen Sie mich wissen, wenn jemand den Grund kennt). Ich habe es nach dem Training geschafft (beide in Python und Qiita) (einschließlich Memorandum).

Was ist eine inverse Gammafunktion?

Die inverse Gammafunktion ist eine kontinuierliche Wahrscheinlichkeitsverteilung, die in der folgenden Form ausgedrückt wird.

f(x,α,β) = \frac{β^α}{Γ(α)}x^{-α-1}e^{\frac{-β}{x}}   (x>0)\\
(Jedoch Γ(α) = \int_{0}^{∞}x^{α-1}e^{-x}Gammafunktion dargestellt durch dx)

Ich bin nicht sicher, warum das Invgamma von scipy auf β = 1 festgelegt ist (ich weiß nicht viel über etwas anderes als mein eigenes Feld ...), aber ich verwende MCMC (Markov-Ketten-Monte-Carlo-Methode), um die Verteilung der Normalverteilung vorzuverteilen. Ich habe diesen Artikel dieses Mal geschrieben, weil ich bei der Verwendung andere als β = 1 verwenden möchte. Wenn Sie mehr über MCMC erfahren möchten, lesen Sie bitte @ pynomis Artikel [^ 2].

Ich habe es tatsächlich geschrieben

from scipy import stats
from scipy.special import gamma
import numpy as np

###Wahrscheinlichkeitsdichtefunktion der inversen Gammaverteilung###
class invgamma(stats.rv_continuous):

    def _pdf(self, x,alpha,beta):
        
        px = (beta**alpha)/gamma(alpha)*x**(-alpha-1)*np.exp(-beta/x)
        
        return px

###Abtastung aus der inversen Gammafunktion###
invgamma = invgamma(name="invgamma", a=0.0)    
sample_from_invgamma = invgamma.rvs(size=1, alpha = 1, beta = 1.0) 

So was. (Betriebssystem: Windows10, Python3.7, Entwicklungsumgebung: Es wurde bestätigt, dass Spyder funktioniert, und wenn die Zufallszahl mit β = 1 festgelegt ist, stimmt der Stichprobenwert mit dem Invgamma von scipy überein, sodass ich denke, dass dies wahrscheinlich korrekt ist.)

Zitat

Beim Schreiben dieses Artikels und Codes habe ich auch auf den [Artikel] von @ physics303 verwiesen (https://qiita.com/physics303/items/93626d32dd1d17388610) [^ 3]. Vielen Dank.

Recommended Posts

Ich habe versucht, die inverse Gammafunktion in Python zu implementieren
Ich habe den Stack in Python geschrieben
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
Nehmen Sie die logische Summe von List in Python (Zip-Funktion)
Ich habe versucht, Couseras logistische Regression in Python zu implementieren
[Python] Ich habe versucht, den Funktionsnamen durch den Funktionsnamen zu ersetzen
Ich habe versucht, Robinsons Bayesian Spam Filter mit Python zu implementieren
SimRank in Python implementiert
Ich habe die Methode der kleinsten Quadrate in Python ausprobiert
Shiritori in Python implementiert
Ich habe versucht, Human In The Loop zu implementieren - Teil ① Dashboard -
Ich möchte den Fortschritt in Python anzeigen!
Ich möchte den Dateinamen, die Zeilennummer und den Funktionsnamen in Python 3.4 erhalten
Ich habe versucht, die Suche nach Breitenpriorität mit Python zu implementieren (Warteschlange, selbst erstelltes Zeichnen).
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
Implementierte den Algorithmus von "Algorithm Picture Book" in Python3 (Heap Sort Edition)
Ich möchte R-Datensatz mit Python verwenden
Ich habe einen Vim-ähnlichen Ersetzungsbefehl in Slackbot #Python implementiert
Was bedeutet das letzte () in einer Funktion in Python?
Ich habe Python auf Japanisch geschrieben
Erstellen Sie eine Funktion in Python
Verwenden Sie die Rückruffunktion in Python
Finde Fehler in Python
ntile (Dezil) -Funktion in Python
Über die Aufzählungsfunktion (Python)
Nichtlineare Funktionsmodellierung in Python
Zeichne die Yin-Funktion in Python
Implementierte Supreme Solver in Python 3
Sofortige Funktion (Lüge) in Python
Ich verstehe Python auf Japanisch!
Was ich in Python gelernt habe
Ich habe die Python-Quelle heruntergeladen
In Python3.8 und höher kann der inverse Mod mit der integrierten Funktion pow berechnet werden.
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
Ich habe das in Google Cloud Dataflow vorinstallierte Python-Paket überprüft
Lassen Sie das Gleichungsdiagramm der linearen Funktion in Python zeichnen
Implementierte den Algorithmus von "Algorithm Picture Book" in Python3 (Bubble Sort)
Ich habe versucht, den Chi-Quadrat-Test in Python und Java zu programmieren.
Ich habe versucht, Donald Knuths unvoreingenommenen sequentiellen Berechnungsalgorithmus in Python zu implementieren
Implementierte den Algorithmus von "Algorithm Picture Book" in Python3 (Selective Sort)
Ich habe N-Queen in verschiedenen Sprachen implementiert und die Geschwindigkeit gemessen
Ich habe auch versucht, die Funktionsmonade und die Zustandsmonade mit dem Generator in Python nachzuahmen
Implementieren Sie die Funktion power.prop.test von R in Python
Sortierwarnung in der Funktion pd.concat
Abrufen der arXiv-API in Python
Definition des Funktionsargumenttyps in Python
Ich habe mich im Labyrinth verlaufen
Implementierte Bildsegmentierung in Python (Union-Find)
Inklusive Notation im Argument der Python-Funktion
Python im Browser: Brythons Empfehlung
Speichern Sie die Binärdatei in Python
Klicken Sie in Python auf die Sesami-API
Schreiben Sie die AWS Lambda-Funktion in Python
Ich habe an der ISUCON10-Qualifikationsrunde teilgenommen!
[Python] Ich habe versucht, marginalisiertes Gibbs-Sampling zu implementieren
Messen Sie die Ausführungszeit von Funktionen in Python