我有兴趣找到关于所有m个预测变量的逻辑回归的对数似然函数的二阶导数的值。
基本上我想制作一个m 2 的载体 L / j 2 值,其中j从1变为m。
我相信二阶导数应该是-Σ i = 1 n x ij 2 (E 的 X 的<子>的 I 的子>的β的)/((1+ e x i β ) 2 )和我试图在R中编写代码。在尝试编写代码时我做了一些愚蠢的事情,并且想知道是否有某种我可以用来更容易实现的功能。
这是我尝试过的代码(我知道for循环中的总和并没有真正做任何事情,所以我不知道如何对这些值求和)。
for (j in 1:m)
{
for (i in 1:n)
{
d2.l[j] <- -1*(sum((x.center[i,j]^2)*(exp(logit[i])/((1 + exp(logit[i])^2)))))
}
}
如果不清楚,logit只是一个由Xβ组成的向量。
答案 0 :(得分:0)
我对数学很朦胧(并且很难读到乳胶)但纯粹在编程方面,如果logit
是一个索引为i
= 1,...,n和x.center
是nxm
矩阵:
for (j in 1:m)
dt.l[j] <- -sum( x.center[,j]^2 * exp(logit)/(1+exp(logit))^2 )
sum
总和i
。
如果你想做“vector-ish”,你可以利用这样一个事实:如果你做matrix * vector
(你的x.center * exp(logit)/...
)这在R中按列发生,这适合你的等式:
-colSums(x.center^2 * exp(logit)/(1+exp(logit))^2)
对于它的价值,尽管后者是“光滑的”,我将经常使用显式循环(与第一个例子一样),纯粹是为了可读性。或者当我在一个月的时间回来时,我对我的i
和j
以及在何时总结的内容感到非常困惑。