小编Tod*_*ddP的帖子

(Python)使用scikits bootstrap估计回归参数置信区间

我刚开始尝试通过scikits提供一个很好的bootstrapping包:https: //github.com/cgevans/scikits-bootstrap

但是我在尝试从线性回归估计相关系数的置信区间时遇到了问题.返回的置信区间完全在原始统计量的范围之外.

这是代码:

import numpy as np
from scipy import stats
import bootstrap as boot

np.random.seed(0)
x     = np.arange(10)
y     = 10 + 1.5*x + 2*np.random.randn(10)
r0    = stats.linregress(x, y)[2]

def my_function(y):
    return stats.linregress(x, y)[2]

ci    = boot.ci(y, statfunction=my_function, alpha=0.05, n_samples=1000, method='pi')
Run Code Online (Sandbox Code Playgroud)

这产生ci = [ - 0.605,0.644]的结果,但原始统计量为r0 = 0.894.

我在R中试过这个并且似乎在那里工作得很好:ci横跨r0如预期的那样.

请帮忙!

python scipy linear-regression scikits

6
推荐指数
1
解决办法
5841
查看次数

PyMC:多个时间序列的观察结果(来自“贝叶斯黑客方法”的文本消息示例的改编)

我正在尝试改编Cameron Davidson-Pilon的贝叶斯黑客方法,第1章“介绍我们的第一把锤子:PyMC”中的文本消息示例, 以处理多种观察结果。下面的解决方案似乎正在工作,但是我对pymc并不陌生,我不确定这是否是处理pymc中多个时间序列观测值的好方法。任何建议将不胜感激!

为了重述贝叶斯黑客方法的文本消息示例,观察结果包括74天的文本消息计数,如下图所示。

在此处输入图片说明

该书使用一个切换点参数(tau)和两个指数参数(lambda1和lambda2)对该过程进行建模,这两个参数分别控制tau前后的泊松分布消息数。对于此示例,pymc使用以下代码产生大约为tau = 45,lambda1 = 18和lambda2 = 23的解决方案,该代码与本书的代码几乎相同:

import numpy as np
import pymc

observation = np.loadtxt( './txtdata.csv' ) #data available at the book's GitHub site
n_days      = observation.size    #number of days
alpha       = 1./20  #assume a mean of 20 messages per day
lambda1     = pymc.Exponential("lambda1", alpha)
lambda2     = pymc.Exponential("lambda2", alpha)
tau         = pymc.DiscreteUniform("tau", lower=0, upper=n_days)

@pymc.deterministic
def lambda_(tau=tau, lambda1=lambda1, lambda2=lambda2):
    a       = np.zeros(n_days)
    a[:tau] = lambda1
    a[tau:] = lambda2
    return a
observation_model  = pymc.Poisson("observation", …
Run Code Online (Sandbox Code Playgroud)

python time-series bayesian pymc probabilistic-programming

5
推荐指数
0
解决办法
510
查看次数

有没有办法找到 2D NumPy 数组中最大列值的唯一行索引?

对于 2D NumPy 数组中的每一列,该列的最大值可以出现多次。我想找到每列最大值的行索引,而不重复行索引

np.argmax这是一个演示为什么不起作用的示例:

import numpy as np

a = np.array([[1, 1, 0],
              [1, 0, 1],
              [0, 0, 1]])

ind = np.argmax(a, axis=0)

print(ind)
Run Code Online (Sandbox Code Playgroud)

输出:

[0 0 2]
Run Code Online (Sandbox Code Playgroud)

我想要结果:[1, 0, 2]对于这个例子。

那是:

  • 第二列的行索引必须为 0
  • 这意味着第一列的行索引必须为 1
  • 这又意味着第三列的行索引必须为 2

一个稍微复杂一点的例子是这个数组:

[0 0 2]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,不存在具有唯一最大值的列。我会对以下任一答案感到满意:

  • [0, 1, 2]
  • [1, 0, 2]

一个更复杂的例子是:

a = np.array([[1, 1, 0],
              [1, 1, 1],
              [0, 0, 1]])
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我会对以下任何答案感到满意:

  • [0, 1, 2]
  • [0, 2, 1]
  • [1, 0, 2]
  • [1, 2, 0] …

arrays numpy multidimensional-array python-3.x argmax

3
推荐指数
1
解决办法
337
查看次数

我应该如何在 PyQt5 的 Table Widgets 中连接 CheckBox 单击信号?

我想将各种小部件添加到表格小部件中的各种单元格,并且我想在这些小部件的值发生更改时触发命令。我可以根据需要将小部件放入表格中,但是我在连接信号时遇到问题,因此我知道哪个小部件生成了信号。

下面是一个简单的例子来解释这个问题,只使用复选框:

屏幕截图:TableWidget、CheckBoxes

from PyQt5 import QtWidgets, QtGui, QtCore


class Main(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        # create table:
        self.table = QtWidgets.QTableWidget()
        [self.table.insertRow(i) for i in [0,1,2]]
        [self.table.insertColumn(i) for i in [0,1]]
        # set values for first column:
        self.table.setItem(0, 0, QtWidgets.QTableWidgetItem('A') )
        self.table.setItem(1, 0, QtWidgets.QTableWidgetItem('B') )
        self.table.setItem(2, 0, QtWidgets.QTableWidgetItem('C') )
        # add checkboxes to second column:
        cb0  = QtWidgets.QCheckBox( parent=self.table )
        cb1  = QtWidgets.QCheckBox( parent=self.table )
        cb2  = QtWidgets.QCheckBox( parent=self.table )
        self.table.setCellWidget(0, 1, cb0)
        self.table.setCellWidget(1, 1, cb1)
        self.table.setCellWidget(2, 1, cb2)
        # connect …
Run Code Online (Sandbox Code Playgroud)

python pyqt qtablewidget python-3.x pyqt5

2
推荐指数
1
解决办法
4969
查看次数

Enthought Canopy ipython配置:糟糕的解释器没有这样的文件或目录

我正在尝试使用以下命令从Mac OS 10.8.3中的终端启动Enthought Canopy的ipython:

/Applications/Canopy.app/appdata/canopy-1.0.0.1160.macosx-x86_64/Canopy.app/Contents/bin/ipython
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

/Applications/Canopy.app/appdata/canopy-1.0.0.1160.macosx-x86_64/Canopy.app/Contents/bin/ipython: /Library/Frameworks/Python.framework/Versions/7.1/Resources/Python.app/Content: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这个(7.1)框架之前已经安装但很久以前被删除了,所以我无法弄清楚Canopy的IPython从哪里获得这个链接.我也检查了我的./ipython/profile_default目录,但这没有帮助.

知道如何从终端启动ipython吗?

谢谢!

ipython enthought

1
推荐指数
1
解决办法
2518
查看次数