![]() ![]() I would have thought that cplot uses a similar argument to obtain conditional probabilities, but it doesn't. It seems that the effects package computes what the documentation of the margins package refers to as "Fitted values at the mean of X" (i.e., predicted probabilities at the mean values of the non-focal predictor variables, evaluated over a range of values for the focal variable gre). Exponentiating the log odds enabled me to obtain the first predicted probability obtained by the effects package (i.e., 0.1503641) when gre is set to 200, gpa is set to its observed mean value and the dummy variables rank2, rank3 and rank4 are set to their observed mean values. In the above log odds formula, I plugged in 200 for gre (which is the same value used by the effects package), I replaced gpa with its observed mean value and replaced the dummy variables used to encode the effect of rank with their mean value (i.e., with the proportion of values falling into the categories they represent). Table(mydata$rank)/sum(table(mydata$rank)) # compute proportion of data values represented in each # compare the two methods for computing predicted probabilitiesĬbind(logit2prob(predict(mymodel)), predict(mymodel, type="response"))Īs for the conditional plot produced by cplot, I can't figure out how exactly it is computed via the command: # conditional effect plotĬplot(mymodel, "gre", what="predict", draw=FALSE) # calculate the predicted probabilities of admission directly using # convert the log odds computed above to predicted probabilities # compute the log odds of admission for each student represented in the data # (ranks range from 1 = highest prestige to 4 = lowest prestige) # on their gre, gpa and current school rank/prestige # probability of admission to college for a student based # fit binary logistic regression model to data which will predict # convert rank variable to factor (i.e., categorical variable) # read data for use in binary logistic regression model example If so, the example below shows how it can be used to compute predicted probabilities from a binary logistic regression model. I suspect this function comes from the rcfss package. Geom_line(aes(y = effect - 1.96 *se.First, I must confess that I don't understand your use of the logit2prob function. Geom_line(aes(y = effect + 1.96 *se.effect)) + # use ggplot2 instead of base graphics ggplot(tmp, aes(x = Petal.Width, y = "effect" )) + ![]() What = "effect", n = 10, draw = FALSE ) # marginal effect of 'Petal.Width' across 'Sepal.Width' # without drawing the plot # this might be useful for using, e.g., ggplot2 for plotting tmp <- cplot(m, x = "Sepal.Width", dx = "Petal.Width" , # marginal effect of each factor level across numeric variable cplot(m, x = "wt", dx = "am", what = "effect" ) # predicted values for each factor level cplot(m, x = "am" ) ![]() # factor independent variables mtcars] <- factor(mtcars]) # marginal effect of 'Petal.Width' across 'Petal.Width' cplot(m, x = "Petal.Width", what = "effect", n = 10 ) # more complex model m <- lm(Sepal.Length ~ Sepal.Width * Petal.Width * I(Petal.Width ^ 2 ), # prediction from several angles m <- lm(Sepal.Length ~ Sepal.Width, data = iris) Ylim = if (match.arg(what) %in% c("prediction", "stackedprediction")) c(0, 1.04) Ylab = if (match.arg(what) = "effect") paste0("Marginal effect of ", dx) else ![]() What = c("prediction", "classprediction", "stackedprediction", "effect"), Se.lty = if (match.arg(se.type) = "lines") 1L else 0L, Ylab = if (match.arg(what) = "prediction") paste0("Predicted value") else Xvals = prediction::seq_range(data], n = n), Currently methods exist for “lm”, “glm”, “loess” class models. Cplot: Conditional predicted value and average marginal effect plots for models Descriptionĭraw one or more conditional effects plots reflecting predictions or marginal effects from a model, conditional on a covariate. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |