2014-01-07 175 views
3

添加置信區間水平指示線我試圖產生Obersved的圖表/預期醫院感染率用誤差條表示上部和下部和95%和99.7%的置信區間。在geom_linerange()在GGPLOT2

下面是數據:

orthssi <- structure(list(Hospital = structure(1:18, .Label = c("A", "B", 
"C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", 
"P", "Q", "R"), class = "factor"), SSIs = c(80L, 38L, 24L, 35L, 
39L, 30L, 128L, 27L, 70L, 30L, 30L, 2L, 6L, 38L, 3L, 9L, 52L, 
13L), Procedures = c(865L, 1069L, 796L, 891L, 997L, 550L, 2598L, 
373L, 1079L, 714L, 477L, 227L, 125L, 589L, 292L, 149L, 1984L, 
351L), Expected = c(44.89, 51.149, 35.15, 42.495, 46.987, 26.999, 
105.032, 18.304, 57.402, 31.409, 23.497, 10.898, 5.945, 29.614, 
13.295, 6.403, 88.449, 16.083), OE = c(1.782, 0.743, 0.683, 0.824, 
0.83, 1.111, 1.219, 1.475, 1.219, 0.955, 1.277, 0.184, 1.009, 
1.283, 0.226, 1.406, 0.588, 0.808), Probability = c(0.092, 0.036, 
0.03, 0.039, 0.039, 0.055, 0.049, 0.072, 0.065, 0.042, 0.063, 
0.009, 0.048, 0.065, 0.01, 0.06, 0.026, 0.037), Lower95CI = c(1.42623345874945, 
0.528256888855857, 0.439593399216354, 0.576826930846085, 0.593304300509315, 
0.755779204034742, 1.02072916367972, 0.983076938281617, 0.957133142026683, 
0.648442622896373, 0.86951670130161, 0.0222623281070364, 0.374607285544628, 
0.916025825389466, 0.0466447169655834, 0.651315412316165, 0.440436907019126, 
0.433548700419708), Upper95CI = c(2.19254259114914, 1.01294537379558, 
1.00844478624614, 1.13663544526487, 1.12647704263608, 1.56764294951526, 
1.44220199258348, 2.11060633474044, 1.52742490796631, 1.35122425878491, 
1.7979937836084, 0.655351540870752, 2.13516991355386, 1.73993010418865, 
0.652957058228699, 2.59615214768047, 0.76780774565962, 1.36405674299719 
), Lower997CI = c(1.26545076052984, 0.438514548720716, 0.344268212303677, 
0.474612391243614, 0.493987129703437, 0.611131699675563, 0.929047103197505, 
0.785094671227173, 0.840231592610583, 0.523894662155343, 0.703500240342274, 
0.00513071434039922, 0.20498124083422, 0.761788735802099, 0.0165744691173032, 
0.414157407130073, 0.376765181801129, 0.303424472695538), Upper997CI = c(2.41408837016438, 
1.16380466027892, 1.19392754588927, 1.31181443961792, 1.29178515824501, 
1.82316431734875, 1.56260724140783, 2.46519277997175, 1.69514346690893, 
1.57391071859294, 2.08889292293282, 0.966984581231215, 2.80639425224956, 
1.99287051089929, 0.928351140481638, 3.28891183173877, 0.867510832843342, 
1.68791001193251)), .Names = c("Hospital", "SSIs", "Procedures", 
"Expected", "OE", "Probability", "Lower95CI", "Upper95CI", "Lower997CI", 
"Upper997CI"), row.names = c(NA, -18L), class = "data.frame") 
> ssi0106 <- dput(orthssi) 
structure(list(Hospital = structure(1:18, .Label = c("A", "B", 
"C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", 
"P", "Q", "R"), class = "factor"), SSIs = c(80L, 38L, 24L, 35L, 
39L, 30L, 128L, 27L, 70L, 30L, 30L, 2L, 6L, 38L, 3L, 9L, 52L, 
13L), Procedures = c(865L, 1069L, 796L, 891L, 997L, 550L, 2598L, 
373L, 1079L, 714L, 477L, 227L, 125L, 589L, 292L, 149L, 1984L, 
351L), Expected = c(44.89, 51.149, 35.15, 42.495, 46.987, 26.999, 
105.032, 18.304, 57.402, 31.409, 23.497, 10.898, 5.945, 29.614, 
13.295, 6.403, 88.449, 16.083), OE = c(1.782, 0.743, 0.683, 0.824, 
0.83, 1.111, 1.219, 1.475, 1.219, 0.955, 1.277, 0.184, 1.009, 
1.283, 0.226, 1.406, 0.588, 0.808), Probability = c(0.092, 0.036, 
0.03, 0.039, 0.039, 0.055, 0.049, 0.072, 0.065, 0.042, 0.063, 
0.009, 0.048, 0.065, 0.01, 0.06, 0.026, 0.037), Lower95CI = c(1.42623345874945, 
0.528256888855857, 0.439593399216354, 0.576826930846085, 0.593304300509315, 
0.755779204034742, 1.02072916367972, 0.983076938281617, 0.957133142026683, 
0.648442622896373, 0.86951670130161, 0.0222623281070364, 0.374607285544628, 
0.916025825389466, 0.0466447169655834, 0.651315412316165, 0.440436907019126, 
0.433548700419708), Upper95CI = c(2.19254259114914, 1.01294537379558, 
1.00844478624614, 1.13663544526487, 1.12647704263608, 1.56764294951526, 
1.44220199258348, 2.11060633474044, 1.52742490796631, 1.35122425878491, 
1.7979937836084, 0.655351540870752, 2.13516991355386, 1.73993010418865, 
0.652957058228699, 2.59615214768047, 0.76780774565962, 1.36405674299719 
), Lower997CI = c(1.26545076052984, 0.438514548720716, 0.344268212303677, 
0.474612391243614, 0.493987129703437, 0.611131699675563, 0.929047103197505, 
0.785094671227173, 0.840231592610583, 0.523894662155343, 0.703500240342274, 
0.00513071434039922, 0.20498124083422, 0.761788735802099, 0.0165744691173032, 
0.414157407130073, 0.376765181801129, 0.303424472695538), Upper997CI = c(2.41408837016438, 
1.16380466027892, 1.19392754588927, 1.31181443961792, 1.29178515824501, 
1.82316431734875, 1.56260724140783, 2.46519277997175, 1.69514346690893, 
1.57391071859294, 2.08889292293282, 0.966984581231215, 2.80639425224956, 
1.99287051089929, 0.928351140481638, 3.28891183173877, 0.867510832843342, 
1.68791001193251)), .Names = c("Hospital", "SSIs", "Procedures", 
"Expected", "OE", "Probability", "Lower95CI", "Upper95CI", "Lower997CI", 
"Upper997CI"), row.names = c(NA, -18L), class = "data.frame") 

