我刚开始尝试通过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如预期的那样.
请帮忙!
我正在尝试改编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) 对于 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 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] …我想将各种小部件添加到表格小部件中的各种单元格,并且我想在这些小部件的值发生更改时触发命令。我可以根据需要将小部件放入表格中,但是我在连接信号时遇到问题,因此我知道哪个小部件生成了信号。
下面是一个简单的例子来解释这个问题,只使用复选框:
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) 我正在尝试使用以下命令从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吗?
谢谢!
python ×3
python-3.x ×2
argmax ×1
arrays ×1
bayesian ×1
enthought ×1
ipython ×1
numpy ×1
pymc ×1
pyqt ×1
pyqt5 ×1
qtablewidget ×1
scikits ×1
scipy ×1
time-series ×1