├── MANIFEST.in ├── requirements.txt ├── doc ├── data.npz ├── fit.png ├── misc.md └── bces-examples.ipynb ├── setup.cfg ├── .gitignore ├── bces ├── __init__.py └── bces.py ├── setup.py ├── LICENSE ├── tests └── test_bces.py └── README.md /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.md 2 | include LICENSE -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | numpy 2 | scipy 3 | tqdm 4 | numdifftools 5 | nmmn -------------------------------------------------------------------------------- /doc/data.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rsnemmen/BCES/HEAD/doc/data.npz -------------------------------------------------------------------------------- /doc/fit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rsnemmen/BCES/HEAD/doc/fit.png -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [metadata] 2 | description-file = README.md 3 | license_files=LICENSE -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.py[co] 2 | 3 | # Packages 4 | *.egg 5 | *.egg-info 6 | dist 7 | build 8 | eggs 9 | parts 10 | bin 11 | var 12 | sdist 13 | develop-eggs 14 | .installed.cfg 15 | .idea -------------------------------------------------------------------------------- /bces/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | 3 | Python module for performing robust linear regression on (X,Y) data points where 4 | both X and Y have measurement errors. 5 | 6 | The fitting method is the bivariate correlated errors and intrinsic scatter 7 | (BCES) and follows the description given in Akritas, M. G., & Bershady, M. A. 8 | Astrophysical Journal, 1996, 470, 706. 9 | 10 | Author: Rodrigo Nemmen, https://rodrigonemmen.com 11 | """ 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup, find_packages 2 | 3 | with open('README.md') as f: 4 | readme = f.read() 5 | 6 | with open('LICENSE') as f: 7 | license = f.read() 8 | 9 | setup( 10 | name='bces', 11 | version='1.5.1', 12 | description='Python module for performing linear regression for data with measurement errors and intrinsic scatter', 13 | long_description=readme, 14 | long_description_content_type='text/markdown', 15 | author='Rodrigo Nemmen', 16 | author_email='rodrigo.nemmen@iag.usp.br', 17 | url='https://github.com/rsnemmen/BCES', 18 | download_url = 'https://github.com/rsnemmen/BCES/archive/1.5.1.tar.gz', 19 | license=license, 20 | keywords = ['statistics', 'fitting', 'linear-regression','machine-learning'], 21 | packages=find_packages(exclude=('tests', 'docs')) 22 | ) -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Rodrigo Nemmen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /doc/misc.md: -------------------------------------------------------------------------------- 1 | Other information 2 | ================== 3 | 4 | The BCES python package is inspired on the much faster Fortran routine which was [originally written by Akritas et al](http://www.astro.wisc.edu/%7Emab/archive/stats/stats.html). I wrote it because I wanted something more portable and easier to use, trading off speed. 5 | 6 | For a general tutorial on how to—and how not to—perform linear regression, [please read this paper: Hogg, D. et al. 2010, arXiv:1008.4686](http://labs.adsabs.harvard.edu/adsabs/abs/2010arXiv1008.4686H/). In particular, *please refrain from using the bisector method*. 7 | 8 | If you want to plot confidence bands for your fits, have a look at [`nmmn` package](https://github.com/rsnemmen/nmmn) (in particular, modules `nmmn.plots.fitconf` and `stats`). 9 | 10 | 11 | # Bayesian linear regression 12 | 13 | There are a couple of Bayesian approaches to perform linear regression which can be more powerful than BCES, some of which are described below. The advantage of these methods is that they give you posterior distributions on the parameters. Also, some of them handle censored data (i.e. upper limits) while BCES does not. 14 | 15 | **A Gibbs Sampler for Multivariate Linear Regression:** 16 | [R code](https://github.com/abmantz/lrgs), [arXiv:1509.00908](http://arxiv.org/abs/1509.00908). 17 | Linear regression in the fairly general case with errors in X and Y, errors may be correlated, intrinsic scatter. The prior distribution of covariates is modeled by a flexible mixture of Gaussians. This is an extension of the very nice work by Brandon Kelly [(Kelly, B. 2007, ApJ)](http://labs.adsabs.harvard.edu/adsabs/abs/2007ApJ...665.1489K/). 18 | 19 | **LIRA: A Bayesian approach to linear regression in astronomy:** [R code](https://github.com/msereno/lira), [arXiv:1509.05778](http://arxiv.org/abs/1509.05778) 20 | Bayesian hierarchical modelling of data with heteroscedastic and possibly correlated measurement errors and intrinsic scatter. The method fully accounts for time evolution. The slope, the normalization, and the intrinsic scatter of the relation can evolve with the redshift. The intrinsic distribution of the independent variable is approximated using a mixture of Gaussian distributions whose means and standard deviations depend on time. The method can address scatter in the measured independent variable (a kind of Eddington bias), selection effects in the response variable (Malmquist bias), and departure from linearity in form of a knee. 21 | 22 | **AstroML: Machine Learning and Data Mining for Astronomy.** 23 | [Python example](http://www.astroml.org/book_figures/chapter8/fig_total_least_squares.html) of a linear fit to data with correlated errors in x and y using AstroML. In the literature, this is often referred to as total least squares or errors-in-variables fitting. 24 | 25 | -------------------------------------------------------------------------------- /tests/test_bces.py: -------------------------------------------------------------------------------- 1 | """ 2 | Basic unit testing functionality. 3 | """ 4 | import bces.bces as BCES 5 | import numpy as np 6 | 7 | # reads test dataset 8 | data=np.load('doc/data.npz') 9 | xdata=data['x'] 10 | ydata=data['y'] 11 | errx=data['errx'] 12 | erry=data['erry'] 13 | covdata=data['cov'] 14 | 15 | # Correct fit parameters expected for dataset. The parameters in 16 | # ans_pars are such that y=Ax+B: 17 | # 18 | # ans_pars = [ A(y|x), B(y|x), 19 | # A(x|y), B(x|y), 20 | # A(ort), B(ort) ] 21 | # 22 | # i.e., each pair contains the expected result for one of the BCES 23 | # regression methods. 24 | # 25 | ans_pars=np.array([ [0.57955173, 17.88855826], 26 | [0.26053751, 32.70952271], 27 | [0.50709256, 21.25491222] ]) 28 | # covariance matrix 29 | ans_cov=np.array([[ 5.85029731e-04, -2.72808055e-02], 30 | [-2.72808055e-02, 1.27299029e+00]]) 31 | 32 | def test_yx(): 33 | """ 34 | Test BCES Y|X fit without bootstrapping. 35 | """ 36 | # fit 37 | a,b,erra,errb,covab=BCES.bces(xdata,errx,ydata,erry,covdata) 38 | 39 | np.testing.assert_array_almost_equal([ans_pars[0,0],ans_pars[0,1]], np.array([a[0],b[0]])) 40 | 41 | def test_xy(): 42 | """ 43 | Test BCES X|Y fit without bootstrapping. 44 | """ 45 | # fit 46 | a,b,erra,errb,covab=BCES.bces(xdata,errx,ydata,erry,covdata) 47 | 48 | np.testing.assert_array_almost_equal([ans_pars[1,0],ans_pars[1,1]], np.array([a[1],b[1]])) 49 | 50 | def test_ort(): 51 | """ 52 | Test BCES orthogonal fit without bootstrapping. 53 | """ 54 | # fit 55 | a,b,erra,errb,covab=BCES.bces(xdata,errx,ydata,erry,covdata) 56 | 57 | np.testing.assert_array_almost_equal([ans_pars[2,0],ans_pars[2,1]], np.array([a[3],b[3]])) 58 | 59 | def test_yxboot(): 60 | """ 61 | Test BCES Y|X fit with bootstrapping. 62 | """ 63 | # fit 64 | a,b,erra,errb,covab=BCES.bcesp(xdata,errx,ydata,erry,covdata) 65 | 66 | # check if the regression parameters match within 1 decimal 67 | np.testing.assert_array_almost_equal([ans_pars[0,0],ans_pars[0,1]], np.array([a[0],b[0]]),1) 68 | 69 | def test_ortboot(): 70 | """ 71 | Test BCES orthogonal fit with bootstrapping. 72 | """ 73 | # fit 74 | a,b,erra,errb,covab=BCES.bcesp(xdata,errx,ydata,erry,covdata) 75 | 76 | # check if the regression parameters match within 1 decimal 77 | np.testing.assert_array_almost_equal([ans_pars[2,0],ans_pars[2,1]], np.array([a[3],b[3]]),1) 78 | 79 | def test_bootstrap(): 80 | """ 81 | Test if bootstrap is working correctly. 82 | """ 83 | import scipy.stats 84 | 85 | # number of bootstrap samples 86 | nboot=5000 87 | 88 | # bootstrapping procedure 89 | ts=[] # test statistic 90 | for i in range(nboot): 91 | xsim=BCES.bootstrap(xdata) 92 | tsim,asim,psim=scipy.stats.anderson_ksamp([xdata,xsim]) 93 | ts.append(tsim) 94 | 95 | ts=np.array(ts) 96 | 97 | # is the simulated (bootstrapped) dataset consistent with the 98 | # original one? 99 | assert np.median(ts)>> a,b,aerr,berr,covab=bces(x,xerr,y,yerr,cov) 22 | 23 | Output: 24 | 25 | - a,b : best-fit parameters a,b of the linear regression 26 | - aerr,berr : the standard deviations in a,b 27 | - covab : the covariance between a and b (e.g. for plotting confidence bands) 28 | 29 | Arguments: 30 | 31 | - x,y : data 32 | - xerr,yerr: measurement errors affecting x and y 33 | - cov : covariance between the measurement errors 34 | (all are arrays) 35 | """ 36 | # Arrays holding the code main results for each method: 37 | # Elements: 0-Y|X, 1-X|Y, 2-bisector, 3-orthogonal 38 | a,b,avar,bvar,covarxiz,covar_ba=np.zeros(4),np.zeros(4),np.zeros(4),np.zeros(4),np.zeros(4),np.zeros(4) 39 | # Lists holding the xi and zeta arrays for each method above 40 | xi,zeta=[],[] 41 | 42 | # Calculate sigma's for datapoints using length of conf. intervals 43 | sig11var = np.mean( y1err**2 ) 44 | sig22var = np.mean( y2err**2 ) 45 | sig12var = np.mean( cerr ) 46 | 47 | # Covariance of Y1 (X) and Y2 (Y) 48 | covar_y1y2 = np.mean( (y1-y1.mean())*(y2-y2.mean()) ) 49 | 50 | # Compute the regression slopes 51 | a[0] = (covar_y1y2 - sig12var)/(y1.var() - sig11var) # Y|X 52 | a[1] = (y2.var() - sig22var)/(covar_y1y2 - sig12var) # X|Y 53 | a[2] = ( a[0]*a[1] - 1.0 + np.sqrt((1.0 + a[0]**2)*(1.0 + a[1]**2)) ) / (a[0]+a[1]) # bisector 54 | if covar_y1y2<0: 55 | sign = -1. 56 | else: 57 | sign = 1. 58 | a[3] = 0.5*((a[1]-(1./a[0])) + sign*np.sqrt(4.+(a[1]-(1./a[0]))**2)) # orthogonal 59 | 60 | # Compute intercepts 61 | for i in range(4): 62 | b[i]=y2.mean()-a[i]*y1.mean() 63 | 64 | # Set up variables to calculate standard deviations of slope/intercept 65 | xi.append( ( (y1-y1.mean()) * (y2-a[0]*y1-b[0]) + a[0]*y1err**2 ) / (y1.var()-sig11var) ) # Y|X 66 | xi.append( ( (y2-y2.mean()) * (y2-a[1]*y1-b[1]) - y2err**2 ) / covar_y1y2 ) # X|Y 67 | xi.append( xi[0] * (1.+a[1]**2)*a[2] / ((a[0]+a[1])*np.sqrt((1.+a[0]**2)*(1.+a[1]**2))) + xi[1] * (1.+a[0]**2)*a[2] / ((a[0]+a[1])*np.sqrt((1.+a[0]**2)*(1.+a[1]**2))) ) # bisector 68 | xi.append( xi[0] * a[3]/(a[0]**2*np.sqrt(4.+(a[1]-1./a[0])**2)) + xi[1]*a[3]/np.sqrt(4.+(a[1]-1./a[0])**2) ) # orthogonal 69 | for i in range(4): 70 | zeta.append( y2 - a[i]*y1 - y1.mean()*xi[i] ) 71 | 72 | for i in range(4): 73 | # Calculate variance for all a and b 74 | avar[i]=xi[i].var()/xi[i].size 75 | bvar[i]=zeta[i].var()/zeta[i].size 76 | 77 | # Sample covariance obtained from xi and zeta (paragraph after equation 15 in AB96) 78 | covarxiz[i]=np.mean( (xi[i]-xi[i].mean()) * (zeta[i]-zeta[i].mean()) ) 79 | 80 | # Covariance between a and b (equation after eq. 15 in AB96) 81 | covar_ab=covarxiz/y1.size 82 | 83 | return a,b,np.sqrt(avar),np.sqrt(bvar),covar_ab 84 | 85 | 86 | 87 | 88 | def bootstrap(v): 89 | """ 90 | Constructs Monte Carlo simulated data set using the 91 | Bootstrap algorithm. 92 | 93 | Usage: 94 | 95 | >>> bootstrap(x) 96 | 97 | where x is either an array or a list of arrays. If it is a 98 | list, the code returns the corresponding list of bootstrapped 99 | arrays assuming that the same position in these arrays map the 100 | same "physical" object. 101 | """ 102 | if type(v)==list: 103 | vboot=[] # list of boostrapped arrays 104 | n=v[0].size 105 | iran=scipy.stats.randint.rvs(0,n,size=n) # Array of random indexes 106 | for x in v: vboot.append(x[iran]) 107 | else: # if v is an array, not a list of arrays 108 | n=v.size 109 | iran=scipy.stats.randint.rvs(0,n,size=n) # Array of random indexes 110 | vboot=v[iran] 111 | 112 | return vboot 113 | 114 | 115 | 116 | 117 | 118 | 119 | def bcesboot(y1,y1err,y2,y2err,cerr,nsim=10000): 120 | """ 121 | Does the BCES with bootstrapping. 122 | 123 | Usage: 124 | 125 | >>> a,b,aerr,berr,covab=bcesboot(x,xerr,y,yerr,cov,nsim) 126 | 127 | :param x,y: data 128 | :param xerr,yerr: measurement errors affecting x and y 129 | :param cov: covariance between the measurement errors (all are arrays) 130 | :param nsim: number of Monte Carlo simulations (bootstraps) 131 | 132 | :returns: a,b -- best-fit parameters a,b of the linear regression 133 | :returns: aerr,berr -- the standard deviations in a,b 134 | :returns: covab -- the covariance between a and b (e.g. for plotting confidence bands) 135 | 136 | .. note:: this method is definitely not nearly as fast as bces_regress.f. Needs to be optimized. Maybe adapt the fortran routine using f2python? 137 | """ 138 | import tqdm 139 | 140 | print("Bootstrapping progress:") 141 | 142 | """ 143 | My convention for storing the results of the bces code below as 144 | matrixes for processing later are as follow: 145 | 146 | simulation-method y|x x|y bisector orthogonal 147 | sim0 ... 148 | Am = sim1 ... 149 | sim2 ... 150 | sim3 ... 151 | """ 152 | for i in tqdm.tqdm(range(nsim)): 153 | # This is needed for small datasets. With a dataset of e.g. 4 points, 154 | # bootstrapping can generate a mock array with 4 repeated points. This 155 | # will cause an error in the linear regression. 156 | allEquals=True 157 | while allEquals: 158 | [y1sim,y1errsim,y2sim,y2errsim,cerrsim]=bootstrap([y1,y1err,y2,y2err,cerr]) 159 | 160 | allEquals=allEqual(y1sim) 161 | 162 | asim,bsim,errasim,errbsim,covabsim=bces(y1sim,y1errsim,y2sim,y2errsim,cerrsim) 163 | 164 | if i==0: 165 | # Initialize the matrixes 166 | am,bm=asim.copy(),bsim.copy() 167 | else: 168 | am=np.vstack((am,asim)) 169 | bm=np.vstack((bm,bsim)) 170 | 171 | 172 | if True in np.isnan(am): 173 | am,bm=checkNan(am,bm) 174 | 175 | # Bootstrapping results 176 | a=np.array([ am[:,0].mean(),am[:,1].mean(),am[:,2].mean(),am[:,3].mean() ]) 177 | b=np.array([ bm[:,0].mean(),bm[:,1].mean(),bm[:,2].mean(),bm[:,3].mean() ]) 178 | 179 | # Error from unbiased sample variances 180 | erra,errb,covab=np.zeros(4),np.zeros(4),np.zeros(4) 181 | for i in range(4): 182 | erra[i]=np.sqrt( 1./(nsim-1) * ( np.sum(am[:,i]**2)-nsim*(am[:,i].mean())**2 )) 183 | errb[i]=np.sqrt( 1./(nsim-1) * ( np.sum(bm[:,i]**2)-nsim*(bm[:,i].mean())**2 )) 184 | covab[i]=1./(nsim-1) * ( np.sum(am[:,i]*bm[:,i])-nsim*am[:,i].mean()*bm[:,i].mean() ) 185 | 186 | return a,b,erra,errb,covab 187 | 188 | 189 | 190 | def checkNan(am,bm): 191 | """ 192 | Sometimes, if the dataset is very small, the regression parameters in 193 | some instances of the bootstrapped sample may have NaNs i.e. failed 194 | regression (I need to investigate this in more details). 195 | 196 | This method checks to see if there are NaNs in the bootstrapped 197 | fits and remove them from the final sample. 198 | """ 199 | import nmmn.lsd 200 | 201 | idel=nmmn.lsd.findnan(am[:,2]) 202 | print("Bootstrapping error: regression failed in",np.size(idel),"instances. They were removed.") 203 | 204 | return np.delete(am,idel,0),np.delete(bm,idel,0) 205 | 206 | 207 | 208 | def allEqual(x): 209 | """ 210 | Check if all elements in an array are equal. 211 | Returns True if they are all the same. 212 | """ 213 | from itertools import groupby 214 | 215 | g = groupby(x) 216 | 217 | return next(g, True) and not next(g, False) 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | # Methods which make use of parallelization 226 | # =========================================== 227 | 228 | 229 | def ab(x): 230 | """ 231 | This method is the big bottleneck of the parallel BCES code. That's the 232 | reason why I put these calculations in a separate method, in order to 233 | distribute this among the cores. In the original BCES method, this is 234 | inside the main routine. 235 | 236 | Argument: 237 | [y1,y1err,y2,y2err,cerr,nsim] 238 | where nsim is the number of bootstrapping trials sent to each core. 239 | 240 | :returns: am,bm : the matrixes with slope and intercept where each line corresponds to a bootrap trial and each column maps a different BCES method (ort, y|x etc). 241 | 242 | Be very careful and do not use lambda functions when calling this 243 | method and passing it to multiprocessing or ipython.parallel! 244 | I spent >2 hours figuring out why the code was not working until I 245 | realized the reason was the use of lambda functions. 246 | """ 247 | y1,y1err,y2,y2err,cerr,nsim=x[0],x[1],x[2],x[3],x[4],x[5] 248 | 249 | for i in range(int(nsim)): 250 | # This is needed for small datasets. With datasets of 4 points or less, 251 | # bootstrapping can generate a mock array with 4 repeated points. This 252 | # will cause an error in the linear regression. 253 | allEquals=True 254 | while allEquals: 255 | [y1sim,y1errsim,y2sim,y2errsim,cerrsim]=bootstrap([y1,y1err,y2,y2err,cerr]) 256 | 257 | allEquals=allEqual(y1sim) 258 | 259 | asim,bsim,errasim,errbsim,covabsim=bces(y1sim,y1errsim,y2sim,y2errsim,cerrsim) 260 | 261 | if i==0: 262 | # Initialize the matrixes 263 | am,bm=asim.copy(),bsim.copy() 264 | else: 265 | am=np.vstack((am,asim)) 266 | bm=np.vstack((bm,bsim)) 267 | 268 | return am,bm 269 | 270 | 271 | 272 | 273 | 274 | def bcesp(y1,y1err,y2,y2err,cerr,nsim=10000): 275 | """ 276 | Parallel implementation of the BCES with bootstrapping. 277 | Divide the bootstraps equally among the threads (cores) of 278 | the machine. It will automatically detect the number of 279 | cores available. 280 | 281 | Usage: 282 | 283 | >>> a,b,aerr,berr,covab=bcesp(x,xerr,y,yerr,cov,nsim) 284 | 285 | :param x,y: data 286 | :param xerr,yerr: measurement errors affecting x and y 287 | :param cov: covariance between the measurement errors (all are arrays) 288 | :param nsim: number of Monte Carlo simulations (bootstraps) 289 | 290 | :returns: a,b - best-fit parameters a,b of the linear regression 291 | :returns: aerr,berr - the standard deviations in a,b 292 | :returns: covab - the covariance between a and b (e.g. for plotting confidence bands) 293 | 294 | .. seealso:: Check out ~/work/projects/playground/parallel python/bcesp.py for the original, testing, code. I deleted some line from there to make the "production" version. 295 | 296 | * v1 Mar 2012: serial version ported from bces_regress.f. Added covariance output. 297 | * v2 May 3rd 2012: parallel version ported from nemmen.bcesboot. 298 | 299 | .. codeauthor: Rodrigo Nemmen 300 | """ 301 | import time # for benchmarking 302 | import multiprocessing 303 | 304 | print("BCES,", nsim,"trials... ") 305 | tic=time.time() 306 | 307 | # Find out number of cores available 308 | ncores=multiprocessing.cpu_count() 309 | # We will divide the processing into how many parts? 310 | n=2*ncores 311 | 312 | """ 313 | Must create lists that will be distributed among the many 314 | cores with structure 315 | core1 <- [y1,y1err,y2,y2err,cerr,nsim/n] 316 | core2 <- [y1,y1err,y2,y2err,cerr,nsim/n] 317 | etc... 318 | """ 319 | pargs=[] # this is a list of lists! 320 | for i in range(n): 321 | pargs.append([y1,y1err,y2,y2err,cerr,nsim/n]) 322 | 323 | # Initializes the parallel engine 324 | pool = multiprocessing.Pool(processes=ncores) # multiprocessing package 325 | 326 | """ 327 | Each core processes ab(input) 328 | return matrixes Am,Bm with the results of nsim/n 329 | presult[i][0] = Am with nsim/n lines 330 | presult[i][1] = Bm with nsim/n lines 331 | """ 332 | presult=pool.map(ab, pargs) # multiprocessing 333 | pool.close() # close the parallel engine 334 | 335 | # vstack the matrixes processed from all cores 336 | i=0 337 | for m in presult: 338 | if i==0: 339 | # Initialize the matrixes 340 | am,bm=m[0].copy(),m[1].copy() 341 | else: 342 | am=np.vstack((am,m[0])) 343 | bm=np.vstack((bm,m[1])) 344 | i=i+1 345 | 346 | if True in np.isnan(am): 347 | am,bm=checkNan(am,bm) 348 | 349 | # Computes the bootstrapping results on the stacked matrixes 350 | a=np.array([ am[:,0].mean(),am[:,1].mean(),am[:,2].mean(),am[:,3].mean() ]) 351 | b=np.array([ bm[:,0].mean(),bm[:,1].mean(),bm[:,2].mean(),bm[:,3].mean() ]) 352 | 353 | # Error from unbiased sample variances 354 | erra,errb,covab=np.zeros(4),np.zeros(4),np.zeros(4) 355 | for i in range(4): 356 | erra[i]=np.sqrt( 1./(nsim-1) * ( np.sum(am[:,i]**2)-nsim*(am[:,i].mean())**2 )) 357 | errb[i]=np.sqrt( 1./(nsim-1) * ( np.sum(bm[:,i]**2)-nsim*(bm[:,i].mean())**2 )) 358 | covab[i]=1./(nsim-1) * ( np.sum(am[:,i]*bm[:,i])-nsim*am[:,i].mean()*bm[:,i].mean() ) 359 | 360 | print("%f s" % (time.time() - tic)) 361 | 362 | return a,b,erra,errb,covab 363 | 364 | 365 | 366 | -------------------------------------------------------------------------------- /doc/bces-examples.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "Examples of how to use the BCES fitting code\n", 8 | "===================\n", 9 | "\n", 10 | "BCES python module [available on Github](https://github.com/rsnemmen/BCES)." 11 | ] 12 | }, 13 | { 14 | "cell_type": "code", 15 | "execution_count": 1, 16 | "metadata": {}, 17 | "outputs": [], 18 | "source": [ 19 | "%matplotlib inline\n", 20 | "import numpy as np\n", 21 | "import matplotlib.pyplot as plt" 22 | ] 23 | }, 24 | { 25 | "cell_type": "code", 26 | "execution_count": 2, 27 | "metadata": {}, 28 | "outputs": [ 29 | { 30 | "name": "stdout", 31 | "output_type": "stream", 32 | "text": [ 33 | "/Users/nemmen/Dropbox/codes/python/bces/doc\n" 34 | ] 35 | } 36 | ], 37 | "source": [ 38 | "cd '/Users/nemmen/Dropbox/codes/python/bces/doc'" 39 | ] 40 | }, 41 | { 42 | "cell_type": "code", 43 | "execution_count": 3, 44 | "metadata": { 45 | "scrolled": true 46 | }, 47 | "outputs": [], 48 | "source": [ 49 | "import bces.bces as BCES" 50 | ] 51 | }, 52 | { 53 | "cell_type": "markdown", 54 | "metadata": {}, 55 | "source": [ 56 | "# Example 1\n", 57 | "\n", 58 | "In this example, the data contains uncertainties on both $x$ and $y$; no correlation between uncertainties. These are real astronomical data for blazars from [this paper](http://science.sciencemag.org/content/338/6113/1445.full). " 59 | ] 60 | }, 61 | { 62 | "cell_type": "code", 63 | "execution_count": 5, 64 | "metadata": {}, 65 | "outputs": [], 66 | "source": [ 67 | "data=np.load('data.npz')\n", 68 | "xdata=data['x']\n", 69 | "ydata=data['y']\n", 70 | "errx=data['errx']\n", 71 | "erry=data['erry']\n", 72 | "cov=data['cov']" 73 | ] 74 | }, 75 | { 76 | "cell_type": "markdown", 77 | "metadata": {}, 78 | "source": [ 79 | "The regression line is $y = Ax + B$. `covab` is the resulting covariance matrix which can be used to draw confidence regions." 80 | ] 81 | }, 82 | { 83 | "cell_type": "code", 84 | "execution_count": 6, 85 | "metadata": {}, 86 | "outputs": [], 87 | "source": [ 88 | "# number of bootstrapping trials\n", 89 | "nboot=10000" 90 | ] 91 | }, 92 | { 93 | "cell_type": "code", 94 | "execution_count": 7, 95 | "metadata": {}, 96 | "outputs": [ 97 | { 98 | "name": "stdout", 99 | "output_type": "stream", 100 | "text": [ 101 | "BCES, 10000 trials... \n", 102 | "1.401265 s\n", 103 | "CPU times: user 34.4 ms, sys: 60.3 ms, total: 94.7 ms\n", 104 | "Wall time: 1.42 s\n" 105 | ] 106 | } 107 | ], 108 | "source": [ 109 | "%%time\n", 110 | "# Performs the BCES fit in parallel\n", 111 | "a,b,erra,errb,covab=BCES.bcesp(xdata,errx,ydata,erry,cov,nboot)" 112 | ] 113 | }, 114 | { 115 | "cell_type": "markdown", 116 | "metadata": {}, 117 | "source": [ 118 | "## Selecting the fitting method\n", 119 | "\n", 120 | "Select the desired BCES method by setting the variable `bcesMethod`. The available methods are:\n", 121 | "\n", 122 | "| Value | Method | Description |\n", 123 | "|---|---| --- |\n", 124 | "| 0 | $y|x$ | Assumes $x$ as the independent variable |\n", 125 | "| 1 | $x|y$ | Assumes $y$ as the independent variable |\n", 126 | "| 2 | bissector | Line that bisects the $y|x$ and $x|y$. *Do not use this method*, cf. [Hogg, D. et al. 2010, arXiv:1008.4686](http://labs.adsabs.harvard.edu/adsabs/abs/2010arXiv1008.4686H/). |\n", 127 | "| 3 | orthogonal | Orthogonal least squares: line that minimizes orthogonal distances. Should be used when it is not clear which variable should be treated as the independent one |\n", 128 | "\n", 129 | "As usual, please read the [original BCES paper](http://labs.adsabs.harvard.edu/adsabs/abs/1996ApJ...470..706A/) to understand what these different lines mean." 130 | ] 131 | }, 132 | { 133 | "cell_type": "code", 134 | "execution_count": 8, 135 | "metadata": {}, 136 | "outputs": [], 137 | "source": [ 138 | "bcesMethod=0" 139 | ] 140 | }, 141 | { 142 | "cell_type": "code", 143 | "execution_count": 10, 144 | "metadata": { 145 | "scrolled": true 146 | }, 147 | "outputs": [ 148 | { 149 | "data": { 150 | "text/plain": [ 151 | "Text(0, 0.5, '$y$')" 152 | ] 153 | }, 154 | "execution_count": 10, 155 | "metadata": {}, 156 | "output_type": "execute_result" 157 | }, 158 | { 159 | "data": { 160 | "image/png": "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\n", 161 | "text/plain": [ 162 | "
" 163 | ] 164 | }, 165 | "metadata": {}, 166 | "output_type": "display_data" 167 | } 168 | ], 169 | "source": [ 170 | "plt.errorbar(xdata,ydata,xerr=errx,yerr=erry,fmt='o')\n", 171 | "x=np.linspace(xdata.min(),xdata.max())\n", 172 | "plt.plot(x,a[bcesMethod]*x+b[bcesMethod],'-k',label=\"BCES $y|x$\")\n", 173 | "\n", 174 | "plt.legend()\n", 175 | "plt.xlabel('$x$')\n", 176 | "plt.ylabel('$y$')" 177 | ] 178 | }, 179 | { 180 | "cell_type": "markdown", 181 | "metadata": {}, 182 | "source": [ 183 | "## Confidence band\n", 184 | "\n", 185 | "Suppose you want to include in the plot a visual estimate of the uncertainty on the fit. This is called the confidence band. For example, the $3\\sigma$ confidence interval is 99.7% sure to contain the best-fit regression line. Note that this is *not* the same as saying it will contain 99.7% of the data points. For more information, [check this out](http://www.jerrydallal.com/LHSP/slr.htm).\n", 186 | "\n", 187 | "In order to plot the confidence band, you will need to [install the `nmmn` package](https://github.com/rsnemmen/nmmn#installation) and another dependency: \n", 188 | "\n", 189 | " pip install nmmn numdifftools\n", 190 | "\n", 191 | "After installing the package, follow the instructions below to plot the confidence band of your fit.\n", 192 | "\n", 193 | "First we define convenient arrays that encapsulate the fit parameters and their uncertainties—including the covariance." 194 | ] 195 | }, 196 | { 197 | "cell_type": "code", 198 | "execution_count": 11, 199 | "metadata": {}, 200 | "outputs": [], 201 | "source": [ 202 | "# array with best-fit parameters\n", 203 | "fitm=np.array([ a[bcesMethod],b[bcesMethod] ])\t\n", 204 | "# covariance matrix of parameter uncertainties\n", 205 | "covm=np.array([ (erra[bcesMethod]**2,covab[bcesMethod]), (covab[bcesMethod],errb[bcesMethod]**2) ])\t\n", 206 | "\n", 207 | "# convenient function for a line\n", 208 | "def func(x): return x[1]*x[0]+x[2]" 209 | ] 210 | }, 211 | { 212 | "cell_type": "markdown", 213 | "metadata": {}, 214 | "source": [ 215 | "Now we estimate the $3\\sigma$ confidence band using one of the methods in the `nmmn.stats` module. If you want the $1\\sigma$ band instead, just change the 7th argument of `confbandnl` to `0.68`." 216 | ] 217 | }, 218 | { 219 | "cell_type": "code", 220 | "execution_count": 12, 221 | "metadata": { 222 | "scrolled": true 223 | }, 224 | "outputs": [], 225 | "source": [ 226 | "import nmmn.stats\n", 227 | "\n", 228 | "# Gets lower and upper bounds on the confidence band \n", 229 | "lcb,ucb,x=nmmn.stats.confbandnl(xdata,ydata,func,fitm,covm,2,0.997,x)" 230 | ] 231 | }, 232 | { 233 | "cell_type": "markdown", 234 | "metadata": {}, 235 | "source": [ 236 | "Finally, the plot with the confidence band displayed in orange. Even at $3\\sigma$, it is still very narrow for this dataset." 237 | ] 238 | }, 239 | { 240 | "cell_type": "code", 241 | "execution_count": 13, 242 | "metadata": {}, 243 | "outputs": [ 244 | { 245 | "data": { 246 | "text/plain": [ 247 | "Text(0.5, 1.0, 'Data, fit and confidence band')" 248 | ] 249 | }, 250 | "execution_count": 13, 251 | "metadata": {}, 252 | "output_type": "execute_result" 253 | }, 254 | { 255 | "data": { 256 | "image/png": "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7Wvl3D5L10mlUqGiogI+PobTSeVyua43sDaw5fMUFhYGQDNR+PDhw3jjjTfc2lZzGNCYEBISguTkZINtQUFBiIiIQHJyMoqKijBv3jwMGzYMcXFxuHbtGj788EP89ddfeOCBByRqtftZuk4AEBERYbDfz88PsbGxaN68udvaKTVL16mwsBCzZ8/GqFGjEBcXh/Pnz+PVV19FZGQkRowYIVGr3c+az9PLL7+Mf/zjH+jRowd69+6NtLQ0bNq0Cbt375agxdKw5joBQH5+PtatW4d33nnH3U30CNZcp549e+Lll19GQEAA4uPjsWfPHnz22WdYvHixFE2WhDXXad26dYiKikLDhg1x7NgxTJ48Gffddx8GDBggRZONYkBjJ7lcjlOnTuHTTz/F1atXERERgY4dO2Lfvn21fiUP2U4ul+PYsWP47LPPcPPmTcTFxaF379746quvEBISInXzPMqIESOwbNkyLFiwAP/85z/RvHlzrF+/vtZN4rTG2rVrIYTAQw89JHVTPNbatWsxffp0jBkzBtevX0d8fDzmzZuHCRMmSN00j5KVlYUXXngBOTk5iIuLw6OPPooZM2ZI3SwDMiGEkLoRRERERI5gHhoiIiLyegxoiIiIyOsxoCEiIiKvx4CGiIiIvB4DGiIiIvJ6DGiIiIjI6zGgISIiIq/HgIaIiIi8HgMaIiIi8noMaIiIiMjrMaAhIq/05ZdfQqlU4u+//9Zte/LJJ9GqVSvk5eVJ2DIikgJrORGRVxJCoE2bNujevTs++OADzJkzBx9//DF+/vln1K9fX+rmEZGbsdo2EXklmUyGefPm4f7770e9evXw7rvvYt++fQxmiGop9tAQkVdr164dTpw4ge3bt6Nnz55SN4eIJMI5NETktbZt24ZTp05BpVIhJiZG6uYQkYTYQ0NEXikjIwO9evXCv//9b6xduxaBgYFYt26d1M0iIolwDg0ReZ3z589j8ODBeOWVV/DII48gKSkJHTt2xJEjR9C+fXupm0dEEmAPDRF5levXr6Nr167o0aMHPvroI9324cOHo6ysDGlpaRK2joikwoCGiIiIvB4nBRMREZHXY0BDREREXo8BDREREXk9BjRERETk9RjQEBERkddjQENERERejwENEREReT0GNEREROT1GNAQERGR12NAQ0RERF6PAQ0RERF5PQY0RERE5PX+Hy/v1kggwsLDAAAAAElFTkSuQmCC\n", 257 | "text/plain": [ 258 | "
" 259 | ] 260 | }, 261 | "metadata": {}, 262 | "output_type": "display_data" 263 | } 264 | ], 265 | "source": [ 266 | "plt.errorbar(xdata,ydata,xerr=errx,yerr=erry,fmt='o')\n", 267 | "plt.plot(x,a[bcesMethod]*x+b[bcesMethod],'-k',label=\"BCES $y|x$\")\n", 268 | "plt.fill_between(x, lcb, ucb, alpha=0.3, facecolor='orange')\n", 269 | "\n", 270 | "plt.legend(loc='best')\n", 271 | "plt.xlabel('$x$')\n", 272 | "plt.ylabel('$y$')\n", 273 | "plt.title(\"Data, fit and confidence band\")" 274 | ] 275 | }, 276 | { 277 | "cell_type": "markdown", 278 | "metadata": {}, 279 | "source": [ 280 | "# Example 2\n", 281 | "\n", 282 | "Fake data with random uncertainties in $x$ and $y$" 283 | ] 284 | }, 285 | { 286 | "cell_type": "markdown", 287 | "metadata": {}, 288 | "source": [ 289 | "Prepares fake data" 290 | ] 291 | }, 292 | { 293 | "cell_type": "code", 294 | "execution_count": 14, 295 | "metadata": {}, 296 | "outputs": [], 297 | "source": [ 298 | "x=np.arange(1,20)\n", 299 | "y=3*x + 4\n", 300 | "\n", 301 | "xer=np.sqrt((x- np.random.normal(x))**2)\n", 302 | "yer=np.sqrt((y- np.random.normal(y))**2)\n", 303 | "\n", 304 | "y=np.random.normal(y)\n", 305 | "x=np.random.normal(x)" 306 | ] 307 | }, 308 | { 309 | "cell_type": "code", 310 | "execution_count": 15, 311 | "metadata": {}, 312 | "outputs": [], 313 | "source": [ 314 | "# simple linear regression\n", 315 | "(aa,bb)=np.polyfit(x,y,deg=1)\n", 316 | "yfit=x*aa+bb" 317 | ] 318 | }, 319 | { 320 | "cell_type": "code", 321 | "execution_count": 16, 322 | "metadata": { 323 | "scrolled": true 324 | }, 325 | "outputs": [ 326 | { 327 | "name": "stdout", 328 | "output_type": "stream", 329 | "text": [ 330 | "BCES, 10000 trials... \n", 331 | "1.311906 s\n" 332 | ] 333 | } 334 | ], 335 | "source": [ 336 | "# BCES fit\n", 337 | "cov=np.zeros(len(x)) # no correlation between error measurements\n", 338 | "nboot=10000 # number of bootstrapping trials\n", 339 | "a,b,aerr,berr,covab=BCES.bcesp(x,xer,y,yer,cov,nboot)" 340 | ] 341 | }, 342 | { 343 | "cell_type": "markdown", 344 | "metadata": {}, 345 | "source": [ 346 | "The integer corresponds to the desired BCES method for plotting (3-ort, 0-y|x, 1-x|y, *don't use bissector*)" 347 | ] 348 | }, 349 | { 350 | "cell_type": "code", 351 | "execution_count": 17, 352 | "metadata": {}, 353 | "outputs": [], 354 | "source": [ 355 | "bcesMethod=3\n", 356 | "ybces=a[bcesMethod]*x+b[bcesMethod]" 357 | ] 358 | }, 359 | { 360 | "cell_type": "code", 361 | "execution_count": 18, 362 | "metadata": { 363 | "scrolled": false 364 | }, 365 | "outputs": [ 366 | { 367 | "data": { 368 | "text/plain": [ 369 | "Text(0, 0.5, '$y$')" 370 | ] 371 | }, 372 | "execution_count": 18, 373 | "metadata": {}, 374 | "output_type": "execute_result" 375 | }, 376 | { 377 | "data": { 378 | "image/png": "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okaNGo5tjx07RlBQELfccguenp5Ur16dFi1a5HpM3333Hb/99hvR0dGEhoYC8N5771G/fn2ioqJo3rw5AHa7nUWLFuHn5+c49u+//16BRkSkgBRocuPpk91a4oz3LaC77rqLnj17smHDBn755RdWrlzJjBkzePvttxk6dGie2/078AQGBgLQsGHDHMsu3CfoghtuuCHHTMqtW7fm3LlzxMTE5PiiB9i+fTuGYVCnTp0cy9PT0y97a4lmzZrleL5t2zaioqJyfKnbbDbS0tJISUlh//79hIaG5hgrlFew+Pe+T548SUxMDPfffz8PPvigY3lWVhZWqxXI7mrr0qULdevWpXv37vTq1YuuXbsC0LdvX+bMmUOtWrXo3r07t956K71798bD49KP0759+wgNDXWEGYCIiAjKly/Pvn37HIGmZs2ajjAD2fdouvg8iIjkZe+kbgVed0t0AkMXRl12vUXDmtMirOK1lFWsSkSgOX78OGPGjOHbb78lNTWVOnXq8M4779C0aVMgu9l+4sSJzJ8/nzNnztCyZUtef/116tevXzQFmUwF6vpxNovFQpcuXejSpQvjx4/ngQceIDIyMt9A8+/BsBdmm714md1uL9D75zZbrd1ux93dnW3btl1yj6Fy5crlu7+Lrwyy2+1MnDgxR8vKBRaLBcMwCjxj7r/3feH4FixYQMuWLXOsd6HmJk2aEB0dzbfffst3331Hv379uOWWW/j0008JDQ1l//79rFmzhu+++45HHnmEl156ifXr118y2DivGi9efvF2V3IeRER8vAr+dd4+vArBVkuOq5v+zQQEWS20D6+Cu5vrzEru9EBz5swZ2rZty0033cS3335LQEAAhw4donz58o51ZsyYwezZs1m0aBF16tRh8uTJdOnShf379+f4rbasi4iIKJJ5Z3799VdSU1MdN0XctGkT5cqVo1q1apes27hxY2w2G/Hx8bRv3/6a3rdJkybs37+f2rVr5/p6vXr1OHbsGCdOnHC0NkVFXf63jsDAQKpWrcrhw4e5995781zP39+f/v37079/f/7zn//QvXt3EhISqFixIt7e3tx2223cdtttPProo9SrV49du3bRpEmTHPuIiIjg2LFjxMTEOFpp9u7dS2JiItdff31B/ylERAqNzcikQd3fid1yoYX9n9By4W+RvSNcKsxACQg006dPJzQ0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gMTExEI7HsMwyMrKKrT9iYiUJjvjd9L3y778dPwnzO5mJlXtxm0bd3HCbuXiMHOBAcQmprElOqFYa3UGBRoXZjabCQoKIigoiBtvvJExY8YQExPDyZMnAfj44495//33+eCDD3jmmWdo3rw5NWvWpE+fPqxdu5abbrrJsS8PDw/Hvi48KleuDMDevXs5fPgwb7zxBq1ataJGjRq0bduWF198kebNm+dZX3p6Ok888QQBAQFYLBbatWtHVFSU4/V169ZhMplYtWoVzZo1w2w289577zFx4kR+/fVXR0vRvyf3O3XqFHfccQc+Pj6Eh4ezYsWKHO+5fv16WrRogdlsJjg4mLFjx+YIScnJydx77734+voSHBzMyy+/TKdOnRgxYoRjnTNnzjB48GAqVKiAj48PPXr04ODBg47XFy1aRPny5Vm1ahXXX3895cqVc4TLC6KioujSpQuVK1fGarXSsWNHtm/fXsAzKyLyD8MwWLxnMcNWDuNEyglq+oXyvldt7vhpAfG2gt2yID45rYirdD4FmlwYhkFKZkqxP67lCvpz587x/vvvU7t2bcddn99//33q1q1Lnz59LlnfZDJhtVoLtO8qVarg5ubGp59+is1mK3BNo0eP5rPPPmPx4sVs376d2rVr061bNxISEi5Zb+rUqezbt4+uXbsyatSoHC1G/fv3d6w7ceJE+vXrx2+//catt97Kvffe69jf8ePHufXWW2nevDm//vor8+bN45133mHy5MmO7UeOHMnPP//MihUrWLNmDRs2bLgkaAwdOpStW7eyYsUKfvnlFwzD4NZbbyUzM9OxTkpKCjNnzuS9997jxx9/5NixYzz11FOO15OTkxkyZAgbNmxg06ZNhIeHc+utt5KcnFzgfz8RkcT0RJ784Ulmbp1JlpFFj8BWfBhznLp7vwWTOwFNby/QfgL8Sv/0DrrKKRepWam0XNry8isWss0DNuPjWfAbhH311VeUK1cOgPPnzxMcHMxXX32Fm1t2Tj148CB169Yt0L527drl2NcFd999N2+//TZVq1bl1VdfZfTo0UycOJFmzZpx0003ce+991KrVq1c93f+/HnmzZvHokWL6NGjBwALFixgzZo1vPPOOzz99NOOdSdNmkSXLl0cz8uVK+doMbrY0KFDueeeewCYMmUKr732Glu2bKF79+688cYbhIaGMnfuXMcY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vvlmnvvp16+f0b179xzLunXrZtx9992FXvOVuvgYc7NlyxYDMI4ePZrnOgsXLjSsVmvhFldIcjvGIUOGGH369Lmi/bj6eezTp4/RuXPnfNcpyefRMC79vijJn8ky3UKTkZHBtm3b6Nq1a47lXbt2ZePGjblu88svv1yyfrdu3di6dSuZmZlFVmthSkxMBKBixYqXXbdx48YEBwdz880388MPPxR1adfk4MGDhISEEBYWxt13383hw4fzXNfVz2NGRgZLlizhvvvuu+wNV13pHF4sOjqauLi4HOfKbDbTsWPHPD+jkPf5zW+bkiQxMRGTyUT58uXzXe/cuXPUqFGDatWq0atXL3bs2FE8BV6ldevWERAQQJ06dXjwwQeJj4/Pd31XPo8nTpzg66+/5v7777/suiX5PF78fVGSP5NlOtCcOnUKm81GYGBgjuWBgYHExcXluk1cXFyu62dlZXHq1Kkiq7WwGIbByJEjadeuHQ0aNMhzveDgYObPn89nn33GsmXLqFu3LjfffDM//vhjMVZbcC1btuT//u//WLVqFQsWLCAuLo42bdpw+vTpXNd39fP4+eefc/bsWYYOHZrnOq52DnNz4XN4JZ/RC9td6TYlRVpaGmPHjmXAgAH53uivXr16LFq0iBUrVvDBBx9gsVho27YtBw8eLMZqC65Hjx68//77rF27llmzZhEVFUXnzp1JT0/PcxtXPo+LFy/Gz8+PO++8M9/1SvJ5zO37oiR/JsvE3bYv5+LfcA3DyPe33tzWz215SfTYY4/x22+/8dNPP+W7Xt26dalbt67jeevWrYmJiWHmzJl06NChqMu8Yj169HD8vWHDhrRu3ZrrrruOxYsXM3LkyFy3ceXz+M4779CjRw9CQkLyXMfVzmF+rvQzerXbOFtmZiZ33303drudN954I991W7VqlWNQbdu2bWnSpAmvvfYar776alGXesX69+/v+HuDBg1o1qwZNWrU4Ouvv873S98VzyPAu+++y7333nvZsTAl+Tzm931REj+TZbqFpnLlyri7u1+SEOPj4y9JkhcEBQXlur6HhweVKlUqsloLw+OPP86KFSv44YcfqFat2hVv36pVqxLxW0NB+Pr60rBhwzzrdeXzePToUb777jseeOCBK97Wlc4h4LhS7Uo+oxe2u9JtnC0zM5N+/foRHR3NmjVr8m2dyY2bmxvNmzd3mfMbHBxMjRo18q3XFc8jwIYNG9i/f/9VfUZLynnM6/uiJH8my3Sg8fLyomnTpo6rRS5Ys2YNbdq0yXWb1q1bX7L+6tWradasGZ6enkVW67UwDIPHHnuMZcuWsXbtWsLCwq5qPzt27CA4OLiQqysa6enp7Nu3L896XfE8XrBw4UICAgLo2bPnFW/rSucQICwsjKCgoBznKiMjg/Xr1+f5GYW8z29+2zjThTBz8OBBvvvuu6sK1YZhsHPnTpc5v6dPnyYmJibfel3tPF7wzjvv0LRpU2644YYr3tbZ5/Fy3xcl+jNZaMOLXdSHH35oeHp6Gu+8846xd+9eY8SIEYavr69x5MgRwzAMY+zYscagQYMc6x8+fNjw8fEx/ve//xl79+413nnnHcPT09P49NNPnXUIlzV8+HDDarUa69atM2JjYx2PlJQUxzoXH+fLL79sLF++3Dhw4ICxe/duY+zYsQZgfPbZZ844hMsaNWqUsW7dOuPw4cPGpk2bjF69ehl+fn6l6jwahmHYbDajevXqxpgxYy55zVXPYXJysrFjxw5jx44dBmDMnj3b2LFjh+MKn2nTphlWq9VYtmyZsWvXLuOee+4xgoODjaSkJMc+Bg0alOPKxJ9//tlwd3c3pk2bZuzbt8+YNm2a4eHhYWzatKnYj88w8j/GzMxM47bbbjOqVatm7Ny5M8dnND093bGPi49xwoQJxsqVK41Dhw4ZO3bsMIYNG2Z4eHgYmzdvdsYh5nuMycnJxqhRo4yNGzca0dHRxg8//GC0bt3aqFq1aqk5jxckJiYaPj4+xrx583LdR0k/jwX5viipn8kyH2gMwzBef/11o0aNGoaXl5fRpEmTHJczDxkyxOjYsWOO9detW2c0btzY8PLyMmrWrJnnD25JAeT6WLhwoWOdi49z+vTpxnXXXWdYLBajQoUKRrt27Yyvv/66+IsvoP79+xvBwcGGp6enERISYtx5553Gnj17HK+XhvNoGIaxatUqAzD2799/yWuueg4vXF5+8WPIkCGGYWRfJhoZGWkEBQUZZrPZ6NChg7Fr164c++jYsaNj/Qs++eQTo27duoanp6dRr149pwa5/I4xOjo6z8/oDz/84NjHxcc4YsQIo3r16oaXl5dRpUoVo2vXrsbGjRuL/+D+lt8xpqSkGF27djWqVKlieHp6GtWrVzeGDBliHDt2LMc+XPk8XvDWW28Z3t7extmzZ3PdR0k/jwX5viipn0nT3wcgIiIi4rLK9BgaERERKR0UaERERMTlKdCIiIiIy1OgEREREZenQCMiIiIuT4FGREREXJ4CjYiIiLg8BRoRERFxeQo0IiIi4vIUaERERMTlKdCIiIiIy1OgERGX9MEHH2CxWDh+/Lhj2QMPPECjRo1ITEx0YmUi4gy6OaWIuCTDMLjxxhtp3749c+fOZeLEibz99tts2rSJqlWrOrs8ESlmHs4uQETkaphMJl588UX+85//EBISwiuvvMKGDRsUZkTKKLXQiIhLa9KkCXv27GH16tV07NjR2eWIiJNoDI2IuKxVq1bx+++/Y7PZCAwMdHY5IuJEaqEREZe0fft2OnXqxOuvv86HH36Ij48Pn3zyibPLEhEn0RgaEXE5R44coWfPnowdO5ZBgwYRERFB8+bN2bZtG02bNnV2eSLiBGqhERGXkpCQQNu2benQoQNvvfWWY3mfPn1IT09n5cqVTqxORJxFgUZERERcngYFi4iIiMtToBERERGXp0AjIiIiLk+BRkRERFyeAo2IiIi4PAUaERERcXkKNCIiIuLyFGhERETE5SnQiIiIiMtToBERERGXp0AjIiIiLu//AQXcH2FD+T5zAAAAAElFTkSuQmCC\n", 379 | "text/plain": [ 380 | "
" 381 | ] 382 | }, 383 | "metadata": {}, 384 | "output_type": "display_data" 385 | } 386 | ], 387 | "source": [ 388 | "plt.errorbar(x,y,xer,yer,fmt='o',ls='None')\n", 389 | "plt.plot(x,yfit,label='Simple regression')\n", 390 | "plt.plot(x,ybces,label='BCES orthogonal')\n", 391 | "\n", 392 | "plt.legend()\n", 393 | "plt.xlabel('$x$')\n", 394 | "plt.ylabel('$y$')" 395 | ] 396 | }, 397 | { 398 | "cell_type": "markdown", 399 | "metadata": {}, 400 | "source": [ 401 | "## Confidence band\n", 402 | "\n", 403 | "Again, make sure you install the [`nmmn`](https://github.com/rsnemmen/nmmn#installation) package before proceeding." 404 | ] 405 | }, 406 | { 407 | "cell_type": "code", 408 | "execution_count": 21, 409 | "metadata": {}, 410 | "outputs": [], 411 | "source": [ 412 | "# array with best-fit parameters\n", 413 | "fitm=np.array([ a[bcesMethod],b[bcesMethod] ])\t\n", 414 | "# covariance matrix of parameter uncertainties\n", 415 | "covm=np.array([ (aerr[bcesMethod]**2,covab[bcesMethod]), (covab[bcesMethod],berr[bcesMethod]**2) ])\t" 416 | ] 417 | }, 418 | { 419 | "cell_type": "markdown", 420 | "metadata": {}, 421 | "source": [ 422 | "Now we estimate the $2\\sigma$ confidence band using one of the methods in the `nmmn.stats` module." 423 | ] 424 | }, 425 | { 426 | "cell_type": "code", 427 | "execution_count": 22, 428 | "metadata": { 429 | "scrolled": true 430 | }, 431 | "outputs": [], 432 | "source": [ 433 | "# Gets lower and upper bounds on the confidence band \n", 434 | "lcb,ucb,xcb=nmmn.stats.confbandnl(x,y,func,fitm,covm,2,0.954,x)" 435 | ] 436 | }, 437 | { 438 | "cell_type": "markdown", 439 | "metadata": {}, 440 | "source": [ 441 | "Finally, the plot where the confidence band is displayed in orange. As you can see, it is very narrow." 442 | ] 443 | }, 444 | { 445 | "cell_type": "code", 446 | "execution_count": 23, 447 | "metadata": {}, 448 | "outputs": [ 449 | { 450 | "data": { 451 | "text/plain": [ 452 | "Text(0.5, 1.0, 'Data, fit and confidence band')" 453 | ] 454 | }, 455 | "execution_count": 23, 456 | "metadata": {}, 457 | "output_type": "execute_result" 458 | }, 459 | { 460 | "data": { 461 | "image/png": "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\n", 462 | "text/plain": [ 463 | "
" 464 | ] 465 | }, 466 | "metadata": {}, 467 | "output_type": "display_data" 468 | } 469 | ], 470 | "source": [ 471 | "plt.errorbar(x,y,xerr=xer,yerr=yer,fmt='o')\n", 472 | "plt.plot(xcb,a[bcesMethod]*xcb+b[bcesMethod],'-k',label=\"BCES orthogonal\")\n", 473 | "plt.fill_between(xcb, lcb, ucb, alpha=0.3, facecolor='orange')\n", 474 | "\n", 475 | "plt.legend(loc='best')\n", 476 | "plt.xlabel('$x$')\n", 477 | "plt.ylabel('$y$')\n", 478 | "plt.title(\"Data, fit and confidence band\")" 479 | ] 480 | }, 481 | { 482 | "cell_type": "code", 483 | "execution_count": null, 484 | "metadata": {}, 485 | "outputs": [], 486 | "source": [] 487 | } 488 | ], 489 | "metadata": { 490 | "anaconda-cloud": {}, 491 | "kernelspec": { 492 | "display_name": "Python 3 (ipykernel)", 493 | "language": "python", 494 | "name": "python3" 495 | }, 496 | "language_info": { 497 | "codemirror_mode": { 498 | "name": "ipython", 499 | "version": 3 500 | }, 501 | "file_extension": ".py", 502 | "mimetype": "text/x-python", 503 | "name": "python", 504 | "nbconvert_exporter": "python", 505 | "pygments_lexer": "ipython3", 506 | "version": "3.9.13" 507 | } 508 | }, 509 | "nbformat": 4, 510 | "nbformat_minor": 1 511 | } 512 | --------------------------------------------------------------------------------