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.
OS | Windows10 |
Python | 3.7.4 |
PyStan | 2.19.1 |
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.
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,
De cette façon, il devient plus facile de voir chaque étape.
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.