- qspec.analyze.linear_monte_carlo ( x , y , sigma_x = None , sigma_y = None , corr = None , optimize_cov = True , n_samples = None , n_accepted = None , optimize_sampling = True , return_samples = False , method = 'py' , report = True , ** kwargs )[source]
Maximum likelihood Monte-Carlo sampling of a straight line through points $\vec{\mu}_i\in\mathbb{R}^2$ with covariances $\mathbf{\Sigma}_i\in\mathbb{R}^{2\times 2}$, assuming $2$-dimensional multivariate normal distributions $\mathcal{N}(\vec{\mu}_i, \mathbf{\Sigma}_i)$. TThis is a wrapper for the more general
linear_nd_monte_carlofunction. The algorithm is described in the supplementary material of [Gebert et al., Phys. Rev. Lett. 115, 053003 (2015)].- Parameters:
-
- xarray_like
The $x$ data.
- yarray_like
The $y$ data.
- sigma_xarray_like | None
The standard deviation $\sigma_x$ of the
xdata.- sigma_yarray_like | None
The standard deviation $\sigma_y$ of the
ydata.- corrarray_like | None
The correlation coefficients $\rho_{xy}$ between the
xandydata.- optimize_covbool
If
True, the origin vector of the straight is optimized to yield the smallest covariances.- n_samplesint_like | None
The number of samples generated for each data point. If
Noneandmethod == "cpp", samples are generated untiln_acceptedsamples get accepted.- n_acceptedint_like | None
The number of samples to be accepted for each data point. Only available if
method == "cpp".- optimize_samplingbool
Whether to optimize the data sampling for acceptance efficiency.
- return_samplesbool
Whether to also return the generated points $\vec{p}_i$ with shape
(n_samples, k ,n).- methodstr
The method to generate the collinear points. Can be one of
{"py", "cpp"}. The"py"version is faster but only allows to specifyn_samples. The"cpp"version is slower but allows to specify bothn_acceptedandn_samples.- reportbool
Whether to print the result of the fit.
- kwargsAny
Additional keyword arguments to be passed to the chosen method.
"py": {},"cpp": {seed: None}.
- Returns:
-
- (popt, pcov, p)Any
The optimized parameters and their covariances. If
return_samples == True, also the generated points $\vec{p}_i$ are returned. The resulting shapes are(2, ),(2, 2)and(n_samples, k, 2).