[R] glmmLasso with interactions errors

Walker Pedersen wsp at uwm.edu
Sat Jul 16 20:26:34 CEST 2016


Hi,

Thanks for the response.

The warnings and errors can be reproduced with the data and code I
included in my first mailing list post. I will provide the full output
at the end of this post.

By sketchy, I mean having a higher likelihood of resulting in
overfitting.  By more straightforward, I mean having a less steep
learning curve for implementation.

Thanks for your help!


> KNov <- read.table("Novelty_abr.txt", header = TRUE)
> KNov$Subject <- factor(KNov$Subject)
> glm1 <- glmmLasso(Activity~as.factor(Novelty) + as.factor(Valence) + STAIt + as.factor(ROI)
+ + as.factor(Valence):as.factor(ROI), list(Subject=~1), data = KNov, lambda=10)
> summary(glm1)
Call:
glmmLasso(fix = Activity ~ as.factor(Novelty) + as.factor(Valence) +
    STAIt + as.factor(ROI) + as.factor(Valence):as.factor(ROI),
    rnd = list(Subject = ~1), data = KNov, lambda = 10)


Fixed Effects:

Coefficients:
                                       Estimate StdErr z.value p.value
(Intercept)                          0.14047593     NA      NA      NA
as.factor(Novelty)R                 -0.06333466     NA      NA      NA
as.factor(Valence)N                 -0.03537854     NA      NA      NA
STAIt                               -0.00173351     NA      NA      NA
as.factor(ROI)B                     -0.00438142     NA      NA      NA
as.factor(ROI)H                      0.00016285     NA      NA      NA
as.factor(Valence)N:as.factor(ROI)B -0.00739870     NA      NA      NA
as.factor(Valence)N:as.factor(ROI)H  0.00000000     NA      NA      NA

Random Effects:

StdDev:
           Subject
Subject 0.05186835
> glm2 <- glmmLasso(Activity~as.factor(Novelty) + as.factor(Valence) + STAIt + as.factor(ROI)
+ + as.factor(Novelty):as.factor(Valence):as.factor(ROI),
list(Subject=~1), data = Nov7T, lambda=10)
Warning messages:
1: In split.default((1:ncol(X))[-inotpen.which], ipen) :
  data length is not a multiple of split variable
2: In lambda_vec * sqrt(block2) :
  longer object length is not a multiple of shorter object length
3: In lambda_vec * sqrt(block2) :
  longer object length is not a multiple of shorter object length
4: In lambda_vec * sqrt(block2) :
  longer object length is not a multiple of shorter object length
5: In lambda_vec * sqrt(block2) :
  longer object length is not a multiple of shorter object length
6: In lambda_vec * sqrt(block2) :
  longer object length is not a multiple of shorter object length
7: In lambda_vec * sqrt(block2) :
  longer object length is not a multiple of shorter object length
8: In lambda_vec * sqrt(block2) :
  longer object length is not a multiple of shorter object length
9: In lambda_vec * sqrt(block2) :
  longer object length is not a multiple of shorter object length
> summary(glm2)
Call:
glmmLasso(fix = Activity ~ as.factor(Novelty) + as.factor(Valence) +
    STAIt + as.factor(ROI) +
as.factor(Novelty):as.factor(Valence):as.factor(ROI),
    rnd = list(Subject = ~1), data = Nov7T, lambda = 10)


Fixed Effects:

Coefficients:
                                                             Estimate
StdErr z.value p.value
(Intercept)                                                -0.0562165
   NA      NA      NA
as.factor(Novelty)R                                        -0.0218362
   NA      NA      NA
as.factor(Valence)N                                        -0.0067723
   NA      NA      NA
STAIt                                                       0.0028832
   NA      NA      NA
as.factor(ROI)BNST                                         -0.0457882
   NA      NA      NA
as.factor(ROI)Hip                                          -0.0430477
   NA      NA      NA
as.factor(Novelty)N:as.factor(Valence)E:as.factor(ROI)Amy   0.0000000
   NA      NA      NA
