我正在努力在我的回归线周围获得置信区间。我的数据由 7 列和 50000 行组成。
ID H.FC HFD N.FC NFD Group
G00000000004 1.08403833300442 0.00209119205547622 1.12705351468201 0.0017652841766293 BvsA
G00000000059 1.70298155378132 0.000146008455537281 1.78927991144484 0.000126476263754446 BvsA
G00000000067 1.48885136450707 1.94192154467639e-05 1.49169658915702 5.47633140183071e-05 CvsA
G00000000081 5.92680429312136 3.63075878342954e-06 5.89059544062979 7.07992913581687e-06 DvsA
G00000000086 0.499795076715132 0.00265935106849242 0.542319766242586 0.00212335608196823 BvsC
G00000000102 -2.60510733887004 0.000669953697126189 -2.62720386931755 0.000122899865824463 BvsA
G00000000104 -2.80909148854584 0.00686396994798396 -2.94362698679174 0.00342818761913247 BvsA
G00000000106 0.255264785072867 0.0388723342557597 0.174743590276556 0.197263787912382 BvsD
G00000000109 1.32895814248434 0.000311378914835491 1.30541212379603 0.000308851884560488 EvsF
这是我的代码:
data <- read.table("grid_contrast_1-8.tsv", header=T)
df <- data.frame(data$H.FC, data$N.FC, data$Group)
png("grid_scatter.png")
ggplot(df, aes(data.H.FC, data.N.FC, color = data.H.FC)) +
geom_point(size = 0.5) +
stat_smooth(geom = 'line', alpha = 0.5, se = TRUE, color = "black", level = 0.95) +
facet_wrap(~ data.Group) +
labs(x = "H", y = "F") +
scale_color_gradient(low = "#0091ff", high = "#f0650e")
dev_off()
以上是我得到的:
我想在回归线周围有置信区间带,如下所示:
由于我没有在 stat_smooth 中指定“se=FALSE”,我应该得到间隔,但不知何故我没有得到它。请问有人可以帮忙吗?
提前谢谢了。
最佳答案
SE 色带就在那里,只是很小!你有大量的观察结果,它们落在一条非常整齐的线上,所以看起来你的置信区间不是很宽。我改变了一些东西来测试这个。我只抽取了每组 1% 的样本并绘制了该样本,因此置信区间不会那么窄。我还将置信水平提高到 0.999。由于观察较少,geom_smooth
默认为 LOESS;不确定您是否有平滑线所需的特定参数,但您可能想要更改方法及其参数。
library(tidyverse)
df <- read_tsv("~/Downloads/test_file.tsv") %>%
select(2, 4, 6) %>%
setNames(c("data.H.FC", "data.N.FC", "data.Group"))
set.seed(123)
df %>%
group_by(data.Group) %>%
sample_frac(0.01) %>%
ggplot(aes(data.H.FC, data.N.FC, color = data.H.FC)) +
geom_point(size = 0.5) +
stat_smooth(color = "black", size = 0.5, level = 0.999) +
facet_wrap(~ data.Group) +
labs(x = "H", y = "F") +
scale_color_gradient(low = "#0091ff", high = "#f0650e")
#> `geom_smooth()` using method = 'loess' and formula 'y ~ x'
在拐角处,您现在可以看到 SE 色带。这不是您的代码的问题,只是变得可见的问题。
由 reprex package (v0.2.0) 于 2018 年 4 月 6 日创建。
关于r - 没有得到置信区间ggplot R,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49694937/