我最近在MATLAB中尝试过非线性回归,我不确定如何去做。
我尝试过使用MATLAB的帮助页面并使用this一个
然而,即使我只是复制并粘贴示例(在“矩阵数据的非线性模型”下)
我收到此错误:
Undefined function 'fitnlm' for input arguments of type 'function_handle'.
我尝试的是:
load carbig
X = [Horsepower,Weight];
y = MPG;
modelfun = @(b,x)b(1) + b(2)*x(:,1).^b(3) + b(4)*x(:,2).^b(5);
beta0 = [-50 500 -1 500 -1];
mdl = fitnlm(X,y,modelfun,beta0)
但它似乎不喜欢modelfun
部分
我想知道为什么它有问题,如果这是他们的例子?
答案 0 :(得分:3)
您需要安装Matlab的Statistics Toolbox
才能使用fitnlm
。从工具箱提供的list of functions可以看出。
由于您尚未安装它,它将无法在其路径上找到该功能,因此会遇到上述错误。
fitnlm
在matlab 2013b和统计工具箱8.3中引入。
答案 1 :(得分:2)
我认为我的matlab fitnlm
版本不存在所以我必须使用NonLinearModel.fit
刚尝试过它似乎工作正常:
load carbig
X = [Horsepower,Weight];
y = MPG;
modelfun = @(b,x)b(1) + b(2)*x(:,1).^b(3) + b(4)*x(:,2).^b(5);
beta0 = [-50 500 -1 500 -1];
mdl = NonLinearModel.fit(X,y,modelfun,beta0)
感谢您的帮助!