This chapter described some of the most common generalized linear models, those used to model counts. It is important to never convert counts to proportions before analysis, because doing so destroys information about sample size. A fundamental difficulty with these models is that parameters are on a different scale, typically log-odds (for binomial) or log-rate (for Poisson), than the outcome variable they describe. Therefore computing implied predictions is even more important than before.
Place each answer inside the code chunk (grey box). The code chunks should contain a text response or a code that completes/answers the question or activity requested. Make sure to include plots if the question requests them. Problems are labeled Easy (E), Medium (M), and Hard(H).
Finally, upon completion, name your final output .html file as: YourName_ANLY505-Year-Semester.html and publish the assignment to your R Pubs account and submit the link to Canvas. Each question is worth 5 points.
11E1. If an event has probability 0.35, what are the log-odds of this event?
prob <- 0.35
log_odds<-prob/(1-prob)
log_odds
## [1] 0.5384615
11E2. If an event has log-odds 3.2, what is the probability of this event?
log_odds <- 3.2
prob<-log_odds/(1+log_odds)
prob
## [1] 0.7619048
11E3. Suppose that a coefficient in a logistic regression has value 1.7. What does this imply about the proportional change in odds of the outcome?
exp(1.7)
## [1] 5.473947
11E4. Why do Poisson regressions sometimes require the use of an offset? Provide an example.
# Offset can help bring all observations on the uniform scale of comparison.
# An example could be if the number of possible events is measured on the daily/ weekly basis/ monthly, the offset parameter can be used to convert all measurements to the daily basis.
# The offset variable would be the number of Days
11M1. As explained in the chapter, binomial data can be organized in aggregated and disaggregated forms, without any impact on inference. But the likelihood of the data does change when the data are converted between the two formats. Can you explain why?
#The probability differs in the aggregated and non aggregated form. The c(n,m) multiplier will be converted to a constant at the logarithmic scale when converting from aggregated format to non aggregated format.
11M2. If a coefficient in a Poisson regression has value 1.7, what does this imply about the change in the outcome?
# It indicates that the lambda parameter(Coefficient) of the Poisson regression will increase by exp(1.7)=5.473947 times when changing the Y(X), which is the predictor variable by 1 unit.
11M3. Explain why the logit link is appropriate for a binomial generalized linear model.
#This happens Because the logit link maps a parameter that is defined as a probability of the mass,Volume, Pressure (Any Variable), and its value lies between 0 & 1. A binomial generalized model always generates binary outcome variables i.e. either 0 or 1. Thus making logit link most appropriate for the model.
# This is similar to the use case of binary values which are True Or False. The output is either 0 or 1.
11M4. Explain why the log link is appropriate for a Poisson generalized linear model.
# The Log link always returns the positive values, which is the best suit for the poisson generalized model
11M5. What would it imply to use a logit link for the mean of a Poisson generalized linear model? Can you think of a real research problem for which this would make sense?
#the likelihood will always be true value or modulus, and the nature of the outcome are counts and always positive values.
11M6. State the constraints for which the binomial and Poisson distributions have maximum entropy. Are the constraints different at all for binomial and Poisson? Why or why not?
# Binomial distribution constraints are a discreet value and the poisson distribution always have a expected value which is constant. Poisson distribution has additional constraints which is a special case of the binomial distribution and it has its own predefined constraints. For poisson, the variance and the standard deviation which is equal to expected value and both are constant.
11M7. Use quap to construct a quadratic approximate posterior distribution for the chimpanzee model that includes a unique intercept for each actor, m11.4 (page 330). Plot and compare the quadratic approximation to the posterior distribution produced instead from MCMC. Can you explain both the differences and the similarities between the approximate and the MCMC distributions? Relax the prior on the actor intercepts to Normal(0,10). Re-estimate the posterior using both ulam and quap. Plot and compare the posterior distributions. Do the differences increase or decrease? Why?
# data("chimpanzees")
# df <- chimpanzees
# df$recipient <- NULL
#
# # map
# q2 <- map(alist(
# pulled_left ~ dbinom( 1 , p ) ,
# logit(p) <- a[actor] + (bp + bpC*condition)*prosoc_left ,
# a[actor] ~ dnorm(0,10),
# bp ~ dnorm(0,10),
# bpC ~ dnorm(0,10)
# ) ,
# data=df)
# pairs(q2)
11M8. Revisit the data(Kline) islands example. This time drop Hawaii from the sample and refit the models. What changes do you observe?
# data(Kline)
# df <- Kline
# df$P <- scale( log(df$population) )
# df$contact_id <- ifelse( df$contact=="high" , 2 , 1 )
11H1. Use WAIC or PSIS to compare the chimpanzee model that includes a unique intercept for each actor, m11.4 (page 330), to the simpler models fit in the same section. Interpret the results.
# data("chimpanzees")
#
# df<- chimpanzees
#
# m11.1 <- map(
# alist(
# pulled_left ~ dbinom(1, p),
# logit(p) <- a ,
# a ~ dnorm(0,10)
# ),
# data=df )
#
# m11.2 <- map(
# alist(
# pulled_left ~ dbinom(1, p) ,
# logit(p) <- a + bp*prosoc_left ,
# a ~ dnorm(0,10) ,
# bp ~ dnorm(0,10)
# ),
# data=df )
#
# m11.3 <- map(
# alist(
# pulled_left ~ dbinom(1, p) ,
# logit(p) <- a + (bp + bpC*condition)*prosoc_left ,
# a ~ dnorm(0,10) ,
# bp ~ dnorm(0,10) ,
# bpC ~ dnorm(0,10)
# ), data=df )
#
# m11.4 <- map(
# alist(
# pulled_left ~ dbinom(1, p),
# logit(p) <- a[actor] + (bp + bpC*condition)*prosoc_left,
# a[actor] ~ dnorm(0, 10),
# bp ~ dnorm(0, 10),
# bpC ~ dnorm(0, 10)
# ),
# data = df)
#
# compare(m11.1,m11.2,m11.3,m11.4)