[R-sig-ME] GLMM - Prediction

Cleber Iack profiack at gmail.com
Sun Mar 4 01:06:35 CET 2018


Dear

First, thank you very much for your time in answering.

I'm sending a code that I tried not to inform the ID and I couldn't,

Displays the following error at the end

"Error in eval (predvars, date, env): object ID not found"

I'd appreciate it if you could give me some guidance

Thanks
####

library(plyr)

library(dplyr)

library(lme4)

n = 300

xx<-c("r1", "r2", "r3", "r4", "r5")

xxx<-c("e1", "e2", "e3")

p=0.3

School = factor(sample(xxx, n, replace=TRUE), levels=xxx, ordered=FALSE)

Rank = factor(sample(xx, n, replace=TRUE), levels=xx, ordered=FALSE)



df1 <- data_frame(

  ID = as.integer(runif(n, min = 1, max = n/7)),

  xx1 = runif(n, min = 0, max = 10),

  xx2 = runif(n, min = 0, max = 10),

  xx3 = runif(n, min = 0, max = 10),

  School = School,

  Rank = Rank,

  yx = as.factor(rbinom(n, size = 1, prob = p))

)

df1 = df1[order(df1$ID, decreasing=FALSE),]

library(lme4)

mm2 <- glmer(yx ~ xx1 + xx2 + xx3 + Rank +  (1 | ID) + (1 | School / Rank),
data = df1,

             family = "binomial",control = glmerControl(calc.derivs =
FALSE))



n11 <-  data.frame(School=factor("e1", levels =
levels(df1$School),ordered=FALSE),

                   Rank=factor("r1", levels =
levels(df1$Rank),ordered=FALSE),

                   xx1=8.58, xx2=8.75, xx3=7.92)

predict(mm2, n11, type="response",re.form= ~(1 | School / Rank))

##


2018-03-02 9:46 GMT+00:00 Thierry Onkelinx <thierry.onkelinx at inbo.be>:

> Dear Iack,
>
> Look at the re.form argument of ?lme4::predict.merMod. This allows you the
> make predictions without the ID random effect.
>
> Best regards,
>
>
> ir. Thierry Onkelinx
> Statisticus / Statistician
>
> Vlaamse Overheid / Government of Flanders
> INSTITUUT VOOR NATUUR- EN BOSONDERZOEK / RESEARCH INSTITUTE FOR NATURE AND
> FOREST
> Team Biometrie & Kwaliteitszorg / Team Biometrics & Quality Assurance
> thierry.onkelinx at inbo.be
> Havenlaan 88
> <https://maps.google.com/?q=Havenlaan+88&entry=gmail&source=g> bus 73,
> 1000 Brussel
> www.inbo.be
>
> ////////////////////////////////////////////////////////////
> ///////////////////////////////
> To call in the statistician after the experiment is done may be no more
> than asking him to perform a post-mortem examination: he may be able to say
> what the experiment died of. ~ Sir Ronald Aylmer Fisher
> The plural of anecdote is not data. ~ Roger Brinner
> The combination of some data and an aching desire for an answer does not
> ensure that a reasonable answer can be extracted from a given body of data.
> ~ John Tukey
> ////////////////////////////////////////////////////////////
> ///////////////////////////////
>
> <https://www.inbo.be>
>
> 2018-03-02 1:09 GMT+01:00 Cleber Iack <profiack at gmail.com>:
>
>> Dear,
>>
>> I have n different companies with different characteristics and each
>> company of this has the same positions
>> I selected data from several members of each position of each Company, and
>> there were behavioral variables ranging from 0 to 10, which to facilitate
>> I
>> will call x1, x2, x3, these variables were collected more than once for
>> each person.
>>
>> The objective is to predict the probability of occurrence of a fact, and
>> each person was also noted if this fact occurred or not. (0 or 1)
>>
>> Using
>>
>> formMod1= fato~  x1+x2+x3+(1 | company / position)
>> Mod1 <- glmer( formMod1 , data = dadosord , family = binomial,
>>                      control = glmerControl(optimizer="bobyqa"))
>>
>> This model I can make a prediction without "problems"
>>
>> n11 <-  data.frame(company =factor("M1", levels =
>> levels(dadosord$company ),ordered=FALSE),
>>                    position=factor("P1", levels =
>> levels(dadosord$position),ordered=FALSE),
>>                    x1=1, x2=7,x3=7)
>> predict( Mod1 , n11, type="response")
>>
>> But I was worried because I have more than one observation of the
>> characteristics per individual, if I would not have to put it also as
>> random
>> or somehow analyze this structure of possible correlation
>>
>> Thinking about the first case I did
>>
>> formMod2= fato~  x1+x2+x3+(1 | company / position) + (1 | ID)
>> Mod2 <- glmer( formMod2 , data = dadosord , family = binomial,
>>                      control = glmerControl(optimizer="bobyqa"))
>>
>> But in this case when trying to predict the probability of the fact, the
>> function "predict" asks me who is the proposed id, which is out of
>> interest, since I must study for a random person who has the same features
>> x1, x2, x3, company and position.
>>
>> And the second form, if any, I do not know how I would do
>>
>> Thanks for the help of my friends.
>>
>> Iack
>>
>>         [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-sig-mixed-models at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>>
>
>

	[[alternative HTML version deleted]]



More information about the R-sig-mixed-models mailing list