0

hope you can help me with this issue! In my study I have 4 outcome variables which correspond to the ratings I collected for 4 different psychological dimensions (liking, comfort, approach, attractiveness). The 4 psychological dimensions are defined in the column ‘ratetype’ and the column 'ratings' reports the score. I also have 2 independent variables: 'paintingtype', which is a categorical variable with 3 experimental conditions, and ArtInterest, which is the self-rated measure on a 5-points Liker scale. This is my data structure:

Observations: 7,872
Variables: 14
$ X              <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16…
$ PID                  <fct> 571b712f5d40840009c44804, 5798f7a116020100010411ac, 5…
$ ArtInterest    <int> 4, 4, 4, 5, 4, 4, 3, 2, 3, 3, 5, 4, 4, 4, 4, 3, 5, 5,…
$ ratings              <int> 15, 72, 21, 80, 91, 13, 58, 36, 18, 70, 10, 49, 82, 1…
$ ratetype       <fct> Liking, Liking, Liking, Liking, Liking, Liking, Likin…
$ paintingtype     <fct> Angular, Angular, Angular, Angular, Angular, Angular,…
$ paintingID    <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…

At the moment I subsetted the data in 4 different datasets with the following code:

# # Select data for ‘LIKING’
Liking <- subset(mdata, ratetype == "Liking",
                   select=c("PID", “ArtInterest", "ratings",
                            "paintingtype", "paintingID" ))

This is the data structure of the subsetted dataset:

$ PID          <fct> 571b712f5d40840009c44804, 5798f7a116020100010411…
$ ArtInterest  <int> 4, 4, 4, 5, 4, 4, 3, 2, 3, 3, 5, 4, 4, 4, 4, 3, …
$ ratings      <int> 15, 72, 21, 80, 91, 13, 58, 36, 18, 70, 10, 49, …
$ paintingtype <fct> Angular, Angular, Angular, Angular, Angular, Ang…
$ paintingID   <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …

and then run 4 different analysis with the model below:

m1 <-  lme(ratings ~ paintingtype:ArtInterest, random= (~1|PID/paintingID), data=Liking, method = "ML")

Q1: Would be better to run one single MANOVA instead of 4 different lme models? Q2: As every participant ('PID') rated 16 items ('paintingID') for every experimental condition, how can I control for the random effect of those two variables in the MANOVA?

Thank you in advance for your help!

EDIT: Following the suggestions in the comments, I built the following model:

m <- lmer(ratings ~ paintingtype + ArtInterest + ratetype + (ratetype | PID/paintingID) , data=mdata)

however I receive the following warning message:

singular fit

What does it mean? Should I worry about it? Any suggestion will be much appreciated!

Nicole
  • 25
  • 5
  • 1
    You can always run a manova as a multilevel model. I don't quite understand your model -wnat are the 4 datasets? Perhaps include your subset command. – Jeremy Miles Jul 31 '19 at 15:59
  • @JeremyMiles thanks for your suggestion. I updated the question as you suggested – Nicole Aug 01 '19 at 09:47
  • @JeremyMiles I am not sure how to run a MANOVA as multilevel model: are you suggesting to add 'ratetype' as a fixed effect in my model? – Nicole Aug 01 '19 at 09:55
  • Here's an article about it. https://link.springer.com/chapter/10.1007/978-3-319-20585-4_16 . I'm fairly sure that the book Serious Stats by Baguley covers it (as do many others). – Jeremy Miles Aug 02 '19 at 16:30
  • @JeremyMiles thanks – Nicole Aug 03 '19 at 10:58
  • About singular fits: https://stats.stackexchange.com/questions/378939/dealing-with-singular-fit-in-mixed-models – mkt Aug 05 '19 at 18:59
  • TL;DR Your model is too complex – mkt Aug 05 '19 at 19:01
  • Thanks everyone for your useful comments. I decided to run 4 different models for each of my outcome variable to avoid building a model that is too complex – Nicole Aug 05 '19 at 19:11

1 Answers1

1

A short answer to the updated question: your model is too complex. You will need to either simplify your model (typically one removes more complex random effects) or to switch to a Bayesian approach to fitting your model. A more thorough explanation can be found here.

mkt
  • 11,770
  • 9
  • 51
  • 125
  • thanks for the link. I am considering running a simple repeated-measures ANOVA using the 'aov' function in R, which might be enough to model my data. – Nicole Aug 06 '19 at 10:37
  • @Nicole You can start by removing the random slopes, and then simplify it further as needed. – mkt Aug 06 '19 at 10:38