Note
This is the documentation for the current state of the development branch of Qiskit Experiments. The documentation or APIs here can change prior to being released.
Probability¶
- class Probability(outcome, alpha_prior=0.5, validate=True)[source]¶
Compute the mean probability of a single measurement outcome from counts.
This node returns the mean and standard deviation of a single measurement outcome probability \(p\) estimated from the observed counts. The mean and variance are computed from the posterior Beta distribution \(B(\alpha_0^\prime,\alpha_1^\prime)\) estimated from a Bayesian update of a prior Beta distribution \(B(\alpha_0, \alpha_1)\) given the observed counts.
The mean and variance of the Beta distribution \(B(\alpha_0, \alpha_1)\) are:
\[\text{E}[p] = \frac{\alpha_0}{\alpha_0 + \alpha_1}, \quad \text{Var}[p] = \frac{\text{E}[p] (1 - \text{E}[p])}{\alpha_0 + \alpha_1 + 1}\]Given a prior Beta distribution \(B(\alpha_0, \alpha_1)\), the posterior distribution for the observation of \(F\) counts of a given outcome out of \(N\) total shots is a \(B(\alpha_0^\prime,\alpha_1^\prime):math:\) with
\[\alpha_0^\prime = \alpha_0 + F, \quad \alpha_1^\prime = \alpha_1 + N - F.\]Note
The default value for the prior distribution is Jeffery’s Prior \(\alpha_0 = \alpha_1 = 0.5\) which represents ignorance about the true probability value. Note that for this prior the mean probability estimate from a finite number of counts can never be exactly 0 or 1. The estimated mean and variance are given by
\[\text{E}[p] = \frac{F + 0.5}{N + 1}, \quad \text{Var}[p] = \frac{\text{E}[p] (1 - \text{E}[p])}{N + 2}\]This node will deprecate standard error provided by the previous node.
Initialize a counts to probability data conversion.
- Parameters:
outcome (str) – The bitstring for which to return the probability and variance.
alpha_prior (float | Sequence[float]) – A prior Beta distribution parameter
[alpha0, alpha1]
. If specified as float this will use the same value foralpha0
andalpha1
(Default: 0.5).validate (bool) – If set to False the DataAction will not validate its input.
- Raises:
DataProcessorError – When the dimension of the prior and expected parameter vector do not match.
Methods
- __call__(data)¶
Call the data action of this node on the data.
- Parameters:
data (ndarray) – A numpy array with arbitrary dtype. If the elements are ufloat objects consisting of a nominal value and a standard error, then the error propagation is done automatically.
- Returns:
The processed data.
- Return type:
ndarray