Hi, 

thank you very much for your kind answer.

>If you look a bit further down the manual page you will see
>### using a model formula to specify the same model
>rma(yi, vi, mods=~factor(alloc)+year+ablat, data=dat, method="REML", 
>btt=c(2,3))


>which is much easier.


I have seen the possibility of using a model formula for dummy encoding and you 
are right it is much easier than doing it by hand.
Thing is that if I include some moderator variables into the parameters I get 
the error:

Error in qr.solve(wX, diag(k)) : singular matrix 'a' in solve

For example this call works:
result = rma(yi=Mean, vi=Variance, ni=N.1, mods=~factor(Country) + 
relevel(factor(Sample), ref="Students") + Gender + Age + factor(Category) + 
relevel(factor(Block), ref="c")+ relevel(factor(order), ref="x"), 
data=csvDataCmaAll, method="REML")


If I add the trials which is of type INT:
result = rma(yi=Mean, vi=Variance, ni=N.1, mods=~factor(Country) + 
relevel(factor(Sample), ref="Students") + Gender + Age + factor(Category) + 
relevel(factor(Block), ref="c")+ relevel(factor(order), ref="x") + trials, 
data=csvDataCmaAll, method="REML")

I get the error and I was not able to find a definite reason for this error or 
how to solve it I wanted to try it by doing it manually. 
I think I have found out that it somehow relates to the 

>If you code them yourself R does not know. You know.

Regarding this I think my question was not clear enough. If R does the dummy 
encoding automatically via a model formula it leaves out one of the factors and 
uses it as a baseline automatically. If I do it by hand R is still able to 
execute the function but the baseline is missing because I do not define it via 
a parameter.
I simply want to know how R is handling this and what I have to do by hand to 
get the correct results. Sorry, this may be a beginners question, but as stated 
I am new to this field.

>You say you have seven moderator variables. Unless you have a shed 

>load of studies you will not be able to look at them simultaneously. 
>Apologies if you already knew that.


No I have not known that. In total I have about 94 studies and want to test 
different sets of moderators. Do you think this is sufficient or do you suggest 
another approach?
I started in CMA (comprehensive meta analysis) but one of the benefits of R is 
that I am able to test multiple moderators at once - at least as I was told.

kind regards,
Alma


________________________________
 From: Michael Dewey <i...@aghmed.fsnet.co.uk>

r-project.org> 
Sent: Sunday, January 20, 2013 12:52 PM
Subject: Re: [R] dummy encoding in metafor

At 17:14 19/01/2013, Alma Wilflinger wrote:
>Hi,
>
>I am quite new to R and in need of some advice. I am trying to 
>conduct a meta regression over a some studies with about 7 mod 
>variables which I have to dummy encode.

Alma, although you can generate your own dummy variables by hand you 
do not have to as R will do it for you. See below for more comments.


>I have found the following piece of code in the manual for the 
>metafor library:
>
>### manual dummy coding of the allocation factor
>alloc.random <- ifelse(dat$alloc == "random", 1, 0)
>alloc.alternate <- ifelse(dat$alloc == "alternate", 1, 0)
>alloc.systematic <- ifelse(dat$alloc == "systematic", 1, 0)

If you look a bit further down the manual page you will see
### using a model formula to specify the same model
rma(yi, vi, mods=~factor(alloc)+year+ablat, data=dat, method="REML",
btt=c(2,3))

which is much easier.

>### test the allocation factor (in the presence of the other moderators)
>### note: "alternate" is the reference level of the allocation factor
>### note: the intercept is the first coefficient, so btt=c(2,3)
>rma(yi, vi, mods=cbind(alloc.random, alloc.systematic, year, ablat), 
>data=dat, method="REML", btt=c(2,3))
>
>What I do not understand is the following:
>How does R know which columns in my data.frame are related to the 
>dummy encoded variables?

If you code them yourself R does not know. You know.


>It is clear that in the call of cbind I just do not use the 
>reference variable as a parameter but I do not get it how R knows 
>that alloc.random and alloc.systematic refer to the column alloc in 
>the data frame.
>
>Thank you very much in advance for your help,
>

You say you have seven moderator variables. Unless you have a shed 
load of studies you will not be able to look at them simultaneously. 
Apologies if you already knew that.

>kind regards,
>Alma
>         [[alternative HTML version deleted]]

Michael Dewey
i...@aghmed.fsnet.co.uk
http://www.aghmed.fsnet.co.uk/home.html
        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
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.

Reply via email to