我是这个统计问题的新手。
所以对于x的某些值,我有一个数据集y = f(x)。我想将此数据拟合到func
中,以便可以对y
中的每个点计算x
的值。
假设我要拟合的模型是
def func(x,a,b,c):
return a+b*x/c
现在要使用最小化功能,我必须定义参数:
params = Parameters()
params.add('a' , value = 10)
params.add('b' , value = 1)
params.add('c' , value = 2)
result = minimize(func, param, arg=(x, y))
我的问题是,如果我想将我的x
变量作为参数并将其作为参数传递,该怎么办?
基本上,当我将x
作为变量传递时,我正在传递一个数组,该数组对应于我的数据集中的特定点。但是,我想使用x
作为参数,因为我想为数据x
的某些点找到y
的值。
答案 0 :(得分:0)
参数和拟合变量是标量浮点数。也就是说,它们具有一个可以连续取值范围的值。
您是说要让x
的每个元素在适合度方面独立变化吗?
通常使用最小化方法来拟合数据:找到变量的值集(例如您的a
,b
和c
),以使{{1 }}尽可能小。
您不完整的代码段(很明显,总是总是包括一个完整的示例)不会这样做-它不会将y - func(x, a, b, c)
传递到{{1 }}。
更重要的是,您似乎正在寻找“为数据y
的某些点找到func
的值”。这对我来说没有任何意义。...也许可以清理并澄清问题?
答案 1 :(得分:0)
这不是一个单向的步骤。
我通过在Model
中使用lmfit
类实现了它
考虑这个。
我有一个模型函数,命名为:MF
,通过它我可以计算出原始数据中的精确samples
。
我有原始数据:Raw_Data
(例如来自传感器的数据)
然后我有一定的parameters
。 (x,y,z个样本)
现在我认为样本是independent variable
。
我的目标是估计其中一个参数。
首先,我必须创建一个Model类
mod = Model (MF, parameters, independant_vars = ['samples']
然后使用Parameters()类设置初始参数。
并添加初始化值
fit_params = Parameters()
fit_params.add('x', value = 170)
fit_params.add('y', value = 120)
fit_params.add('z', value = 110)
然后您适合模型
Result - mod.fit(Raw_data, params = fit_params, samples = your_samples)
输出为dict
。