Среднее значение со стандартными ошибками различных частей диапазона x на одном и том же графике - PullRequest
1 голос
/ 09 июня 2019

Я хочу дать средние и стандартные ошибки значений y для различных частей диапазона x на моем графике. между серыми вертикальными линиями. Погуглил и проверил все предыдущие ответы без посторонней помощи.

Фрейм данных:

dput(data) structure(list(Year = c(1970, 1971, 1972, 1973, 1974, 1975, 1976, 
1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 
1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 
2010, 2011, 2012, 2013, 2014, 2015, 2016), Tot = c(52, 46, 19, 
52, 94, 102, 104, 143, 117, 146, 135, 132, 152, 134, 138, 141, 
134, 134, 134, 145, 152, 126, 139, 138, 97, 120, 97, 98, 76, 
84, 102, 98, 99, 96, 96, 98, 102, 102, 107, 109, 109, 107, 112, 
107, 93, 114, 108)), row.names = c(NA, -47L), class = c("tbl_df", 
"tbl", "data.frame"))

Сценарий построения:

plot(data$Year,data$Tot,type="b",xlab="" ,ylab="",
 ylim=c(0,200),lty="solid",lwd=2,col='black',cex.lab=1.5,las=1,cex=1.5)
abline(v=1994,col="grey",lty="dotted",lwd=3)
abline(v=2005,col="grey",lty="dotted",lwd=3)
abline(v=2010,col="grey",lty="dotted",lwd=3)

График вывода плюсов нарисованных вручную средств и стандартных погрешностей оттенков: enter image description here

1 Ответ

1 голос
/ 09 июня 2019

Отредактировано, чтобы отразить пересмотренный пост ОП

# Calculate standard errors for each year range
se1970 <- sd(data$Tot[data$Year >= 1970 & data$Year < 1994]) / sqrt(length(data$Tot[data$Year >= 1970 & data$Year < 1994]))
se1994 <- sd(data$Tot[data$Year >= 1994 & data$Year < 2005]) / sqrt(length(data$Tot[data$Year >= 1994 & data$Year < 2005]))
se2005 <- sd(data$Tot[data$Year >= 2005 & data$Year < 2010]) / sqrt(length(data$Tot[data$Year >= 2005 & data$Year < 2010]))
se2010 <- sd(data$Tot[data$Year >= 2010]) / sqrt(length(data$Tot[data$Year >= 2010]))

# Calculate means for each year range
mean1970 <- mean(data$Tot[data$Year >= 1970 & data$Year < 1994])
mean1994 <- mean(data$Tot[data$Year >= 1994 & data$Year < 2005])
mean2005 <- mean(data$Tot[data$Year >= 2005 & data$Year < 2010])
mean2010 <- mean(data$Tot[data$Year >= 2010])

# 1970-1993
polygon(x = c(1970, 1970, 1993, 1993),
        y = c(mean1970 + se1970, mean1970 - se1970, mean1970 - se1970, mean1970 + se1970),
        col = alpha("#4286f4", .25))
lines(x = 1970:1993, y = rep(mean1970, length(1970:1993)),
      col = "red", lwd = 2)

# 1993-2004
polygon(x = c(1994, 1994, 2004, 2004),
        y = c(mean1994 + se1994, mean1994 - se1994, mean1994 - se1994, mean1994 + se1994),
        col = alpha("#4286f4", .25))
lines(x = 1994:2004, y = rep(mean1994, length(1994:2004)),
      col = "red", lwd = 2)

# 2005-2009
polygon(x = c(2005, 2005, 2009, 2009),
        y = c(mean2005 + se2005, mean2005 - se2005, mean2005 - se2005, mean2005 + se2005),
        col = alpha("#4286f4", .25))
lines(x = 2005:2009, y = rep(mean2005, length(2005:2009)),
      col = "red", lwd = 2)

# 2010-2016
polygon(x = c(2010, 2010, 2016, 2016),
        y = c(mean2010 + se2010, mean2010 - se2010, mean2010 - se2010, mean2010 + se2010),
        col = alpha("#4286f4", .25))
lines(x = 2010:2016, y = rep(mean2010, length(2010:2016)),
      col = "red", lwd = 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...