I am attempting to model probabilities using the multinomial logit link and I am confused about how the link works. To study the link function I have been attempting to use a deterministic system.
As an example, I am attempting to model the probability
a with an intercept and a covariate (
Bx.0 + Bx.1 * cov), while modeling the probability
b just with an intercept. A third probability,
1 - a - b.
I keep thinking that because I am modeling the probability
b with just an intercept (
b should be constant, but it is not. Why is that? I suppose the obvious answer is that because
Bx.0 + Bx.1 * cov is changing
By.0 must change as well if
b is to remain constant. Even so, it seems counter-intuitive that an intercept model (
By.0) must constantly change to return a constant value (here of
b). I am struggling to reconcile two ideas that seem straight-forward individually, but seem counter-intuitive when taken together.
Here is my initial example:
Bx.0 <- 0.5 Bx.1 <- -0.5 By.0 <- -0.8 cov <- -2:2 a <- (exp(Bx.0 + Bx.1 * cov) / (1 + exp(Bx.0 + Bx.1 * cov) + exp(By.0))) b <- (exp(By.0 ) / (1 + exp(Bx.0 + Bx.1 * cov) + exp(By.0))) c <- 1 - a - b b #  0.07575916 0.10781452 0.14503605 0.18344982 0.21856014
I also would like to identify the values of
Bx.1 that give rise to selected values of
a. Here are the values of the covariate and the desired values of
a I have been attempting to use to identify
Bx.1 algebraically. (Because I have been attempting to solve this algebraically I am unclear whether I should be posting on the Math site even though this exercise is to improve my grasp of the statistical model.)
cov = -1, a = 0.25 cov = 0, a = 0.50 cov = 1, a = 0.75
Here I define the values of
b and obtain the values of the linear predictors:
a2 <- 0.25 b2 <- 0.20 lin.pred.a2 <- log( 1 / (((1 - a2) / a2) * (1 - b2) - b2)) lin.pred.b2 <- log( 1 / (((1 - b2) / b2) * (1 - a2) - a2)) a3 <- 0.50 b3 <- 0.20 lin.pred.a3 <- log( 1 / (((1 - a3) / a3) * (1 - b3) - b3)) lin.pred.b3 <- log( 1 / (((1 - b3) / b3) * (1 - a3) - a3)) a4 <- 0.75 b4 <- 0.20 lin.pred.a4 <- log( 1 / (((1 - a4) / a4) * (1 - b4) - b4)) lin.pred.b4 <- log( 1 / (((1 - b4) / b4) * (1 - a4) - a4))
Here are the vectors of linear predictors:
# vectors of linear predictors a.vec <- c(lin.pred.a2, lin.pred.a3, lin.pred.a4) b.vec <- c(lin.pred.b2, lin.pred.b3, lin.pred.b4) a.vec #  -0.7884574 0.5108256 2.7080502 b.vec #  -1.0116009 -0.4054651 1.3862944
Here I check that my values of
b match what I intended, which they do:
a.pred <- exp(a.vec) / (1 + exp(a.vec) + exp(b.vec)) a.pred #  0.25 0.50 0.75 b.pred <- exp(b.vec) / (1 + exp(a.vec) + exp(b.vec)) b.pred #  0.2 0.2 0.2
However, I remain unclear why the intercept of the linear predictor for
b has three different values
(-1.0116009, -0.4054651, 1.3862944) in order to return a constant value for
(0.2, 0.2, 0.2).
Furthermore, given that the intercept for the linear predictor of
b varies, I suppose the intercept for the linear predictor for
a probably varies as well. In which case is it possible to identify the values of
Bx.1 algebraically that give rise to the probabilities of
a = 0.25, 0.50 and 0.75? If so, how can I do that?
In other words, I was thinking of
Bx.0 + Bx.1 * cov as a linear regression, but if
Bx.1 take on different values for each value of a (
0.25, 0.50 and 0.75) can I identify
Thank you for any advice or suggestions. Sorry if this post is not clear. I am familiar with multinomial logistic regression and ordinal logistic regression, but I am not certain they apply here, at least not to obtain an algebraic solution.