我正在使用 GetDist 获取 emcee 链的 sigma 区域限制,但是使用 getLatex 或 getMrgeStats 时存在差异,如下图所示
from getdist import plots, MCSamples
import getdist
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('Agg')
import numpy as np
import pandas as pd
import os
dataLinear3= pd.read_csv('Z:/Emcee-txt/NFWN-test-2000/D564-8-NFWN-test-2000.txt', sep=" ", header=None)
samplesLinear3= MCSamples(samples=dataLinear3.values, names = ["c200", "v200", "YD", "df2", "Dinc"], labels = ["c200", "v200", "YD", "df2", "Dinc"])
print(samplesLinear3.getLatex('v200', limit=1))
print(samplesLinear3.getMargeStats())
我得到的结果是这个
WARNING:root:auto bandwidth for v200 very small or failed (h=0.0004953006934052605,N_eff=400000.0). Using fallback (h=0.0007803237654419371)
WARNING:root:auto bandwidth for Dinc very small or failed (h=0.0006469540251945599,N_eff=400000.0). Using fallback (h=0.009704431722802847)
v200 = 29.9^{-2.7}_{-13}
Marginalized limits: 0.68; 0.95; 0.99
parameter mean sddev lower1 upper1 limit1 lower2 upper2 limit2 lower3 upper3 limit3
c200 1.2605402E+01 2.2423513E+00 1.0292438E+01 1.4709819E+01 two 8.0963362E+00 1.6989101E+01 two 7.3041930E+00 1.8964352E+01 two c200
v200 2.9856206E+01 3.5670492E+01 1.6813578E+01 2.7134765E+01 two 1.3669652E+01 5.3057035E+01 two 1.1871684E+01 4.9391966E+02 two v200
YD 5.5495389E-01 1.3104068E-01 4.0381336E-01 6.4856832E-01 two 3.2252391E-01 8.1607559E-01 two 2.9936085E-01 9.9041064E-01 two YD
df2 1.0009295E+00 3.2297285E-02 9.6876908E-01 1.0331987E+00 two 9.3761917E-01 1.0640009E+00 two 9.1721752E-01 1.0839552E+00 two df2
Dinc 1.8242395E-01 7.0756583E+00 -6.8120160E+00 7.1848463E+00 two -1.3650158E+01 1.4244292E+01 two -1.8072633E+01 1.8416404E+01 two Dinc
但是 68% 区域的两个限制都低于 v200 参数给出的平均值,我想知道是否有办法解决给出的警告,即这是否与链本身更相关。