2014-03-13 66 views
0

我想創建一個帶鬍鬚的箱形圖。我想比較幾項研究。對於每一個研究中,我有在Stata(或R)中創建帶鬍鬚的箱形圖

  1. 意味着
  2. 標準偏差SD
  3. 若干意見正

我怎樣才能做到這一點在Stata 13?

通常我會鍵入

graph box var 

var不是平均........

+0

我有相同的數據加載到R.所以,如果有人知道如何在R - 那麼它的罰款由我。我嘗試使用> boxplot和> bxp – user3416877

+0

將數據或結構相同的示例數據發佈爲[可粘貼的R代碼](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-例)。 – ziggystar

+0

你有權訪問所有數據點嗎?如果不是,則顯示平均值+/- SD的簡單barplot可能是優選的。 – TWL

回答

2

如果您從每項研究中獲得的都是平均值,標準差和觀測次數,則無法生成準確的箱線圖。但是,你可以假設的結果遵循特定的分佈(如正態分佈),並利用這些彙總統計繪製合成產生的數據集的箱線圖:

set.seed(144) 
dat <- data.frame(study=c("A", "B", "C"), mean=c(1, 1.5, 1.2), sd=c(1, 2, 3), 
        n=c(40, 100, 12)) 
synthetic <- do.call(rbind, lapply(split(dat, seq(nrow(dat))), function(row) { 
    data.frame(study=row$study, y=rnorm(row$n, row$mean, row$sd)) 
})) 
boxplot(y~study, data=synthetic) 

enter image description here

只是重申一下,這是合成的數據是繪製,假設研究結果的特定分佈形式。如果您需要繪製研究結果,則需要了解每項研究的更多信息 - 最小值和最大值,25,50和75四分位數以及任何異常值。

+0

如果你願意承擔的數據是正常的,你可以計算的位置鉸鏈/圍欄/等。直接(你不需要模擬,雖然它確實解決了問題)。 –

0

這裏有一個辦法做到這一點的R.如果你有機會獲得個人數據點,你可以這樣做以下:

# Fake data 
y = rnorm(100) 

boxplot(y) 

如果你只有彙總統計,你可以手動更改值箱和晶須統計如下:

plot1 = boxplot(y) 
plot1$stats 
      [,1] 
[1,] -2.1433772 
[2,] -0.5599737 
[3,] 0.1944167 
[4,] 0.6697005 
[5,] 2.2113372 

上述數字是爲了:下鬍鬚,下箱,中線,上箱,上須。你可以改變這些數字,你有什麼值,如下所示:

plot1$stats = c(-1.5, -1.2, 0.3, 1.2, 2.6) 

或更改單值如下:

plot1$stats[2] = -1.2 

然後重繪情節:

boxplot(plot1$stats) 

這是所有非常快速和骯髒,但希望這會讓你開始。