【问题标题】:Parameter estimates for generic data for any function任何函数的通用数据的参数估计
【发布时间】:2017-05-01 10:09:16
【问题描述】:

我有一个功能。例如:

def g(w,d,e):
    s = w-1.
    s1 = s**d+2.    
    s2 = 42. + s1*e**(1/2)
    return s2

data = np.array([1,2,3,4,5])s2。但我不知道de

我如何估计它们?错误?

在 scipy.stats 中称为方法“fit”用于分发。这种方法的底层是什么?米勒?采样?函数g是我的分布函数...

【问题讨论】:

  • 也许您正在寻找scipy.optimize.curve_fit

标签: python python-2.7 pandas numpy scipy


【解决方案1】:

根据你的问题,你的函数可以写成

def g(w,d,e):
    return 42. + ((w-1)**d+2)*e**(1/2)

因此,您似乎需要的是非线性方程求解器,而不是最小化预测值和观察值之间的平方误差的拟合程序。 Scipy 提供了root 函数,可以帮助你做你想做的事。例如,您可以遍历 data 并计算每个 data 项目的相应参数值

import numpy as np
import scipy.optimize.root as root
sol = []
data = np.array([1,2,3,4,5])
for d in data:
    f = lambda x: g(x[0],x[1],x[2])-d
    sol.append(root(f,x0).x)

函数参数拟合需要您提供一组自变量值 (x) 和观察到的因值 (y)。在拟合期间,您通常会尝试找到使预测与观察之间的差异最小化的参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 2012-02-21
    • 2019-05-27
    • 2019-10-24
    • 2013-08-31
    相关资源
    最近更新 更多