[PYTHON] Ich dachte ein wenig nach, weil Trace Plot von Stan's Parameter schwer zu sehen ist

Einführung

Momentan mache ich Modellierung und Parameterschätzung mit Stan, aber da das Trae-Diagramm zerquetscht und schwer zu sehen ist, gab es eine Möglichkeit, es ein wenig einfacher zu sehen, also werde ich es teilen. (Vielleicht ist es natürlich für diejenigen, die wissen ...) Bitte lassen Sie mich auch wissen, ob es einen besseren Weg gibt.

Umgebung

OS Windows10
Python 3.7.4
PyStan 2.19.1

sofort...

stan_model_ver1.py


import arviz
import pandas as pd

data = pd.read_csv("~~.csv")

dat = {"Im Wörterbuch definiert"}

model = StanModel(file="~~.stan")

fit = model.sampling(data=dat, n_jobs=-1, seed=999, iter=1000,chains=1)

arviz.plot_trace(fit)

So etwas wird mit gezeichnet. stan_Figure_1.png

Es ist jedoch schwer zu erkennen, ob es viele Parameter gibt ...

Deshalb,

stan_model_ver2.py


import arviz
import pandas as pd

data = pd.read_csv("~~.csv")

dat = {"Im Wörterbuch definiert"}

model = StanModel(file="~~.stan")

fit = model.sampling(data=dat, n_jobs=-1, seed=999, iter=1000,chains=1)

'''====Änderung unten ==='''
fit_df = fit.to_dataframe()

index = fit_df["draw"]
lenght = len(fit_df.keys())-7
for i in range(lenght):
    ob = fit_df[fit_df.keys()[i+3]]
    plt.subplots(figsize=(15, 7))
    plt.title(f"{fit_df.keys()[i+3]}")
    plt.subplot(1, 2, 1)
    sns.distplot(ob)
    plt.subplot(1, 2, 2)
    plt.plot(index, ob)
    plt.savefig(f"figure/stan_figure/{fit_df.keys()[i+3]}.png ")
    plt.show()

Wird besorgt.

Es dauert ein wenig, einen Datenrahmen zu erstellen und jeden Parameter einzeln zu visualisieren. Y[1,2].png

Auf diese Weise wird es einfacher, jede Stufe zu sehen.

Bonus?

Wenn es viele Parameter gibt, wird dieser möglicherweise nicht angezeigt, selbst wenn Sie versuchen, den Konvergenzstatus jedes Parameters mit "print (fit.stansummary ())" zu überprüfen. (Besonders unter Berücksichtigung des Zeitreihenmodells) In einem solchen Fall

omake.py


summary_df = fit.stansummary()

file = open('summary_stan.txt', 'w')
string = summary_df
file.write(string)

Wenn Sie es als solche Textdatei speichern, können Sie den Status der Parameter überprüfen, die Sie anzeigen möchten.

Recommended Posts

