gpt4 book ai didi

r - 在一个图中有多个拟合(在 R 中)

转载 作者:行者123 更新时间:2023-12-04 09:15:13 24 4
gpt4 key购买 nike

我想知道如何修改以下代码以获得类似 enter image description here 的情节

    data(airquality)
library(quantreg)
library(ggplot2)
library(data.table)
library(devtools)


# source Quantile LOESS
source("https://www.r-statistics.com/wp-content/uploads/2010/04/Quantile.loess_.r.txt")

airquality2 <- na.omit(airquality[ , c(1, 4)])

#'' quantreg::rq
rq_fit <- rq(Ozone ~ Temp, 0.95, airquality2)
rq_fit_df <- data.table(t(coef(rq_fit)))
names(rq_fit_df) <- c("intercept", "slope")

#'' quantreg::lprq
lprq_fit <- lapply(1:3, function(bw){
fit <- lprq(airquality2$Temp, airquality2$Ozone, h = bw, tau = 0.95)
return(data.table(x = fit$xx, y = fit$fv, bw = paste0("bw=", bw), fit = "quantreg::lprq"))
})

#'' Quantile LOESS
ql_fit <- Quantile.loess(airquality2$Ozone, jitter(airquality2$Temp), window.size = 10,
the.quant = .95, window.alignment = c("center"))
ql_fit_df <- data.table(x = ql_fit$x, y = ql_fit$y.loess, bw = "bw=1", fit = "Quantile LOESS")

我想把所有这些都放在一个情节中。

最佳答案

geom_quantile 可以在内部使用rq 方法计算分位数,因此我们不需要单独创建rq_fit_df。但是,lprqQuantile LOESS 方法在 geom_quantile 中不可用,因此我使用了您提供的数据框并使用几何线

此外,为了在颜色和线型映射以及图例中包含 rq 线,我们添加了 aes(colour="rq", linetype="rq") 作为 geom_quantile 中的一种“人工”映射。

library(dplyr) # For bind_rows()

ggplot(airquality2, aes(Temp, Ozone)) +
geom_point() +
geom_quantile(quantiles=0.95, formula=y ~ x, aes(colour="rq", linetype="rq")) +
geom_line(data=bind_rows(lprq_fit, ql_fit_df),
aes(x, y, colour=paste0(gsub("q.*:","",fit),": ", bw),
linetype=paste0(gsub("q.*:","",fit),": ", bw))) +
theme_bw() +
scale_linetype_manual(values=c(2,4,5,1,1)) +
labs(colour="Method", linetype="Method",
title="Different methods of estimating the 95th percentile by quantile regression")

enter image description here

关于r - 在一个图中有多个拟合(在 R 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47519716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com