python模块,用于对具有测量误差和内在分散性的数据执行线性回归

bces的Python项目详细描述


版权所有(c)2016 Rodrigo Nemmen

修改、合并、发布、分发、再授权和/或出售本软件的
副本,并允许向其提供本软件的人员这样做,但须满足以下条件:




软件的重要部分。

软件按"原样"提供,不提供任何形式的明示或暗示保证,包括但不限于适销性保证,
适用于特定目的和不侵权。在任何情况下,
作者或版权持有人均不对任何索赔、损害或其他
责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,由软件或
软件的使用或其他交易引起的或与之相关的。//github.com/rsnemmen/bces/archive/1.0.3.tar.gz
描述:具有测量误差和内在散布(bces)的数据的线性回归
====


python模块,用于对x和y都有测量值的(x,y)数据点执行稳健的线性回归误差。

拟合方法是*二元相关误差和内禀散射*(BCE),并遵循[Akritas&Bershady]中给出的描述。1996年,APJ)(http://labs.adsabs.harvard.edu/adsabs/abs/1996apj…470..706a/)。bces回归与普通最小二乘拟合相比的一些优点(引自akritas&bershady 1996):

*它允许两个变量的测量误差
*它允许两个变量的测量误差是相依的
*它允许测量误差的大小取决于测量值
*可以构造其他"对称"线,如平分线和正交回归线。

为了理解如何执行和解释回归结果,请看报纸。

\35;安装


使用"pip":


如果不起作用,可以使用"setup.py"安装bces


您可能需要使用"sudo"运行最后一个命令。

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<测量误差之间的子午线,1d数组

如果您没有理由相信您的测量误差是相关的(通常是这种情况),您可以提供一个零数组作为*cov*:

cov=numpy.zero的输入,如(x)

输出:

*a,b*:线性回归的最佳拟合参数a,b,使得*y=ax+b*。
-*aerr,berr*:a,b中的标准差
-*covab*:a和b之间的协方差(例如,用于绘制置信区间)

-*b*,*aerr*,*berr*和*covab*对应于不同bces行中的一个的结果S:*Y*124;X*,*X*124Y*,比秒Tor和正交,详见下表。请阅读[原始BCES论文](http://labs.adsabs.harvard.edu/adsabs/abs/1996apj…470..706a/)来理解这些不同的行的含义。



e自变量
这种方法是自不一致的,*不要使用这种方法*,参见[Hogg,D.等人。2010年,arxiv:1008.4686(http://labs.adsabs.harvard.edu/adsabs/abs/2010arxiv 1008.4686h/)。|
3正交正交最小二乘法:最小化正交距离的直线。当不清楚哪一个变量应被视为独立变量时,应使用"bcesp",它的运行方式与"bces"相同,并且在多核mac中运行得更快。Hines.

如何使用代码的示例

查看此[Jupyter笔记本](https://github.com/rsnemmen/bces/blob/master/stats%20how to%20bces.ipynb)。它包括一个实用的逐步示例,说明如何使用bces对x和y上不确定的数据进行回归。它还说明了如何绘制拟合的置信区间。

![](./fit.png)


如果您有更多示例的建议,请随意添加。


你的工作和它被出版,你有道德义务引用原始BCES论文:[Akritas,M.G.,&Bershady,M.A.天体物理学杂志,1996,470,706](http://labs.adsabs.harvard.edu/adsabs/abs/1996apj…470..706a/)。我还请你引用[Nemmen,R.等人。*科学*,2012,3381445年](http://labs.adsabs.harvard.edu/adsabs/abs/2012sci…338.1445n/)([bibtex引文信息](http://adsabs.harvard.edu/cgi-bin/nph-bib_u query?bibcode=2012sci…338.1445n&u;data嫒type=bibtex&db嫒u key=ast&;nocookieset=1))作为bces方法应用的示例之一。我花了很多时间写这段代码,确保它的工作和用户友好,所以我希望你引用[我的论文](http://labs.adsabs.harvard.edu/adsabs/abs/2012sci…338.1445n/)作为免费的象征。谢谢!




《其他》


python模块的灵感来自于(更快的)fortran例程[最初编写的akritas等人](http://www.astro.wisc.edu/%7emab/archive/stats/stats.html)。我写它是因为我想要一个更轻便,更容易使用的东西,以牺牲速度。

有关如何(以及如何不)执行线性回归的一般教程,[请阅读本文:Hogg,D.等人。2010年,arxiv:1008.4686(http://labs.adsabs.harvard.edu/adsabs/abs/2010arxiv 1008.4686h/)。特别是,*请不要使用平分线方法*

如果您想绘制适合您的置信区间,请查看[`nmmn`包](https://github.com/rsnemmen/nmmn)(特别是"nmmn.plots.fitconf"和"stats"模块)。


##贝叶斯线性回归

有几种贝叶斯方法可以执行比bces更强大的线性回归,其中一些方法如下所述。

**用于多元线性回归的gibbs取样器:*
[R代码](https://github.com/abmantz/lrgs),[arxiv:1509.00908](http://arxiv.org/abs/1509.00908)。
线性回归在X和Y错误的一般情况下,错误可能是相关的,内在分散的。钍协变量的先验分布是由一个灵活的高斯混合模型来模拟的。这是布兰登·凯利(Brandon Kelly)[(Kelly,B.2007,APJ)](http://labs.adsabs.harvard.edu/adsabs/abs/2007apj…665.1489k/)。
**lira:天文学中线性回归的贝叶斯方法:**[R代码](https://github.com/msereno/lira),[arxiv:1509.05778](http://arxiv.org/abs/1509.05778)
具有异方差和可能相关的测量误差和内在分散性的数据的贝叶斯层次模型。该方法充分考虑了时间演化。关系的斜率、标准化和内在分散性可以随红移而演化。自变量的内禀分布用平均值和标准差随时间变化的混合高斯分布来近似。该方法可以解决被测自变量(一种eddington偏差)中的散射、响应变量中的选择效应(malmquist偏差)以及膝关节形式的偏离线性。

**astroml:天文学的机器学习和数据挖掘。**
[python示例](http://www.astroml.org/book_figures/chapter8/fig_total_least_squares.html)使用astroml对x和y中存在相关误差的数据进行线性拟合。在文献中,这通常被称为总最小二乘法或变量拟合误差。







ubmit a pull request](https://guides.github.com/activities/contributing to open source/)。

*[x]添加使用带有数据的代码的实际示例
*[]加速代码(`numba`)?"F2PY"?。最大的瓶颈是数据引导
*[]实现加权最小二乘(wls)
*[]与astropy合并?
*[x]安装脚本

[访问作者的网页](http://rodrigo nemmen.com/)和/或在Twitter上关注他([@nemmen](http s://twitter.com/nemmen))。



--




版权所有(c)2018,[rodrigo nemmen)(http://rodrigonemmen.com)。
[保留所有权利](http://opensource.org/licenses/bsd-2-clause)。




源代码的重新分发必须保留上述版权声明、本条件列表和以下免责声明。
二进制形式的重新分发必须在文档中复制上述版权声明、本条件列表和以下免责声明本软件由版权所有者和贡献者"按原样"提供,任何明示或默示保证,包括但不限于适销性和特定用途适用性的默示保证否认。在任何情况下,版权持有人或贡献者均不对任何直接、间接、附带、特殊、惩戒性或后果性损害(包括但不限于购买替代货物或服务;使用、数据或利润损失;或业务中断)承担责任,无论该损害是如何造成的。d基于任何责任理论,无论是在合同中,严格责任,或因使用本软件而以任何方式产生的侵权行为(包括疏忽或其他),即使被告知此类损害的可能性。


关键词:统计、拟合、线性回归
平台:未知WBR/>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
google chrome我在哪里可以下载Mac OSX Lion的Java 6?   java管道化hadoop映射减少作业   java避免在使用jsoup解析html时删除空格和换行符   java将arrayList中的元素相互比较   如何创建一个计算一组数字之和的程序(Java)?   java JavaFX 8 JVM在退出后保留   升华文本3升华文本3 Java交互控制台?   JAVAutil。扫描仪和维基百科   java Android在RecyclerView中更新TextClock的时间格式(12/24小时格式)   java集合,如果达到限制,则可以在添加新项之前删除旧项   hex Java将十六进制转换为带符号的8位代码   java如何使用SQL中其他列的数据?   java如何确保返回指定类型的列表?   列出如何在java中声明匿名arraylist?   在JavaSpringBoot中使用RESTXML文件   使用Java在ColdFusion中计算HMACSHA256摘要的加密