Title: | A Robust Bayesian Meta-Analysis for Estimating the Hubble Constant via Time Delay Cosmography |
---|---|
Description: | We provide a toolbox to conduct a Bayesian meta-analysis for estimating the current expansion rate of the Universe, called the Hubble constant H0, via time delay cosmography. The input data are Fermat potential difference and time delay estimates. For a robust inference, we assume a Student's t error for these inputs. Given these inputs, the meta-analysis produces posterior samples of the model parameters including the Hubble constant via Metropolis-Hastings within Gibbs. The package provides an option to implement repelling-attracting Metropolis-Hastings within Gibbs in a case where the parameter space has multiple modes. |
Authors: | Hyungsuk Tak |
Maintainer: | Hyungsuk Tak <[email protected]> |
License: | GPL-2 |
Version: | 1.0.1 |
Built: | 2024-11-16 02:47:09 UTC |
Source: | https://github.com/cran/h0 |
The R package h0 provides a toolbox to conduct a Bayesian meta-analysis for estimating the current expansion rate of the Universe, called the Hubble constant H0, via time delay cosmography. The input data are (i) estimates of Fermat potential differences and their one-sigma uncertainties (standard errors), and (ii) estimates of time delays and their one-sigma uncertainties. Given these inputs, the meta-analysis draws a posterior sample of the model parameters including the Hubble constant.
Package: | h0 |
Type: | Package |
Version: | 1.0.1 |
Date: | 2023-8-24 |
License: | GPL-2 |
Main functions: | h0
|
Hyungsuk Tak
T. Treu and P. Marshall (2016) <doi:10.1007/s00159-016-0096-8> "Time Delay Cosmography".
The function h0
conducts a Bayesian meta-analysis to infer the current expansion rate of the University (Hubble constant). The analysis is constructed under time delay cosmography. The minimum inputs of the meta-analysis are (1) time delay estimates (TD.est
); (2) their standard errors (TD.se
); (3) Fermat potential difference estimates (FPD.est
); (4) their standard errors (FPD.se
); (5) redshifts of deflectors (lenses) (z.d
); and (6) redshifts of sources (quasars) (z.s
). We note that the length of each input vector must be identical, and the order of input values in each vector must be consistent across all of the vectors. For example, let's say the third input value in one of the input vectors, TD.est
, is a time delay estimate between gravitationally lensed images A and C of a specific quasar. Then the third input value in the other input vectors must be a quantity corresponding to the gravitationally lensed images A and C of that specific quasar.
h0(TD.est, TD.se, FPD.est, FPD.se, z.d, z.s, multimodal = FALSE, h0.bound = c(0, 150), h0.scale = 10, omega.bound = c(0.05, 0.5), initial.param, sample.size, burnin.size)
h0(TD.est, TD.se, FPD.est, FPD.se, z.d, z.s, multimodal = FALSE, h0.bound = c(0, 150), h0.scale = 10, omega.bound = c(0.05, 0.5), initial.param, sample.size, burnin.size)
TD.est |
A vector for time delay estimates (in days). For example, if a data set contained three time delay estimates of a quad-lens system and one time delay estimate of a double-lens system, then this vector would be composed of the three time delay estimates from the quad and one time delay estimate from the double. |
TD.se |
A vector for standard errors (one-sigma uncertainties) of the time delay estimates. For example, if a data set contained three time delay estimates of a quad-lens system and one time delay estimate of a double-lens system, then this vector would be composed of the three standard errors corresponding to the first three time delay estimates from the quad and one standard error corresponding to the single time delay estimate from the double. |
FPD.est |
A vector for Fermat potential difference estimates. For example, if a data set contained three Fermat potential difference estimates of a quad-lens system and one Fermat potential difference estimate of a double-lens system, then this vector would be composed of the three Fermat potential difference estimates from the quad and one Fermat potential difference estimate from the double. |
FPD.se |
A vector for standard errors (one-sigma uncertainties) of the Fermat potential difference estimates. For example, if a data set contained three Fermat potential difference estimates of a quad-lens system and one Fermat potential difference estimate of a double-lens system, then this vector would be composed of the three standard errors corresponding to the first three Fermat potential difference estimates from the quad and one standard error corresponding to the single Fermat potential difference estimate from the double. |
z.d |
A vector for redshifts of deflectors (lenses). For example, if a data set contained three time delay estimates of a quad-lens system and one time delay estimate of a double-lens system, then users need to fill out the first three spots of this vector by the same redshift of the quad-lens, and fill out the last spot by the redshift of the double-lens. |
z.s |
A vector for redshifts of sources (quasars). For example, if a data set contained three time delay estimates of a quad-lens system and one time delay estimate of a double-lens system, then users need to fill out the first three spots of this vector by the same redshift of the quadruply lensed quasar, and fill out the last spot by the redshift of the doubly-lensed quasar. |
multimodal |
If "TRUE", the sampling method switches from Metropolis-Hastings within Gibbs to repelling-attracting Metropolis-Hastings within Gibbs to enhance the convergence of Markov chain to a multimodal target distribution. Default is "FALSE". |
h0.bound |
It determins the Uniform prior range for the Hubble constant. Default is to search possible values of the Hubble constant between 0 and 150. Users can set a wider range, if needed. |
h0.scale |
It determins the proposal scale of the Metropolis update for the Hubble constant. Default is 10. Due to the adaptive Markov chain Monte Carlo method adopted in this package, this scale changes at every 100 iterations. If "multimodal = FALSE", then the scale changes to achieve the acceptance rate equal to 0.4. If "multimodal = TRUE", the scale is adapted to achieve the acceptance rate equal to 0.1. |
omega.bound |
It determins the prior range for the current dark matter density. Default is to search possible values of the current dark matter density between 0.05 and 0.5. Users can set a wider range, if needed. |
initial.param |
A vector of (K+2) model parameters, that is, the Hubble constant, the dark matter density, and K external convergences, where K is the number of lens systems in the data set. A reasonable set of values is c(runif(1, 0, 150), runif(1, 0.05, 0.5), rcaucy(K, scale = 0.025)). |
sample.size |
It determines the posterior sample size for each of the model parameters, the Hubble constant, the dark matter density, and K external convergences. |
burnin.size |
It determines the warming-up posterior sample size to be discarded before obtaining the desired sample size. The total number of iterations is the sum of sample.size and burnin.size. |
Time delay cosmography infers the Hubble constant by modeling time delays caused by strong gravitational lensing. The following equation is the basis of time delay cosmography:
where denotes the speed of light, and
is the time delay in days between lensed images
and
of quasar
(
). The notation
indicates a vector for two redshifts of the
-th source (
) and deflector (
). The next notation
indicates a vector for the present-day dark matter density
and dark energy density
. Since their sum becomes one under the flat
CDM model (standard cosmology), we treat
as the only unknown parameter. The notation
denotes the time delay distance in the unit of megaparsec (Mpc), which is a deterministic function of
,
, and
.
In addition, the meta-analysis accounts for the impact of the mass structure in the line of sight between the observer and the lens via external convergences, , where
is the lens index (
). The Hubble constant after accounting for this impact is obtained by
, where
is the Hubble constant without considering the external convergense.
The meta analysis takes advantage of these physical relationships, and returns posterior samples of the model parameters,
, and
's.
The outcomes of h0
are composed of:
A vector. The posterior sample of the Hubble constant.
A vector. The posterior sample of the dark matter density.
A matrix. Each row contains one posterior sample of K external convergences.
A scalar. The acceptance rate of the posterior sample of the Hubble constant.
A scalar. The acceptance rate of the posterior sample of the dark matter density.
A vector. The acceptance rates of the posterior samples of K external convergences.
A scalar. The proposal scale of the Metropolis update when the last ieration is made because it changes at every 100 iterations for adaptive Markov chain Monte Carlo.
Hyungsuk Tak
T. Treu and P. Marshall (2016) <doi:10.1007/s00159-016-0096-8> "Time Delay Cosmography".
##### Suppose we have three time delay estimates of a quad-lens system, ##### and one time delay estimate of a double-lens system. time.delay.est <- c(-101, -91.7, -104.2, -18.8) ##### Each time delay estimate accompanies its one-sigma uncertainty (standard error) time.delay.se <- c(4.4, 4.2, 4.1, 0.9) ##### The redshift of the deflector in the quad-lens system is 0.868, ##### and that in the double-lens system is 0.512. z.d.obs <- c(0.868, 0.868, 0.868, 0.512) ##### The redshift of the source in the quad-lens system is 2.621, ##### and that in the double-lens system is 3.37. z.s.obs <- c(2.621, 2.621, 2.621, 3.37) ##### Three Fermat potential difference estimates are obtained from a quad-lens syatem, ##### and one estimate is from the double-lens system. fermat.diff.est <- c(-0.6395, -0.5734, -0.6431, -0.2625) ##### Each Fermat potential difference estimate accompanies ##### its one-sigma uncertainty (standard error). fermat.diff.se <- c(0.0265, 0.0254, 0.0299, 0.0148) #### Next, we make sure that each vector has the same length. length(z.d.obs); length(z.s.obs); length(fermat.diff.est); length(fermat.diff.se); length(time.delay.est); length(time.delay.se) ##### The following is an example code to obtain 10 posterior samples of the model parameters. initial.values <- c(runif(1, 0, 150), runif(1, 0.05, 0.5), rcauchy(2, scale = 0.025)) res <- h0(TD.est = time.delay.est, TD.se = time.delay.se, FPD.est = fermat.diff.est, FPD.se = fermat.diff.se, z.d = z.d.obs, z.s = z.s.obs, initial.param = initial.values, sample.size = 10, burnin.size = 5)
##### Suppose we have three time delay estimates of a quad-lens system, ##### and one time delay estimate of a double-lens system. time.delay.est <- c(-101, -91.7, -104.2, -18.8) ##### Each time delay estimate accompanies its one-sigma uncertainty (standard error) time.delay.se <- c(4.4, 4.2, 4.1, 0.9) ##### The redshift of the deflector in the quad-lens system is 0.868, ##### and that in the double-lens system is 0.512. z.d.obs <- c(0.868, 0.868, 0.868, 0.512) ##### The redshift of the source in the quad-lens system is 2.621, ##### and that in the double-lens system is 3.37. z.s.obs <- c(2.621, 2.621, 2.621, 3.37) ##### Three Fermat potential difference estimates are obtained from a quad-lens syatem, ##### and one estimate is from the double-lens system. fermat.diff.est <- c(-0.6395, -0.5734, -0.6431, -0.2625) ##### Each Fermat potential difference estimate accompanies ##### its one-sigma uncertainty (standard error). fermat.diff.se <- c(0.0265, 0.0254, 0.0299, 0.0148) #### Next, we make sure that each vector has the same length. length(z.d.obs); length(z.s.obs); length(fermat.diff.est); length(fermat.diff.se); length(time.delay.est); length(time.delay.se) ##### The following is an example code to obtain 10 posterior samples of the model parameters. initial.values <- c(runif(1, 0, 150), runif(1, 0.05, 0.5), rcauchy(2, scale = 0.025)) res <- h0(TD.est = time.delay.est, TD.se = time.delay.se, FPD.est = fermat.diff.est, FPD.se = fermat.diff.se, z.d = z.d.obs, z.s = z.s.obs, initial.param = initial.values, sample.size = 10, burnin.size = 5)