[R] VGAM constraints-related puzzle

Edward Wallace ewjwallace at gmail.com
Wed Jun 22 18:39:47 CEST 2011


Hello R users,
I have a puzzle with the VGAM package, on my first excursion into
generalized additive models, in that this very nice package seems to
want to do either more or less than what I want.

Precisely, I have a 4-component outcome, y, and am fitting multinomial
logistic regression with one predictor x. What I would like to find
out is, is there a single nonlinear function f(x) which acts in place
of the linear predictor x. There is a mechanistic reason to believe
this is sensible. So I'd like to fit a model
\eta_j = \beta_{ (j) 0 } + \beta_{ (j) x } f(x)
where both the function f(x) and its scaling coefficients  \beta_{ (j)
x } are fit simultaneously. Here \eta_j is the linear predictor, the
logodds of outcome j vs the reference outcome. I cannot see how to fit
exactly this. Instead I seem to be able to do the following:

vgam(formula = y ~ s(x), family = multinomial)
fits the model
\eta_j = \beta_{ (j) 0 } + \beta_{ (j) x } f_j (x)
i.e. a different function f_j (x) is fit for each outcome.

vgam(formula = y ~ s(x), family = multinomial, constraints =
list(`(Intercept)`= diag(1,3), 's(x)' = matrix(c(1,1,1),3,1)) )
fits the model
\eta_j = \beta_{ (j) 0 } +  f (x)
i.e. a single function f (x) is fit, but scaled the same for each
outcome. I'd like one function, scaled differently.

Of course,
vgam(formula = y ~ x, family = multinomial)
fits the model
\eta_j = \beta_{ (j) 0 } + \beta_{ (j) x } x
which has the scaling, but not the nonlinear function.

Perhaps this is achievable using bs(), xij, and vglm, or even via the
constraint matrix, but I did not succeed.

Any help appreciated!
Edward


-- 
Edward Wallace, PhD
Postdoctoral fellow, Drummond lab
Harvard FAS center for Systems Biology
ewallace at cgr.harvard.edu
773-517-4009



More information about the R-help mailing list