as.factor(Novelty)R:as.factor(Valence)E:as.factor(ROI)Amy   0.0000000
   NA      NA      NA
as.factor(Novelty)N:as.factor(Valence)N:as.factor(ROI)Amy   0.0164788
   NA      NA      NA
as.factor(Novelty)R:as.factor(Valence)N:as.factor(ROI)Amy   0.0067723
   NA      NA      NA
as.factor(Novelty)N:as.factor(Valence)E:as.factor(ROI)BNST  0.0000000
   NA      NA      NA
as.factor(Novelty)R:as.factor(Valence)E:as.factor(ROI)BNST  0.0000000
   NA      NA      NA
as.factor(Novelty)N:as.factor(Valence)N:as.factor(ROI)BNST  0.0000000
   NA      NA      NA
as.factor(Novelty)R:as.factor(Valence)N:as.factor(ROI)BNST  0.0000000
   NA      NA      NA
as.factor(Novelty)N:as.factor(Valence)E:as.factor(ROI)Hip   0.0000000
   NA      NA      NA
as.factor(Novelty)R:as.factor(Valence)E:as.factor(ROI)Hip   0.0000000
   NA      NA      NA
as.factor(Novelty)N:as.factor(Valence)N:as.factor(ROI)Hip   0.0338616
   NA      NA      NA
as.factor(Novelty)R:as.factor(Valence)N:as.factor(ROI)Hip   0.0000000
   NA      NA      NA

Random Effects:

StdDev:
           Subject
Subject 0.09132963
> glm3 <- glmmLasso(Activity~as.factor(Novelty) + as.factor(Valence) + STAIt + as.factor(ROI)
+ + as.factor(Valence):as.factor(ROI) + as.factor(Novelty):STAIt,
list(Subject=~1), data = Nov7T, lambda=10)
Error in rep(control$index[i], length.fac) : invalid 'times' argument
> summary(glm3)
Error in summary(glm3) : object 'glm3' not found

