Maya Joshi
2011-Apr-18 01:59 UTC
[R] covariance matrix: a erro and simple mixed model question, but id not know answer sorry
Dear list
I need your help: Execuse me for my limited R knowledge.
#example data set
set.seed (134)
lm=c(1:4)
block = c(rep(lm,6))
gen <- c(rep(1, 4), rep(2, 4), rep(3, 4), rep(4, 4),rep(5, 4),rep(6, 4))
X1 = c( rnorm (4, 10, 4), rnorm (4, 12, 6), rnorm (4, 10, 7),rnorm (4, 5, 2),
rnorm (4, 8, 4), rnorm (4,7, 2))
X2 = X1 + rnorm(length(X1), 0,3)
yvar <- c(X1, X2)
X <- c(rep( 1, length(X1)), rep( 2, length(X2))) # dummy x variable
dataf <- data.frame(as.factor(block), as.factor(gen), as.factor(X), yvar )
My objective to estimate variance-covariance between two variables X1 and
X2. Means that I need to fit something like unstructure (UN) covariance
structure.
Question 1: I got the following error
require("lme4");
fm1Gen <- lmer(yvar ~ X + gen +(1|block), data= dataf) # Question 1: should
I consider X fixed or random
Error in model.frame.default(data = dataf, formula = yvar ~ X + gen + :
variable lengths differ (found for 'gen')
A tried nlme too.
require(nlme)
fm2Gen <- lme(yvar ~ X + gen, random= ~ 1|block, data= dataf)
Error in model.frame.default(formula = ~yvar + X + gen + block, data = list(
:
variable lengths differ (found for 'gen') # similar error
Question 2: How can get I covariance matrix between X1 and X2 either using
lme4 or lmer.
X1 X2
X1 Var (X1) Cov(X1,X2)
X2 Cov(X1, X2) Var(X2)
Should I put gen in the model to do this? Should I specify something in "*
correlation* = "
Thank you for your time
Maya
[[alternative HTML version deleted]]
Maya Joshi
2011-Apr-18 10:14 UTC
[R] covariance matrix: a erro and simple mixed model question, but id not know answer sorry
Let me clarify the output I want to create: Source X1 (var) X2 (var) X1&X2 (cov) gen var(X1) var(X2) cov(x1X2) block var(X1) var(X2) cov(x1x2) error/ res var(x1) var(x2) cov(x1x2) I need to do posterior analysis out of this table Thanks in advance Maya On Sun, Apr 17, 2011 at 9:59 PM, Maya Joshi <maya.d.joshi@gmail.com> wrote:> Dear list > > I need your help: Execuse me for my limited R knowledge. > > #example data set > set.seed (134) > lm=c(1:4) > > block = c(rep(lm,6)) > > gen <- c(rep(1, 4), rep(2, 4), rep(3, 4), rep(4, 4),rep(5, 4),rep(6, 4)) > > X1 = c( rnorm (4, 10, 4), rnorm (4, 12, 6), rnorm (4, 10, 7),rnorm (4, 5, > 2), rnorm (4, 8, 4), rnorm (4,7, 2)) > > X2 = X1 + rnorm(length(X1), 0,3) > > yvar <- c(X1, X2) > > X <- c(rep( 1, length(X1)), rep( 2, length(X2))) # dummy x variable > > dataf <- data.frame(as.factor(block), as.factor(gen), as.factor(X), yvar ) > > > > My objective to estimate variance-covariance between two variables X1 and > X2. Means that I need to fit something like unstructure (UN) covariance > structure. > > > > Question 1: I got the following error > > require("lme4"); > > fm1Gen <- lmer(yvar ~ X + gen +(1|block), data= dataf) # Question 1: > should I consider X fixed or random > > > > Error in model.frame.default(data = dataf, formula = yvar ~ X + gen + : > variable lengths differ (found for 'gen') > > > > A tried nlme too. > > require(nlme) > > fm2Gen <- lme(yvar ~ X + gen, random= ~ 1|block, data= dataf) > > Error in model.frame.default(formula = ~yvar + X + gen + block, data > list( : > variable lengths differ (found for 'gen') # similar error > > > > Question 2: How can get I covariance matrix between X1 and X2 either using > lme4 or lmer. > > X1 X2 > > X1 Var (X1) Cov(X1,X2) > > X2 Cov(X1, X2) Var(X2) > > > > Should I put gen in the model to do this? Should I specify something in "* > correlation* = " > > Thank you for your time > > Maya > > > > > > > > > > > > > > > > > > >[[alternative HTML version deleted]]