[PYTHON] J'ai réfléchi un peu car Trace Plot du paramètre de stan est difficile à voir

introduction

Actuellement, je fais de la modélisation et de l'estimation des paramètres en utilisant stan, mais comme le tracé de Trae est écrasé et difficile à voir, il y avait un moyen de le rendre un peu plus facile à voir, alors je vais le partager. (C'est peut-être naturel pour ceux qui savent ...) Veuillez également me faire savoir s'il existe un meilleur moyen.

environnement

OS Windows10
Python 3.7.4
PyStan 2.19.1

immédiatement...

stan_model_ver1.py


import arviz
import pandas as pd

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

dat = {"Défini dans le dictionnaire"}

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

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

arviz.plot_trace(fit)

Quelque chose comme ça est dessiné avec. stan_Figure_1.png

Cependant, il est difficile de voir s'il y a beaucoup de paramètres ...

Donc,

stan_model_ver2.py


import arviz
import pandas as pd

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

dat = {"Défini dans le dictionnaire"}

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

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

'''====Changer ci-dessous ==='''
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()

ça ira.

Il faut un peu de temps pour créer un bloc de données et visualiser chaque paramètre un par un, Y[1,2].png

De cette façon, il devient plus facile de voir chaque étape.

prime?

S'il y a beaucoup de paramètres, même si vous essayez de vérifier l'état de convergence de chaque paramètre en exécutant print (fit.stansummary ()), il peut ne pas être possible de tous les afficher. (Surtout compte tenu du modèle de série chronologique) Dans ce cas

omake.py


summary_df = fit.stansummary()

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

Si vous l'enregistrez en tant que fichier texte comme celui-ci, vous pouvez vérifier l'état des paramètres que vous souhaitez voir.

Recommended Posts

J'ai réfléchi un peu car Trace Plot du paramètre de stan est difficile à voir
J'ai créé une fonction pour voir le mouvement d'un tableau à deux dimensions (Python)
Je souhaite voir une liste de fichiers WebDAV dans le module Requêtes
J'ai réfléchi à la raison pour laquelle Python self est nécessaire avec le sentiment d'un interpréteur Python
J'ai fait une fonction pour vérifier le modèle de DCGAN
J'ai essayé un peu le comportement de la fonction zip
TensorFlow change-t-il l'image de l'apprentissage profond? Ce que j'ai pensé après avoir touché un peu
Y a-t-il un secret dans la fréquence des nombres de rapport de circonférence?
J'ai essayé de créer un site qui permet de voir facilement les informations mises à jour d'Azure
Une histoire sur l'écriture d'AWS Lambda et de devenir un peu accro aux valeurs par défaut des arguments Python
Une petite histoire addictive avec les permissions du répertoire spécifié par expdp (pour les débutants)
Sous Linux, l'horodatage d'un fichier est un peu dépassé.
[Introduction à StyleGAN] J'ai joué avec "The Life of a Man" ♬
Je souhaite trier une liste dans l'ordre des autres listes
J'ai essayé de le restaurer car le paramètre d'initialisation de la base de données Oracle a échoué.
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
J'ai essayé d'afficher la valeur d'altitude du DTM dans un graphique
J'ai essayé de vérifier le résultat du test A / B avec le test du chi carré
Python: je souhaite mesurer proprement le temps de traitement d'une fonction
J'ai créé un script pour vérifier si l'anglais est entré dans la position spécifiée du fichier JSON en Python.
J'ai essayé de confirmer si l'estimation impartiale de l'écart-type était vraiment impartiale en "jetant des pièces 10 000 fois"
[python] [meta] Le type de python est-il un type?
J'ai réussi à le faire parce que la coutume de joindre un zip avec un mot de passe à un e-mail et de dire «Je vous enverrai le mot de passe séparément» est gênante.
J'ai fait un outil pour estimer le temps d'exécution de cron (+ débuts de PyPI)
L'histoire de l'adresse IPv6 que je souhaite conserver au minimum
Notez la solution car django n'a pas pu s'installer avec pip
J'ai créé une commande appdo pour exécuter des commandes dans le contexte de l'application
Je souhaite définir un cycle de vie dans la définition de tâche d'ECS
Je veux ajouter du silence pendant 1 seconde au début d'un fichier wav
J'ai créé un outil pour sauvegarder automatiquement les métadonnées de l'organisation Salesforce
J'ai fait un script pour enregistrer la fenêtre active en utilisant win32gui de Python
J'ai essayé de créer un modèle avec l'exemple d'Amazon SageMaker Autopilot
[Introduction aux statistiques] Quel type de distribution est la distribution t, la distribution chi carré et la distribution F? Un petit résumé de l'utilisation de [python]
Comment calculer la volatilité d'une marque
J'ai réfléchi un peu à l'API grandissante de TensorFlow
J'ai essayé de corriger la forme trapézoïdale de l'image
Je souhaite personnaliser l'apparence de zabbix
J'ai fait un peu de recherche sur la classe
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
Les itertools de Python sont un peu utiles à connaître
J'ai essayé de faire quelque chose comme un chatbot avec le modèle Seq2Seq de TensorFlow
J'ai essayé de notifier la mise à jour de "Devenir romancier" en utilisant "IFTTT" et "Devenir un romancier API"
Je ne trouve pas l'horloge tsc! ?? L'histoire d'essayer d'écrire un patch de noyau
Je veux tracer les informations de localisation de GTFS Realtime sur Jupyter! (Avec ballon)
Le concept de référence en Python s'est effondré un instant, j'ai donc expérimenté un peu.
Je souhaite prendre une capture d'écran du site sur Docker en utilisant n'importe quelle police
C'était un peu difficile de faire flacon avec la version docker de nginx-unit
Comment vérifier en Python si l'un des éléments d'une liste est dans une autre liste
Je me suis rendu compte qu'il était absurde de l'utiliser sans réfléchir car le module est pratique
J'ai fait une commande pour attendre que Django démarre jusqu'à ce que la base de données soit prête
[Probabilité] Je vais expliquer parce que le problème du robot de Center 2020 Mathematics 1 · A était intéressant.