2014-10-03 3 views
0

Дано:Понимание различных результатов Optim() и лм()

set.seed(1001) 
    outcome<-rnorm(1000,sd = 1) 
    covariate<-rnorm(1000,sd = 1) 

логарифмического правдоподобия нормального PDF:

loglike <- function(par, outcome, covariate){ 
       cov <- as.matrix(cbind(1, covariate)) 
       xb <- cov * par 
       (- 1/2* sum((outcome - xb)^2)) 
    } 

оптимизируют:

    opt.normal <- optim(par = 0.1,fn = loglike,outcome=outcome,cov=covariate, method = "BFGS", control = list(fnscale = -1),hessian = TRUE) 

Однако я получаю разные результаты при запуске простой OLS. Однако максимизация log-likelihhod и минимизация OLS должны привести меня к аналогичной оценке. Я полагаю, что что-то не так с моей оптимизацией.

    summary(lm(outcome~covariate)) 

ответ

5

Умм несколько вещей ... Вот собственно функция рабочего правдоподобия (с именами х и у):

loglike = 
function(par,x,y){cov = cbind(1,x); xb = cov %*% par;(-1/2)*sum((y-xb)^2)} 

Примечание Использование матричного умножения оператора.

Вы также использовали его только с одним параметром par, поэтому он был не только сломанным, потому что ваш логический процесс выполнял умножение элемента-элемента, он возвращал только одно значение.

Теперь сравните параметры Оптимизатор с коэффициентами лм:

> opt.normal <- optim(par = c(0.1,0.1),fn = loglike,y=outcome,x=covariate, method = "BFGS", control = list(fnscale = -1),hessian = TRUE) 
> opt.normal$par 
[1] 0.02148234 -0.09124299 
> summary(lm(outcome~covariate))$coeff 
       Estimate Std. Error t value Pr(>|t|) 
(Intercept) 0.02148235 0.03049535 0.7044466 0.481319029 
covariate -0.09124299 0.03049819 -2.9917515 0.002842011 

Shazam.

Полезные советы: создайте данные, для которых вы знаете правильный ответ, например, x=1:10; y=rnorm(10)+(1:10), чтобы вы знали, что наклон равен 1 и перехват 0. Тогда вы можете легко увидеть, какая из ваших вещей находится в правильном шаре. Кроме того, запустите функцию loglike самостоятельно, чтобы убедиться, что она ведет себя так, как вы ожидаете.

+0

это было здорово. спасибо – Mamba

Смежные вопросы