草庐IT

python - 如何计算scipy中曲线拟合的可能性?

我有一个非线性模型拟合,如下所示:深色实线为模型拟合,灰色部分为原始数据。问题的简短版本:如何获得此模型拟合的可能性,以便执行对数似然比检验?假设残差服从正态分布。我对统计学比较陌生,目前的想法是:得到曲线拟合的残差,并计算残差的方差;使用这个等式并将残差的方差代入sigma-squared,x_i作为实验,mu作为模型拟合;计算对数似然比。谁能帮我解决这两个完整版的问题?我的方法正确吗?(我想是的,但如果能确定一下就太好了!)python/scipy/statsmodels中是否有任何现成的函数可以帮我做这件事? 最佳答案 你的似

python - 使用 scipy.optimize 最小化多元可微函数

我正在尝试使用scipy.optimize最小化以下函数:这是它的梯度:(对于那些感兴趣的人,这是用于成对比较的Bradley-Terry-Luce模型的似然函数。与逻辑回归密切相关。)很明显,向所有参数添加常量不会改变函数的值。因此,我让\theta_1=0。以下是目标函数和梯度在python中的实现(theta在这里变为x):defobjective(x):x=np.insert(x,0,0.0)tiles=np.tile(x,(len(x),1))combs=tiles.T-tilesexps=np.dstack((zeros,combs))returnnp.sum(cijs*s

python - Scipy welch 和 MATLAB pwelch 没有提供相同的答案

我在python中遇到了名为welch(https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.signal.welch.html)的scipy.signal方法的问题,它估计时间信号的频谱,因为它(根本)不提供与MATLAB方法相同的输出pwelch,给定相同的参数(窗口大小、重叠等)。下面是我在每种语言中的代码,输入文件和输出文件在此处的链接中:https://www.dropbox.com/s/2ch36phbbmjfhqg/inputs_outputs.zip?dl=0输入是一个二维数组,行是时间步长,

python - 氢原子的薛定谔方程 : why is numpy displaying a wrong solution while scipy isn't?

我编写了一段代码来求解一维薛定谔方程。虽然numpy.linalg.eig()例程对于谐波振荡器一直运行良好,但它似乎为库仑势增加了一个虚假的解决方案。另一方面,Scipy的sparse.linalg.eigsh()似乎表现不错。这是我的脚本:importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.sparseimportdiagsfromscipy.sparse.linalgimporteigshN=500x0=8xMin,xMax=-x0,x0xstep=(xMax-xMin)/(N-1)x=np.linspace(xMin,xMa

python - scipy.sparse 矩阵的逐点运算

是否可以将numpy.exp或类似的逐点运算符应用于scipy.sparse.lil_matrix或其他稀疏矩阵格式中的所有元素?importnumpyfromscipy.sparseimportlil_matrixx=numpy.ones((10,10))y=numpy.exp(x)x=lil_matrix(numpy.ones((10,10)))#y=????numpy.exp(x)或scipy.exp(x)产生一个AttributeError,并且numpy.exp(x.data)产生相同的结果。谢谢! 最佳答案 我不知道全部

python - 无法让 scipy 层次聚类工作

我写了一个简单的脚本,旨在对一个简单的测试数据集进行层次聚类。我找到了函数fclusterdata成为将我的数据聚类成两个聚类的候选人。它需要两个强制调用参数:数据集和阈值。问题是,我找不到可以产生预期的两个集群的阈值。如果有人能告诉我我做错了什么,我会很高兴。如果有人能指出更适合我的集群的其他方法,我也会很高兴(我明确希望避免事先指定集群的数量。)这是我的代码:importtimeimportscipy.cluster.hierarchyashclusterimportnumpy.randomasrandomimportnumpyimportpylabpylab.ion()data=

python - 函数矩阵、SymPy 和 SciPy 的数值积分

从我的SymPy输出中,我得到了如下所示的矩阵,我必须将其集成到2D中。目前我正在按元素进行操作,如下所示。此方法有效,但对于我的实际情况(其中A及其功能要大得多(见下面的编辑):fromsympyimportMatrix,sin,cosimportsympyimportscipysympy.var('x,t')A=Matrix([[(sin(2-0.1*x)*sin(t)*x+cos(2-0.1*x)*cos(t)*x)*cos(3-0.1*x)*cos(t)],[(cos(2-0.1*x)*sin(t)*x+sin(2-0.1*x)*cos(t)*x)*sin(3-0.1*x)*c

python - 如何返回成本,grad 作为 scipy 的 fmin_cg 函数的元组

我怎样才能让scipy的fmin_cg使用一个返回cost和gradient作为元组的函数?使用f成本和fprime梯度的问题是,我可能必须执行两次操作(非常昂贵),通过该操作grad和cost被计算。此外,在它们之间共享变量可能会很麻烦。然而,在Matlab中,fmin_cg使用一个函数,该函数将成本和梯度作为元组返回。我不明白为什么scipy的fmin_cg不能提供这样的便利。提前致谢... 最佳答案 您可以使用scipy.optimize.minimize使用jac=True。如果出于某种原因这不是一个选项,那么您可以查看ho

python - 类似于 scipy.interpolate.griddata?

我想对给定的3D点云进行插值:我查看了scipy.interpolate.griddata结果正是我所需要的,但据我所知,我需要输入“griddata”,这意味着x=[[0,0,0],[1,1,1],[2,2,2]].但我给定的3D点云没有这种网格外观-x、y值的行为不像网格-不管怎样,每个x、y值只有一个z值。*那么对于我的非网格点云,是否有替代scipy.interpolate.griddata的方法?*编辑:“没有网格外观”意味着我的输入看起来像这样:x=[0,4,17]y=[-7,25,116]z=[50,112,47] 最佳答案

python - 假设自动线程化的 scipy 和 numpy 函数没有使用多核

我正在运行MacOSX10.6.8并使用EnthoughtPythonDistribution。我想让numpy函数利用我的两个核心。我遇到了与这篇文章类似的问题:multithreadedblasinpython/numpy但是按照那张海报的步骤进行操作后,我仍然遇到同样的问题。这是我的numpy.show_config():lapack_opt_info:libraries=['mkl_lapack95_lp64','mkl_intel_lp64','mkl_intel_thread','mkl_core','mkl_mc','mkl_mc3','pthread']library_