[R] How to obtain individual log-likelihood value from glm?
John Smith
j@whct @end|ng |rom gm@||@com
Sat Aug 29 07:30:27 CEST 2020
Thanks Prof. Fox.
I am curious: what is the model estimated below?
I guess my inquiry seems more complicated than I thought: with y being 0/1, how to fit weighted logistic regression with weights <1, in the sense of weighted least squares? Thanks
> On Aug 28, 2020, at 10:51 PM, John Fox <jfox using mcmaster.ca> wrote:
>
> Dear John
>
> I think that you misunderstand the use of the weights argument to glm() for a binomial GLM. From ?glm: "For a binomial GLM prior weights are used to give the number of trials when the response is the proportion of successes." That is, in this case y should be the observed proportion of successes (i.e., between 0 and 1) and the weights are integers giving the number of trials for each binomial observation.
>
> I hope this helps,
> John
>
> John Fox, Professor Emeritus
> McMaster University
> Hamilton, Ontario, Canada
> web: https://socialsciences.mcmaster.ca/jfox/
>
>> On 2020-08-28 9:28 p.m., John Smith wrote:
>> If the weights < 1, then we have different values! See an example below.
>> How should I interpret logLik value then?
>> set.seed(135)
>> y <- c(rep(0, 50), rep(1, 50))
>> x <- rnorm(100)
>> data <- data.frame(cbind(x, y))
>> weights <- c(rep(1, 50), rep(2, 50))
>> fit <- glm(y~x, data, family=binomial(), weights/10)
>> res.dev <- residuals(fit, type="deviance")
>> res2 <- -0.5*res.dev^2
>> cat("loglikelihood value", logLik(fit), sum(res2), "\n")
>>> On Tue, Aug 25, 2020 at 11:40 AM peter dalgaard <pdalgd using gmail.com> wrote:
>>> If you don't worry too much about an additive constant, then half the
>>> negative squared deviance residuals should do. (Not quite sure how weights
>>> factor in. Looks like they are accounted for.)
>>>
>>> -pd
>>>
>>>> On 25 Aug 2020, at 17:33 , John Smith <jswhct using gmail.com> wrote:
>>>>
>>>> Dear R-help,
>>>>
>>>> The function logLik can be used to obtain the maximum log-likelihood
>>> value
>>>> from a glm object. This is an aggregated value, a summation of individual
>>>> log-likelihood values. How do I obtain individual values? In the
>>> following
>>>> example, I would expect 9 numbers since the response has length 9. I
>>> could
>>>> write a function to compute the values, but there are lots of
>>>> family members in glm, and I am trying not to reinvent wheels. Thanks!
>>>>
>>>> counts <- c(18,17,15,20,10,20,25,13,12)
>>>> outcome <- gl(3,1,9)
>>>> treatment <- gl(3,3)
>>>> data.frame(treatment, outcome, counts) # showing data
>>>> glm.D93 <- glm(counts ~ outcome + treatment, family = poisson())
>>>> (ll <- logLik(glm.D93))
>>>>
>>>> [[alternative HTML version deleted]]
>>>>
>>>> ______________________________________________
>>>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>>> 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.
>>>
>>> --
>>> Peter Dalgaard, Professor,
>>> Center for Statistics, Copenhagen Business School
>>> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
>>> Phone: (+45)38153501
>>> Office: A 4.23
>>> Email: pd.mes using cbs.dk Priv: PDalgd using gmail.com
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>> [[alternative HTML version deleted]]
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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.
More information about the R-help
mailing list