Cross-checking logp with scipy


I am new to PyMC3 and trying to check my understanding of logp in the context of Lognormal distribution.

sg_sg_prior = 3
sg_hat = 10
with Model() as model_chk:
sg_chk = Lognormal(‘sg_chk’, mu=0, sigma=sg_sg_prior)
print(model_chk.logp({‘sg_chk_log__’: np.log(sg_hat)})) # -2.3121007168993604
print(lognorm.logpdf(sg_hat, sg_sg_prior)) # -4.614685809893406

If I use non-transformed version:

with Model() as model_chk_no_transf:
sg_chk = Lognormal(‘sg_chk’, mu=0, sigma=sg_sg_prior, transform=None)
print(model_chk_no_transf.logp({‘sg_chk’: sg_hat})) # -4.614685809893406
print(lognorm.logpdf(sg_hat, sg_sg_prior)) # -4.614685809893406

I can match the output. What am I missing? Any help would be super helpful!
Thank you very much

This is expected - transformation is volume preserve so it will likely modify the values if you evaluate at a point, but if you integrate over a range it will then have the same value