手动计算对数似然,以进行广义非线性最小二乘回归(nlme)
我正在尝试为函数优化的广义非线性最小二乘回归计算对数似然功能在R包,使用由距离上AA进化树假设(布朗运动产生的方差协方差矩阵从包中)。以下可重现的R代码使用x,y数据和具有9个分类单元的随机树来拟合gnls模型:f(x)=β1(1+xβ2)β3f(x)=β1(1+xβ2)β3f(x)=\frac{\beta_1}{(1+\frac x\beta_2)^{\beta_3}}gnlsnlmecorBrownian(phy=tree)ape require(ape) require(nlme) require(expm) tree <- rtree(9) x <- c(0,14.51,32.9,44.41,86.18,136.28,178.21,262.3,521.94) y <- c(100,93.69,82.09,62.24,32.71,48.4,35.98,15.73,9.71) data <- data.frame(x,y,row.names=tree$tip.label) model <- y~beta1/((1+(x/beta2))^beta3) f=function(beta,x) beta[1]/((1+(x/beta[2]))^beta[3]) start <- c(beta1=103.651004,beta2=119.55067,beta3=1.370105) correlation <- corBrownian(phy=tree) fit <- gnls(model=model,data=data,start=start,correlation=correlation) logLik(fit) 我想logLik根据从获得的估计参数来“手动”计算对数似然(在R中,但不使用函数),gnls因此它与的输出匹配logLik(fit)。注意:我不是要估计参数;我只想计算该函数估计的参数的对数似然gnls性(尽管如果有人提供了一个可重现的示例,说明了如何在不使用的情况下估计参数gnls,我将非常感兴趣!)。 我不确定如何在R中执行此操作。S和S-Plus的混合效果模型(Pinheiro和Bates)中描述的线性代数表示法让我非常头疼,而且我的尝试都没有logLik(fit)。以下是Pinheiro和Bates描述的详细信息: 对数似然为广义非线性最小二乘模型 其中的计算方法如下:φ 我 = 甲我 βÿ一世= f一世(ϕ一世,v一世)+ ϵ一世yi=fi(ϕi,vi)+ϵiy_i=f_i(\phi_i,v_i)+\epsilon_iϕ一世= A一世βϕi=Aiβ\phi_i=A_i\beta 升(β,σ2,δ| ÿ)= − 12{ N日志(2 πσ2)+ ∑我= …