2014-10-28 146 views
0

我正在尝试对可靠性数据进行趋势分析。一个典型的案例是确定指定工厂的特定系统的需求率是否存在10年的趋势。我如何构造数据以使用R lmer

我想生成一个测试用例,但对如何构造数据有点困惑。趋势年份范围从2004年到2013年。在我的测试案例中,每年有10个系统需要计算。我每年使用不同方式和差异的正态分布需求计数。当然,实际数据每年可能不会有相同的系统计数,并且需求计数不一定是正态分布的。

下列R-代码产生似乎是合理的数据帧(DF1)对我说:

yr <- 2004:2013 
y2004 <- rnorm(10, 10, 3) 
y2005 <- rnorm(10, 11, 2) 
y2006 <- rnorm(10, 12, 1) 
y2007 <- rnorm(10, 13, 5) 
y2008 <- rnorm(10, 14, 3) 
y2009 <- rnorm(10, 15, 4) 
y2010 <- rnorm(10, 16, 1) 
y2011 <- rnorm(10, 17, 2) 
y2012 <- rnorm(10, 18, 4) 
y2013 <- rnorm(10, 19, 1) 

df1 <- data.frame(cbind(yr), y2004, y2005, y2006, y2007, y2008, y2009, y2010, y2011, y2012,y2013) 
df2 <- data.frame(cbind(rep(0.0, 100), rep(0.0, 100))) 
names(df2) <- c("x", "y") 
k <-1 
for (i in 1:10) { 
    for (j in 1:10) { 
    df2$x[k] <- df1$yr[i] 
    df2$y[k] <- df1[j,i+1] 
    k <- k + 1 
    } 
} 
boxplot(y ~ x, df2) 

不管怎样,我的第一个问题是DF2的建设似乎没有必要给予我已经在DF1中的数据 - 这是只是对lmer的呼叫似乎需要组织df2。我来电话11聚物如下所示:

fit <- lmer(y ~ x + (1|x), data=df2)  

那么,有没有使用没有11聚物DF2建设的方式,直接使用DF1?还是有更好的方法来完成数据结构?

我的第二个问题是我不确定如何使用lmer来做我想做的事。基本上我正在寻找每年的计数数据,并用一条直线符合每年的平均需求数。最佳拟合应考虑每个汇集年份组数据的差异。我正确地进行了吗?

回答

0

R中几乎所有的绘图和建模功能都需要“长”格式的数据(即df2)。所以如果有的话,我会跳过df1的建设。如果你想直接生成df2,你可以做

df2 <- do.call("rbind.data.frame", Map(cbind, 
    y=Map(function(n,m,s) rnorm(n,m,s), 10, 10:19, c(3,2,1,5,3,4,1,2,3,1)), 
    x=2004:2013)) 
相关问题