Мне нужно нарисовать сложную графику для визуального анализа данных. У меня есть 2 переменные и большое количество случаев (> 1000). Например (число равно 100, если дисперсия меньше "нормальной"):
x <- rnorm(100,mean=95,sd=50)
y <- rnorm(100,mean=35,sd=20)
d <- data.frame(x=x,y=y)
1) Мне нужно построить исходные данные с размером точки, соответствующей относительной частоте совпадений, поэтому plot(x,y)
это не вариант - мне нужны размеры точек. Что нужно сделать для этого?
2) На том же графике мне нужно построить эллипс с доверительным интервалом 95% и линию, представляющую изменение корреляции (не знаю, как правильно назвать ее) - что-то вроде этого:
library(corrgram)
corrgram(d, order=TRUE, lower.panel=panel.ellipse, upper.panel=panel.pts)
но с обоими графиками на одном участке.
3) Наконец, мне нужно нарисовать результирующую модель линейной регрессии поверх всего этого:
r<-lm(y~x, data=d)
abline(r,col=2,lwd=2)
но с диапазоном ошибок ... как на QQ-plot:
но для ошибок подгонки, если это возможно.
Итак, вопрос:
Как добиться всего этого на одном графике?
источник
df.new <- data.frame(x = seq(min(x), max(x), 0.1))
лучше. 2) Эллипс рисуется в позиции 0; 0, что неверно, и этоs size is also strange (too small). Also tryed
библиотека (автомобиль) dataEllipse (df y, уровни = 0,95: 1, lty = 2) `, но он отбрасывает все. 3) Кривая (как на корлограмме) отсутствует. Я почти воспроизвел это по телефону, но диапазон данных неверен. Используйте первые 2 строки из моего кода вместо вашей для воспроизведения.library(car) cr.plots(m0)
car::dataEllipse
ellipse
corrgram
пакете: она показывает 95% парную доверительную область, предполагая двумерное нормальное распределение с центром в среднем и масштабированное с помощью SD (x) и SD (y). Я не большой поклонник этого, когда используется на графике рассеяния, хотя. Но см. Murdoch & Chow, Графическое отображение больших корреляционных матриц , Am Stat (1996) 50: 178 или Friendly, Corrgrams: Исследовательские дисплеи для корреляционных матриц , Am Stat (2002) 56: 316.Для точки 1 просто используйте
cex
параметр на графике, чтобы установить размер точки.Например
Чтобы иметь несколько графиков на одном графике, используйте
par(mfrow=c(numrows, numcols))
равномерно распределенный макет илиlayout
сделайте более сложные.источник
cex
, но я думаю, что ОП хочет все вещи в одном и том же регионе, а не в отдельных.curve
илиpoints
пересекать три графика;)