[R-sig-ME] variance inflation factor
Ben Bolker
bbolker at gmail.com
Thu Feb 22 18:30:53 CET 2018
OK. I guess we could also change lme4 (hard to see why it would break
anything, and I can check downstream packages ...)
On Thu, Feb 22, 2018 at 12:24 PM, Fox, John <jfox at mcmaster.ca> wrote:
> Hi Ben,
>
>> -----Original Message-----
>> From: Ben Bolker [mailto:bbolker at gmail.com]
>> Sent: Thursday, February 22, 2018 11:53 AM
>> To: Fox, John <jfox at mcmaster.ca>
>> Cc: Toni Hernandez-Matias <ahmatias at gmail.com>; r-sig-mixed-models at r-
>> project.org
>> Subject: Re: [R-sig-ME] variance inflation factor
>>
>> I don't know if there's a good reason that vcov() is a "dpoMatrix"
>> (from the Matrix package) rather than a plain old base-R matrix, but
>> as.matrix() converts it harmlessly (and shouldn't have any ill effects on
>> something that's already a matrix ...)
>
> Yes, I know that, but it prevents the default method for car::vif() from working because cov2cor() checks for a matrix:
>
>> vif(mod)
> Error in cov2cor(v) : 'V' is not a square numeric matrix
> In addition: Warning message:
> In vif.default(mod) :
> Error in cov2cor(v) : 'V' is not a square numeric matrix
>
> It should be easy to get around this -- I'll probably just create a local, unexported version of cov2cor() in the car package, something like
>
> cov2cor <- function(V) stats::cov2cor(as.matrix(V))
>
> Best,
> John
>
>>
>> On Thu, Feb 22, 2018 at 11:01 AM, Fox, John <jfox at mcmaster.ca> wrote:
>> > Dear Toni,
>> >
>> >> -----Original Message-----
>> >> From: Toni Hernandez-Matias [mailto:ahmatias at gmail.com]
>> >> Sent: Thursday, February 22, 2018 10:01 AM
>> >> To: Fox, John <jfox at mcmaster.ca>
>> >> Cc: r-sig-mixed-models at r-project.org
>> >> Subject: Re: [R-sig-ME] variance inflation factor
>> >>
>> >> Dear John,
>> >>
>> >> Thank you very much for your message.
>> >>
>> >> Did you know a bibliographic reference for this method, specifically
>> >> in the case of generalized linear mixed models?
>> >
>> > Sorry, I don't, but don't see why the general idea wouldn't apply here (as Ben
>> mentioned in his response). By the way, the more general vif() function in the
>> car package works for lme() in nlme but not for lmer() or glmer() in lme4
>> (because the result returned by vcov() for a "merMod" object isn't of class
>> "matrix"). We should probably make it work.
>> >
>> > Best,
>> > John
>> >
>> >>
>> >> Thank you again,
>> >>
>> >> Antonio
>> >>
>> >> On Thu, Feb 22, 2018 at 3:51 PM, Fox, John <jfox at mcmaster.ca
>> >> <mailto:jfox at mcmaster.ca> > wrote:
>> >>
>> >>
>> >> Dear Toni,
>> >>
>> >> Yes, that looks reasonable, although I'm not sure why it's
>> >> necessary to test for more than one fixed-effect intercept at the
>> >> beginning of the fixed-effect coefficient vector and how an intercept
>> >> could be named "Intercept" rather than "(Intercept)". Assuming that
>> >> there's a reason that escapes me, here's a simplified
>> >> version:
>> >>
>> >> vif.lme <- function (fit) {
>> >> ## adapted from rms::vif
>> >> v <- vcov(fit)
>> >> nam <- names(fixef(fit))
>> >> ## exclude intercepts
>> >> ns <- sum(nam == "Intercept" | nam == "(Intercept)")
>> >> if (ns > 0) v <- v[-(1:ns), -(1:ns), drop = FALSE]
>> >> diag(solve(cov2cor(v)))
>> >> }
>> >>
>> >> I hope this helps,
>> >> John
>> >>
>> >>
>> >> -----------------------------
>> >> John Fox, Professor Emeritus
>> >> McMaster University
>> >> Hamilton, Ontario, Canada
>> >> Web: socialsciences.mcmaster.ca/jfox/
>> >> <http://socialsciences.mcmaster.ca/jfox/>
>> >>
>> >>
>> >>
>> >>
>> >> > -----Original Message-----
>> >> > From: R-sig-mixed-models
>> >> [mailto:r-sig-mixed-models-bounces at r-
>> >> <mailto:r-sig-mixed-models-bounces at r->
>> >> > project.org <http://project.org> ] On Behalf Of Toni
>> >> Hernandez- Matias
>> >> > Sent: Thursday, February 22, 2018 7:28 AM
>> >> > To: r-sig-mixed-models at r-project.org
>> >> <mailto:r-sig-mixed-models at r- project.org>
>> >> > Subject: [R-sig-ME] variance inflation factor
>> >> >
>> >> > Dear all,
>> >> >
>> >> > Could some help me to calculate Variance Inflation Factors of
>> >> models fitted
>> >> > with glmer and lmer ?
>> >> >
>> >> > I found the method I copy below but I am not sure it is correct:
>> >> >
>> >> > vif.lme <- function (fit) {
>> >> > ## adapted from rms::vif
>> >> > v <- vcov(fit)
>> >> > nam <- names(fixef(fit))
>> >> > ## exclude intercepts
>> >> > ns <- sum(1 * (nam == "Intercept" | nam == "(Intercept)"))
>> >> > if (ns > 0) {
>> >> > v <- v[-(1:ns), -(1:ns), drop = FALSE]
>> >> > nam <- nam[-(1:ns)] }
>> >> > d <- diag(v)^0.5
>> >> > v <- diag(solve(v/(d %o% d)))
>> >> > names(v) <- nam
>> >> > v }
>> >> >
>> >> >
>> >> >
>> >> > ##la estimamos para el modelo 1
>> >> >
>> >> > vif.lme(mod1)
>> >> >
>> >> >
>> >> > Thank you very much in advance,
>> >> >
>> >> > Antonio
>> >> >
>> >> >
>> >> > --
>> >> >
>> >> *********************************************************
>> >> >
>> >> > Antonio Hernandez Matias
>> >> >
>> >> > Equip de Biologia de la Conservació
>> >> > Departament de Biologia Evolutiva, Ecología i Ciències
>> >> Ambientals Facultat de
>> >> > Biologia i Institut de Recerca de la Biodiversitat (IRBio) Universitat de
>> >> > Barcelona (UB) Av. Diagonal, 643
>> >> > Barcelona 08028
>> >> > Spain
>> >>
>> >> > Telephone: +34-934035857 <tel:%2B34-934035857>
>> >> <+34%20934%2003%2058%2057>
>> >> > FAX: +34-934035740 <tel:%2B34-934035740>
>> >> <+34%20934%2003%2057%2040>
>> >> > e-mail: ahernandezmatias at ub.edu
>> >> <mailto:ahernandezmatias at ub.edu>
>> >> >
>> >> >
>> >>
>> ***********************************************************
>> >> >
>> >> > [[alternative HTML version deleted]]
>> >> >
>> >> > _______________________________________________
>> >> > R-sig-mixed-models at r-project.org
>> >> <mailto:R-sig-mixed-models at r- project.org> mailing list
>> >> > https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>> >> <https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> --
>> >>
>> >> *********************************************************
>> >>
>> >> Antonio Hernandez Matias
>> >>
>> >> Equip de Biologia de la Conservació
>> >> Departament de Biologia Evolutiva, Ecología i Ciències Ambientals
>> >> Facultat de Biologia i Institut de Recerca de la Biodiversitat
>> >> (IRBio) Universitat de Barcelona
>> >> (UB) Av. Diagonal, 643
>> >> Barcelona 08028
>> >> Spain
>> >> Telephone: +34-934035857
>> >> FAX: +34-934035740
>> >> e-mail: ahernandezmatias at ub.edu <mailto:ahernandezmatias at ub.edu>
>> >>
>> >>
>> ***********************************************************
More information about the R-sig-mixed-models
mailing list