我是R的新用户,如果我的问题很愚蠢,希望你能容忍我。我想使用R中的最大似然估计器来估计以下模型。
y= a+b*(lnx-α)其中a、b和α是要估计的参数,X和Y是我的数据集。我试着使用我从网络上得到的以下代码:
library(foreign)
maindata <- read.csv("C:/Users/NUNU/Desktop/maindata/output2.csv")
h <- subset(maindata, cropid==10)
library(likelihood)
modelfun <- function (a, b, x) { b *(x-a)}
par <- list(a = 0, b = 0)
var<-list(x = "x")
par_lo <- list(a = 0, b = 0)
par_hi <- list(a = 50, b = 50)
var$y <- "y"
var$mean <- "predicted"
var$sd <- 0.815585
var$log <- TRUE
results <- anneal(model = modelfun, par = par, var = var,
            source_data = h, par_lo = par_lo, par_hi = par_hi,
            pdf = dnorm, dep_var = "y", max_iter = 20000)我得到的结果是相似的,尽管数据是不同的,即使我改变了游标。同样,生成的预测值是x而不是y。我不知道我错过了什么或出了什么问题。非常感谢您的帮助。
发布于 2012-12-30 08:57:10
让我有点惊讶的是,iTech使用optim来解决其参数中线性的问题。使用他的x和y数据:
> lm(y ~ log(x) )
Call:
lm(formula = y ~ log(x))
Coefficients:
(Intercept)       log(x)  
       10.0          3.5  对于线性问题,最小二乘解是ML解。
https://stackoverflow.com/questions/14084346
复制相似问题