2014-11-11 2 views
2

Полезно для просмотра ваших данных. Когда у вас есть несколько переменных, вы можете сформировать матрицу рассеянного экрана, например, pairs(). Матрица рассеяния дает вам набор двумерных маргинальных прогнозов ваших данных.Пары матрицы с qq-графиками

set.seed(8092) 
X <- matrix(rnorm(80), ncol=4) 
pairs(X) 

enter image description here

Вы также можете иметь данные для различных групп и хотим сравнить их распределения. Два таких распределения можно сравнить с qq-графиком.

set.seed(4415) 
group1 <- rnorm(20) 
group2 <- rnorm(20) 
qqplot(group1, group2) 
abline(c(0,1)) 

enter image description here

Если у вас есть несколько групп, было бы удобно, если бы там были пары типа участка, который будет отображать матрицу q¯q-участков.

colnames(X) <- c("group1", "group2", "group3", "group4") 
qq.pairs(X) 

Есть ли такая функция? Есть ли простой способ закодировать его с нуля?

+0

http://stackoverflow.com/questions/19599745/qqline-in-ggplot2-with-facets – NPE

+0

Как Общее замечание, я бы очень рекомендовал 'ggplot2'. Это превосходно. – NPE

+0

Спасибо за ссылку @NPE. Я не уверен, буду ли я следовать за кодом в ответе. Является ли это построение 1 набора эмпирических данных против другого набора эмпирических данных или эмпирических данных против теоретического нормали? Кажется, это последнее. – gung

ответ

4

Вы можете добавить любую функцию, которая вам нравится, через аргументы *panel. Например:

set.seed(8092) 
X <- matrix(rnorm(80), ncol=4) 

panel.qq <- function(x, y, ...) { 
    usr <- par("usr"); on.exit(par(usr)) 
    par(usr = c(0, 1, 0, 1), new = TRUE) 
    qqplot(x, y, xlab = deparse(substitute(x)), ylab = deparse(substitute(y))) 
    abline(c(0,1), ...) 
} 

pairs(X, lower.panel = panel.qq) 

enter image description here

Конечно, вы можете использовать panel=panel.qq сделать все квадраты ¯qq участки

+0

Отлично, спасибо. Я думал, что есть способ сделать это. Я просмотрел документацию «пар», но я пропустил это. – gung

2

Я получил сообщение об ошибке с просто положить qqplot в функции панели которой она появляется @rawr решена используя «new = TRUE». Мой подход был вытаскивать х и у значения и использовать points:

panel.qq <- function(x,y, ...) 
{ usr <- par("usr"); on.exit(par(usr)) 
    par(usr = c(usr[1:2], -2,2)) 
    QQ <- qqplot(x,y, plot.it = FALSE) 
    x <- QQ$x; 
    y <- QQ$y; 
    points(x, y, col = "cyan", ...) 
    abline(0,1) 
} 

set.seed(8092) 
X <- matrix(rnorm(80), ncol=4) 
pairs(X, upper.panel=panel.qq) 

enter image description here

+0

Спасибо за помощь. Приятно иметь пару разных способов сделать это. – gung

+0

Вы очень желанны. Вы также высоко цените высокий уровень статистических рекомендаций по CV. –

+0

* & мой низкий уровень возможности программирования (вздох) ... * – gung