Ich dachte ein wenig nach, weil Trace Plot von Stan's Parameter schwer zu sehen ist
Ich habe eine Funktion erstellt, um die Bewegung eines zweidimensionalen Arrays (Python) zu sehen.
Ich möchte eine Liste der WebDAV-Dateien im Modul Anfragen anzeigen
Ich dachte darüber nach, warum Python selbst mit dem Gefühl eines Python-Interpreters notwendig ist
Ich habe eine Funktion erstellt, um das Modell von DCGAN zu überprüfen
Ich habe ein wenig versucht, das Verhalten der Zip-Funktion
Verändert TensorFlow das Bild des tiefen Lernens? Was ich dachte, nachdem ich ein wenig berührt hatte
Gibt es ein Geheimnis in der Häufigkeit der Umfangszahlen?
Ich habe versucht, eine Site zu erstellen, mit der die aktualisierten Informationen von Azure einfach angezeigt werden können
Eine Geschichte über das Schreiben von AWS Lambda und ein wenig Abhängigkeit von den Standardwerten von Python-Argumenten
Eine kleine süchtig machende Geschichte mit den Berechtigungen des von expdp angegebenen Verzeichnisses (für Anfänger)
Unter Linux ist der Zeitstempel einer Datei etwas vorbei.
[Einführung in StyleGAN] Ich habe mit "The Life of a Man" ♬ gespielt
Ich möchte eine Liste in der Reihenfolge anderer Listen sortieren
Ich habe versucht, es wiederherzustellen, da die Parametereinstellung für die Oracle-Datenbankinitialisierung fehlgeschlagen ist.
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Ich habe versucht, den Höhenwert von DTM in einem Diagramm anzuzeigen
Ich habe versucht, das Ergebnis des A / B-Tests mit dem Chi-Quadrat-Test zu überprüfen
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Ich habe ein Skript erstellt, um zu überprüfen, ob an der angegebenen Position der JSON-Datei in Python Englisch eingegeben wird.
Ich habe versucht zu bestätigen, ob die unvoreingenommene Schätzung der Standardabweichung wirklich unvoreingenommen ist, indem ich "10.000 Mal Münzen geworfen" habe.
[Python] [Meta] Ist der Python-Typ ein Typ?
Ich habe es geschafft, weil der Brauch, eine Zip mit einem Passwort an eine E-Mail anzuhängen und "Ich werde Ihnen das Passwort separat senden" zu sagen, mühsam ist.
Ich habe ein Tool erstellt, um die Ausführungszeit von cron zu schätzen (+ PyPI-Debüt)
Die Geschichte der IPv6-Adresse, die ich auf ein Minimum beschränken möchte
Beachten Sie die Lösung, da Django nicht mit pip installiert werden konnte
Ich habe einen Appdo-Befehl erstellt, um Befehle im Kontext der App auszuführen
Ich möchte einen Lebenszyklus in der Aufgabendefinition von ECS festlegen
Ich möchte dem Anfang einer WAV-Datei 1 Sekunde lang Stille hinzufügen
Ich habe ein Tool zum automatischen Sichern der Metadaten der Salesforce-Organisation erstellt
Ich habe ein Skript erstellt, das das aktive Fenster mit win32gui von Python aufzeichnet
Ich habe versucht, ein Modell mit dem Beispiel von Amazon SageMaker Autopilot zu erstellen
[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]
So berechnen Sie die Volatilität einer Marke
Ich habe ein wenig über die wachsende API von TensorFlow nachgedacht
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Ich möchte das Erscheinungsbild von zabbix anpassen
Ich habe ein wenig über die Klasse recherchiert
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
Pythons itertools sind ein wenig nützlich zu wissen
Ich habe versucht, mit dem Seq2Seq-Modell von TensorFlow so etwas wie einen Chatbot zu erstellen
Ich habe versucht, das Update von "Werde ein Romanautor" mit "IFTTT" und "Werde ein Romanautor API" zu benachrichtigen.
Ich kann die Uhrenquelle tsc nicht finden! ?? Die Geschichte des Versuchs, einen Kernel-Patch zu schreiben
Ich möchte die Standortinformationen von GTFS Realtime auf Jupyter zeichnen! (Mit Ballon)
Das Konzept der Referenz in Python brach für einen Moment zusammen, also experimentierte ich ein bisschen.
Ich möchte einen Screenshot der Site in Docker mit einer beliebigen Schriftart erstellen
Mit der Docker-Version der Nginx-Einheit war es ein wenig schwierig, eine Flasche zu machen
So überprüfen Sie in Python, ob sich eines der Elemente einer Liste in einer anderen Liste befindet
Mir wurde klar, dass es Unsinn ist, es ohne nachzudenken zu verwenden, weil das Modul praktisch ist
Ich habe einen Befehl gegeben, auf den Start von Django zu warten, bis die Datenbank bereit ist
[Wahrscheinlichkeit] Ich werde erklären, weil das Roboterproblem von Center 2020 Mathematics 1 ・ A interessant war.