On Sat, Jul 16, 2016 at 12:51 PM, David Winsemius
<dwinsemius at comcast.net> wrote:
>
>> On Jul 16, 2016, at 9:29 AM, Walker Pedersen <wsp at uwm.edu> wrote:
>>
>> Thank you for the input Brian and Ben.
>>
>> It is odd how it seems to handle a two way interaction fine (as long
>> as the continuous variable is not in the mix), but not a 3-way.
>
> You should post code and data to demonstrate what is "not being handled".
>>
>> In any case would anyone be able to give me a rundown of how I would
>> create a matrix/dummy variable for these interactions to input into
>> glmmLASSO?
>
> Your first question on this dataset June 17 to CrossValidated.com was closed because no reproducible example was offered. You then posted two further questions on StackOverflow and got guesses as to the solutions  because you again posted no reproducible examples. One of those questions was given in this thread as a possible solution. IN the otehr one you did post some output that gave clues as to the arrangement of your data and suggested that the categorical data was relatively sparse:
>
> http://stackoverflow.com/questions/38132830/getting-p-values-for-all-included-parameters-using-glmmlasso
>
> Now you are getting advice that is similarly just speculation due to lack of code,  data and output. You are unlikely to get further advice that addresses what ever problems you have vaguely described unless you post examples of code that is failing along with either a) the real data or b) R code that creates a simulation with covariate features resembling your data.
>>
>> Alternatively, is there a method for paring down a model that is a bit
>> less sketchy than simple backfitting, that you would expect to be more
>> straight forward software-wise?
>
> That appears incredibly vague. Exactly what is "sketchy"? And what would be "more straightforward"?
>
> --
> David.
>
>
>> Thanks!
>>
>> Walker
>>
>> UW-MKE
>>
>> On Thu, Jul 14, 2016 at 10:08 AM, Cade, Brian <cadeb at usgs.gov> wrote:
>>> It has never been obvious to me that the lasso approach can handle
>>> interactions among predictor variables well at all.  I'ld be curious to see
>>> what others think and what you learn.
>>>
>>> Brian
>>>
>>> Brian S. Cade, PhD
>>>
>>> U. S. Geological Survey
>>> Fort Collins Science Center
>>> 2150 Centre Ave., Bldg. C
>>> Fort Collins, CO  80526-8818
>>>
>>> email:  cadeb at usgs.gov
>>> tel:  970 226-9326
>>>
>>>
>>> On Wed, Jul 13, 2016 at 2:20 PM, Walker Pedersen <wsp at uwm.edu> wrote:
>>>>
>>>> Hi Everyone,
>>>>
>>>> I am having trouble running glmmLasso.
>>>>
>>>> An abbreviated version of my dataset is here:
>>>>
>>>> https://drive.google.com/open?id=0B_LliPDGUoZbVVFQS2VOV3hGN3c
>>>>
>>>> Activity is a measure of brain activity, Novelty and Valence are
>>>> categorical variables coding the type of stimulus used to elicit the
>>>> response, ROI is a categorical variable coding three regions of the
>>>> brain that we have sampled this activity from, and STAIt is a
>>>> continuous measure representing degree of a specific personality trait
>>>> of the subjects. Subject is an ID number for the individuals the data
>>>> was sampled from.
>>>>
>>>> Before glmmLasso I am running:
>>>>
>>>> KNov$Subject <- factor(KNov$Subject)
>>>>
>>>> to ensure the subject ID is not treated as a continuous variable.
>>>>
>>>> If I run:
>>>>
>>>> glm1 <- glmmLasso(Activity~as.factor(Novelty) + as.factor(Valence) +
>>>> STAIt + as.factor(ROI)
>>>> + as.factor(Valence):as.factor(ROI), list(Subject=~1), data = KNov,
>>>> lambda=10)
>>>> summary(glm1)
>>>>
>>>> I don't get any warning messages, but the output contains b estimates
>>>> only, no SE or p-values.
>>>>
>>>> If I try to include a 3-way interaction, such as:
>>>>
>>>> glm2 <- glmmLasso(Activity~as.factor(Novelty) + as.factor(Valence) +
>>>> STAIt + as.factor(ROI)
>>>> + as.factor(Novelty):as.factor(Valence):as.factor(ROI),
>>>> list(Subject=~1), data = Nov7T, lambda=10)
>>>> summary(glm2)
>>>>
>>>> I get the warnings:
>>>>
>>>> Warning messages:
>>>> 1: In split.default((1:ncol(X))[-inotpen.which], ipen) :
>>>>  data length is not a multiple of split variable
>>>> 2: In lambda_vec * sqrt(block2) :
>>>>  longer object length is not a multiple of shorter object length
>>>>
>>>> And again, I do get parameter estimates, and no SE or p-values.
>>>>
>>>> If I include my continuous variable in any interaction, such as:
>>>>
>>>> glm3 <- glmmLasso(Activity~as.factor(Novelty) + as.factor(Valence) +
>>>> STAIt + as.factor(ROI)
>>>> + as.factor(Valence):as.factor(ROI) + as.factor(Novelty):STAIt,
>>>> list(Subject=~1), data = Nov7T, lambda=10)
>>>> summary(glm3)
>>>>
>>>> I get the error message:
>>>>
>>>> Error in rep(control$index[i], length.fac) : invalid 'times' argument
>>>>
>>>> and no output.
>>>>
>>>> If anyone has an input as to (1) why I am not getting SE or p-values
>>>> in my outputs (2) the meaning of there warnings I get when I include a
>>>> 3-way variable, and if they are something to worry about, how to fix
>>>> them and (3) how to fix the error message I get when I include my
>>>> continuous factor in an interatction, I would be very appreciative.
>>>>
>>>> Thanks!
>>>>
>>>> Walker
>>>>
>>>> ______________________________________________
>>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>> PLEASE do read the posting guide
>>>> http://www.R-project.org/posting-guide.html
>>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>>
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> David Winsemius
> Alameda, CA, USA
>



More information about the R-help mailing list