Hello Stackoverflow社区,
一年多以前,我遇到了一个问题,即根据mle的标准误差来计算二次曲线的置信区间。 我有一个很好的答案(Confidence interval of polynomial regression),我的问题解决了。
但是现在,我必须做类似但更复杂的事情,而我却没有做。
我使用最大似然法(mle2)通过以下等式找到我的数据的最佳拟合(n = 33):
x - lambertW((a0+a1*0.5+a2*I(0.5^2)) * (h0+h1*0.5+h2*I(0.5^2)) * x * exp(-(a0+a1*0.5+a2*I(c0.5^2)) * (4 - (h0+h1*0.5+h2*I(0.5^2)) * x)))/((a0+a1*0.5+a2*I(0.5^2)) * (h0+h1*0.5+h2*I(0.5^2))
所以我有6个变量,它们的标准错误是:
Var Estimate Std.Error
a0 0.535893 0.101743
a1 -0.071892 0.461714
a2 0.447236 0.410556
h0 0.204239 0.013089
h1 -0.151433 0.045713
h2 0.047899 0.037042
我试图遵循错误传播的过程:
a0 a1 a2 h0 h1 h2
a0 0.010351546 -0.039102337 0.029078285 0.000832677 -0.002675687 0.001854539
a1 -0.039102337 0.213180229 -0.181382114 -0.002957193 0.012842079 -0.01012621
a2 0.029078285 -0.181382114 0.168556281 0.002140059 -0.01027469 0.00862906
h0 0.000832677 -0.002957193 0.002140059 0.000171311 -0.00048818 0.000318248
h1 -0.002675687 0.012842079 -0.01027469 -0.00048818 0.002089671 -0.00163538
h2 0.001854539 -0.01012621 0.00862906 0.000318248 -0.00163538 0.001372091
然后
V <- structure(c(0.010351546, -0.039102337, 0.029078285, 0.000832677, -0.002675687, 0.001854539,
-0.039102337, 0.213180229, -0.181382114, -0.002957193, 0.012842079, -0.01012621,
0.029078285, -0.181382114, 0.168556281, 0.002140059, -0.01027469, 0.00862906,
0.000832677, -0.002957193, 0.002140059, 0.000171311, -0.00048818, 0.000318248,
-0.002675687, 0.012842079, -0.01027469, -0.00048818, 0.002089671, -0.00163538,
0.001854539, -0.01012621, 0.00862906, 0.000318248, -0.00163538, 0.001372091),
.Dim = c(6L, 6L), .Dimnames = list(c("a0", "a1", "a2", "h0", "h1", "h2"), c("a0", "a1", "a2", "h1", "h2", "h3")))
beta <- c(0.53589342, -0.07189193, 0.44723635, 0.20423866, -0.15143322, 0.04789870 ) #Estimates of coefficients of parameters Summary(Data)
x <- seq(0, 250, by = 1)
然后我不确定如何完成代码。我试图定义X(以前是X <-cbind(1,x,x ^ 2)),但是我猜想它现在应该遵循我使用的公式),但是在下一步我总是收到错误消息:
> Mu <- X %*% beta
Error in X %*% beta : non-conformable arguments
有人可以帮助我吗? 非常感谢您的帮助!