[R] Help with reading code

Dana77 luckyinwind at yahoo.com
Fri Dec 5 05:19:08 CET 2008


Thank you, Steven. It helps!

Best,

Dana


Steven McKinney wrote:
> 
> Hi Dana
> 
>> -----Original Message-----
>> From: r-help-bounces at r-project.org
> [mailto:r-help-bounces at r-project.org]
>> On Behalf Of Dana77
>> Sent: Wednesday, December 03, 2008 3:24 PM
>> To: r-help at r-project.org
>> Subject: [R] Help with reading code
>> 
>> 
>> I would like to give out the equation for calculating the maximum
>> likelihood.
>> Below is the code, but I still have problems with it.  After I read
> the
>> code, I found there are two cases for "w(weights)".  If  "w" is not
> zero,
>> then the equation is given as "val <- 0.5 * (sum(log(w)) - N * (log(2
> *
>> pi)
>> + 1 - log(N) +
>>         log(sum(w * res^2))))". However, if "w" is zero, then I do not
>> know
>> what equation it should be since it does not make any sense for
> "log0".
>> Hope
>> someone can help me to figure this out. Thanks!
>> 
>> 
>> 
>> 
>> function (object, REML = FALSE, ...)
>> {
>>     res <- object$residuals
>>     p <- object$rank
>>     N <- length(res)
>>     if (is.null(w <- object$weights)) {
>>         w <- rep.int(1, N)
>>     }
>>     else {
>>         excl <- w == 0  #####I can not understand the following lines
> after this.
> 
> The command above sets a variable to "exclude" with.
> Any observation with weight equal to zero will get excluded.
> excl will have value TRUE for all observations with weight 0.
> 
>>         if (any(excl)) { ### If there are any observations to exclude
>>             res <- res[!excl]   ### then keep the ones with weight not
> zero
>>             N <- length(res)
>>             w <- w[!excl]        }
> 
> so the above chunk keeps only the residuals and weights
> for the observations with non-zero weights
> 
>>     }
>>     N0 <- N
>>     if (REML)
>>         N <- N - p
>>     val <- 0.5 * (sum(log(w)) - N * (log(2 * pi) + 1 - log(N) +
>>         log(sum(w * res^2))))
> 
> so now there are no more observations with w == 0 in the above equation
> 
>>     if (REML)
>>         val <- val - sum(log(abs(diag(object$qr$qr)[1:p])))
>>     attr(val, "nall") <- N0
>>     attr(val, "nobs") <- N
>>     attr(val, "df") <- p + 1
>>     class(val) <- "logLik"
>>     val
>> }
>> 
>> 
>> Best,
>> 
>> Dana
>> --
>> View this message in context: http://www.nabble.com/Help-with-reading-
>> code-tp20823979p20823979.html
>> Sent from the R help mailing list archive at Nabble.com.
>> 
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-
>> guide.html
>> and provide commented, minimal, self-contained, reproducible code.
> 
> 
> 
>  
> 
> Steven McKinney
> 
> Statistician
> Molecular Oncology and Breast Cancer Program
> British Columbia Cancer Research Centre
> 
> email: smckinney at bccrc.ca
> tel: 604-675-8000 x7561
> 
> BCCRC
> Molecular Oncology
> 675 West 10th Ave, Floor 4
> Vancouver B.C. 
> V5Z 1L3
> 
> Canada
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 
> 

-- 
View this message in context: http://www.nabble.com/Help-with-reading-code-tp20823979p20847549.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list