R:幂函数拟合-错误修复等
我想要适合以下类型的电源型号:R:幂函数拟合-错误修复等,r,error-handling,non-linear-regression,R,Error Handling,Non Linear Regression,我想要适合以下类型的电源型号: y = b*x(^z) 我的数据是来自大包装的动物数据 我的代码在这里: library(MASS) nls(brain~b*body^z,start = list(b = 0, z = 1),data=Animals) 它有一个错误,我不知道如何修复 Error in nlsModel(formula, mf, start, wts) : singular gradient matrix at initial parameter estimates
y = b*x(^z)
我的数据是来自大包装的动物数据
我的代码在这里:
library(MASS)
nls(brain~b*body^z,start = list(b = 0, z = 1),data=Animals)
它有一个错误,我不知道如何修复
Error in nlsModel(formula, mf, start, wts) :
singular gradient matrix at initial parameter estimates
我想问的是,这是否适合这个模型使用我的功能
谢谢你的帮助 你有两个错误。一个是b=0的奇异梯度,另一个是两种不同类型的动物遵循完全不同的分布 看看分布: 固定奇异梯度仍会产生错误:
> nls(brain~b*body^z,start = list(b = 0.1, z = 1),data=Animals)
Error in numericDeriv(form[[3L]], names(ind), env) :
Missing value or an infinity produced when evaluating the model
因此,您也应该这样做:
subset(Animals, ! body > 9000) -> mammals
nls(brain~b*body^z,start = list(b = 0.1, z = 1),data=mammals)
Nonlinear regression model
model: brain ~ b * body^z
data: mammals
b z
15.5540 0.6795
residual sum-of-squares: 4301588
Number of iterations to convergence: 13
Achieved convergence tolerance: 3.321e-06
如果b=0,那么z的一个小扰动将不会对rhs的值产生影响,因此它的奇异性正如它所说的。对不起,我是r的新手,你能告诉我如何设置b和z吗。谢谢您将b的起始值设置为0。不要那样做。