這是我ggplot代碼生成的情節:

ggplot(data=orthssi, mapping=aes(x=Hospital, y=OE, ymin = Lower997CI, ymax = Upper997CI)) + 
    geom_hline(yintercept=1, colour='gray') + 
    geom_point(colour='blue', size=3) + 
    scale_y_continuous(limits=c(0,ceiling(max(orthssi$Upper997CI)))) + 
    geom_linerange(mapping=aes(x=Hospital)) + 
    theme_bw() + theme(panel.grid.major.x = element_blank()) 

它產生如下圖: O/E infection rate by hospital

我想做的,不能管理,它放置在geom_linerange小的水平蜱()指示的上部和下部95%的99.7%CON位置信號間隔。

編輯 如果你是一個忍者ggplot我也能接受指示不同線條顏色,其中99.7 &獨聯體延伸超過95%可信區間。

如何添加這些蜱提供任何幫助/顏色是極大的讚賞。

回答

7

geom_errorbar將創建在末端臥式巴的線路範圍。因此,下面的工作

ggplot(data=orthssi, mapping=aes(x=Hospital, y=OE, ymin = Lower997CI, ymax = Upper997CI)) + 
    geom_hline(yintercept = 1, colour = 'gray') + 
    geom_point(colour = 'blue', size = 3) + 
    scale_y_continuous(limits=c(0, ceiling(max(orthssi$Upper997CI)))) + 
    theme_bw() + theme(panel.grid.major.x = element_blank()) + 
    geom_errorbar(aes(ymin = Lower95CI,ymax = Upper95CI),width = 0.2,colour = 'red') + 
    geom_errorbar(width = 0.2) 

enter image description here

注意,geom_linerange(mapping = aes(x = Hospital))組件已被刪除,因爲它被畫成的geom_errorbar(width = 0.2)

部分