在 R 中绘制对数似然函数
plotting log-likelihood function in R
您好,我的代码中收到 x 和 y 长度不同的错误。 datasim是一个模拟样本,大小为1000。请帮助我。
x <- datasim
loglik <- function(theta){
k<- theta[1]
lambda<- theta[2]
out <- sum(dweibull(x,shape = k, scale=lambda, log = TRUE) )
return(out)
}
theta<- c(0.5,1.5)
plot(theta, loglik(theta), type="l", lwd=3, main="logliklihood_Weibull, n=1000")
你可以使用一个包,因为它是你适合的 weibull:
library(fitdistrplus)
x = rweibull(1000,20,10)
fit <- fitdist(x, "weibull")
llplot(fitg, expand=5)
或者使用你的 loglik 函数:
library(lattice)
da = expand.grid(k=seq(8,22,length.out=50),
lambda = seq(9,12,length.out=50))
da$LL = apply(da,1,loglik)
wireframe(LL ~ k * lambda, data = da,
scales = list(arrows = FALSE),drape = TRUE, colorkey = TRUE)
您好,我的代码中收到 x 和 y 长度不同的错误。 datasim是一个模拟样本,大小为1000。请帮助我。
x <- datasim
loglik <- function(theta){
k<- theta[1]
lambda<- theta[2]
out <- sum(dweibull(x,shape = k, scale=lambda, log = TRUE) )
return(out)
}
theta<- c(0.5,1.5)
plot(theta, loglik(theta), type="l", lwd=3, main="logliklihood_Weibull, n=1000")
你可以使用一个包,因为它是你适合的 weibull:
library(fitdistrplus)
x = rweibull(1000,20,10)
fit <- fitdist(x, "weibull")
llplot(fitg, expand=5)
或者使用你的 loglik 函数:
library(lattice)
da = expand.grid(k=seq(8,22,length.out=50),
lambda = seq(9,12,length.out=50))
da$LL = apply(da,1,loglik)
wireframe(LL ~ k * lambda, data = da,
scales = list(arrows = FALSE),drape = TRUE, colorkey = TRUE)