Python statsmodels的非线性最小二乘法

Python statsmodels的非线性最小二乘法,python,scipy,statsmodels,Python,Scipy,Statsmodels,在Python库statsmodels中,是否可以使用非线性参数执行非线性最小二乘拟合?换句话说,我想在以下统计模型中找到p的最佳拟合(最小二乘法): y=ln(p)*x^2+p 假设我有一组观测值x和y,我可以使用函数scipy.optimize.leastsq来找到最佳拟合。以下是一个例子: import numpy as np import scipy.optimize as spopt import matplotlib.pyplot as plt def fitFunc(p,x):

在Python库statsmodels中,是否可以使用非线性参数执行非线性最小二乘拟合?换句话说,我想在以下统计模型中找到p的最佳拟合(最小二乘法):

y=ln(p)*x^2+p

假设我有一组观测值x和y,我可以使用函数scipy.optimize.leastsq来找到最佳拟合。以下是一个例子:

import numpy as np
import scipy.optimize as spopt
import matplotlib.pyplot as plt

def fitFunc(p,x):
    return np.log(p[0])*x**2 + p[0]
def errFunc(p,x,y):
    return fitFunc(p,x)-y

# create x, y and y_true
nSample = 100
x = np.linspace(-10,10,nSample)
y_true = fitFunc([1.2],x)
err = np.random.normal(scale=7.0,size=nSample)
y = y_true+err

# find optimal p with least-square and plot it
p1, success = spopt.leastsq(errFunc, [2], args=(x,y))

plt.figure()
plt.scatter(x,y,label='obsevation')
plt.plot(x,y_true,label='true y')
plt.plot(x,fitFunc(p1,x),label='model')
plt.grid(True)
plt.legend()
是否可以使用库statsmodels执行此类分析?

是一个很好的python包。在statsmodels中仍然没有针对非线性最小二乘的特定模型。