gpt4 book ai didi

r - 如何在 coplot 中的数据上绘制回归或 LOWESS 线

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

在数据上绘制一条线(例如,拟合回归线或非参数 LOWESS 线)通常很有帮助。同样,当变量被混淆时,绘制 x1, y 数据按 x2 分层通常很有帮助。但是,我不太清楚如何使用 ?coplot 将两者结合起来。 .这在 lattice 中应该是很自然的,但我似乎也无法弄清楚如何在那里做到这一点。

以下提供了一些可供使用的数据:

library(MASS)
set.seed(7422)
X <- mvrnorm(100, mu=c(5,5), Sigma=rbind(c(2.0, 1.9),
c(1.9, 2.0) ) )
x1 <- X[,1]; x2 <- X[,2]
y <- 3 + .6*x1 - .4*x2 + rnorm(100)
m <- lm(y~x1+x2)
summary(m)$coefficients
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 3.8281801 0.4022204 9.517619 1.476519e-15
# x1 0.5466495 0.2060269 2.653292 9.314673e-03
# x2 -0.4835804 0.2139542 -2.260205 2.604451e-02
windows()
pairs(cbind(y, x1, x2))
xs <- seq(1.6, 9.2, by=.1)
windows()
plot(y~x2)
lines(xs, predict(m, data.frame(x1=5.2, x2=xs)), col="blue")
windows()
coplot(y~x2|x1)
## doesn't work (lines on plot were drawn by hand)
# lines(xs, predict(m, data.frame(x1=mean(x1[subscripts], x2=xs)), col="blue")
# lines(lowess(y~x2, subset=x1[subscripts]), col="gray")

原始数据的散点图矩阵:

scatterplot matrix of the raw data

这是 x2 的边际图对比 y ,拟合回归线和绘制在数据顶部的边际 LOWESS 线。对于不精通统计学的人来说,这看起来很奇怪。

marginal plot of x2 vs y, with fitted regression line and marginal LOWESS

这就是我的想法。这是一个coplot,具有回归模型和适合每个面板内绘制的每个数据层的LOWESS线。

coplot with regression lines and conditional LOWESSes overlaid

最佳答案

要做到这一点coplot ,您需要定义自己的面板功能。默认函数是 points它只是绘制点,但您可以使用简单的函数添加回归线和 Lowess 曲线。

PointsWithReg = function(x, y, pch=20, col=1, ...) {
points(x=x, y=y, col=col, pch=pch, type="p", ...)
abline(lm(y ~ x))
lines(lowess(x=x, y=y), col="blue")
}

coplot(y~x2|x1, panel=PointsWithReg, pch=16)

Coplot with regression line and lowess

关于r - 如何在 coplot 中的数据上绘制回归或 LOWESS 线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53233176/

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