我正在尝试在car
库中使用 deltaMethod,但出现了一个奇怪的错误。
library(car)
x=c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11)
y=c(-0.78636545259908996, -0.48499513735893701, -0.61035206318152102, -0.60156864486986295, -0.61323703005521701, -0.33091952573467498, -0.269895273193686, -0.32222378534205598, -0.53183084634683997, -0.96631869084439304, -0.77105781684519603, -0.524039870915605, -0.41181303531095498, -0.27581842299642001, -0.72085673574325404, -0.35874718580022702, -0.30752543764527501, -0.090745334342823197, -0.465889655296298, -0.20115970219526799, -0.0511742487116199, 0.0100170907454752, -0.176138595601495, 0.042138062483845398, 0.00081247733328697303, -0.0045220167465173499, 0.57326735553016905, 0.116862163616526, 0.0072264835163109399, 0.48714531471859701, 0.83738659120408598, 0.83740077959237003, 0.48762419789728001, 0.20072016467283199, 0.56916547038663201, 0.14651949468445999, 0.575517323481333, 0.72715907067082697, 0.99958886855260898, 0.36070109242748599, 0.49335611371191601, 0.27098248212991599, 1.28001727666798, 0.36192955257384501)
gdat=data.frame(x,y)
fit=nls(y~a+b*(exp(-exp(s*(x-m)))),data=gdat,start=list(a=-0.5,b=1,s=-0.6,m=5))
deltaMethod(fit,"m-s*log((1/0.05)-1)")
我得到的错误是:Error in eval(expr, envir, enclos) : object 'ParaParam43' not found
在尝试解决这个问题时,我注意到了几件事:
- ParaParam 之后的数字根据询问的参数而变化
- 它适用于
lm
对象,虽然我没有尝试过其他支持的对象 - 在上面的示例中,
deltaMethod(fit,"m")
有效,但其他参数均无效。这可能是因为只m
在names(fit)
. 显然,默认方法使用names(fit)
而不是coef(fit)
(对于其他类型的对象),那么该方法是否无法识别fit
为nls
对象?我需要告诉deltaMethod
我期望什么类型的对象吗?
我之前使用过这个,现在已经弃用了alr3
delta.method
,没有问题,但现在它给出了同样的错误。
有人有想法么?
我使用的是R
2.13car
版和 2.0-10 版
谢谢