Часто полезно построить линию данных (например, подобранную линию регрессии или непараметрическую линию НИЗКОГО значения) поверх данных. Аналогичным образом, когда переменные смешаны, часто полезно построить данные x1, y, стратифицированные по x2. Тем не менее, я не могу понять, как объединить оба, используя ? Coplot . Это должно быть вполне естественно в решетке , но я тоже не могу понять, как это сделать.
Ниже приведены некоторые данные для игры:
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](https://i.stack.imgur.com/sk8xF.png)
Вот предельный график x2
против y
, с подогнанной линией регрессии и предельной линией НИЗКОГО, нанесенной поверх данных. Это будет выглядеть странно для людей, которые не являются статистически подкованными.
![marginal plot of x2 vs y, with fitted regression line and marginal LOWESS](https://i.stack.imgur.com/Uf3jf.png)
Это то, что я имею в виду. Это коплот, с регрессионной моделью и линией LOWESS, прикрепленной к каждому слою данных, нанесенных на каждую панель.
![coplot with regression lines and conditional LOWESSes overlaid](https://i.stack.imgur.com/kdWEB.png)