2014-10-28 46 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)) 
相關問題