R: Как использовать qqplot() вместо qqPlot() ? (Какой 2-й параметр?)

#r #plot #normal-distribution #quantile

#r #plot #нормальное распределение #квантиль

Вопрос:

Это простой вопрос, но я потратил слишком много времени на поиски ответа.

С помощью qqPlot() из пакета car эта команда создает график, который вы можете использовать для проверки нормальности:

 qqPlot(x)
  

Где x — вектор.
Какая команда использует qqplot () из base для создания того же графика? (Я думаю, что у него не будет приятной области затенения, которая, к сожалению, есть в версии для автомобилей).

Команда требует двух входных данных, и документация не помогает (для меня, во всяком случае).

Причина, по которой я спрашиваю об этом, заключается в том, что требуется изменить масштаб оси x. Когда я искал, как это сделать, я нашел сообщение, в котором говорится, что версия пакета car не позволяет этого, и вместо этого использовать qqplot () . Я нашел то, что мне нужно для установки оси, но теперь мне нужно знать, что использовать в качестве этого 2-го параметра (для генерации соответствующего распределения сравнения).

Ответ №1:

Я всегда использовал qqnorm() with qqline() в базе R для создания qqplots. Может быть, это все, что вам нужно?

 x <- rnorm(30)
qqnorm(x)
qqline(x)
  

В документации к qqplot() второй параметр представляет собой список значений, выбранных случайным образом из заданного распределения. В примере в документации они используют случайные значения из t-распределения, qqplot(y, rt(300, df=5)) . Это похоже на мой пример выше, где rnorm(30) генерируется случайный список значений из нормального распределения.

Ответ №2:

Базовая функция qqplot(x, y) фактически является сокращением для plot(sort(x), sort(y)) (по крайней мере, где x и y имеют одинаковую длину). Это позволяет визуально проверить, происходят ли x и y из распределения аналогичной формы. Это не то же самое, что qqPlot from car , который берет один вектор x и сопоставляет его отсортированные значения с вектором квантилей из нормального распределения.

Предположим, у нас есть вектор x , подобный этому:

 set.seed(69)
x <- rnorm(100)
  

Тогда мы можем сделать

 qqPlot(x)
  

введите описание изображения здесь

Но точки на этом графике такие же, как и на тех, которые мы получили бы с:

 plot(qnorm(ppoints(x)), sort(x))
  

введите описание изображения здесь

Базовая функция R, которая эквивалентна qqPlot , не является qqplot , но qqnorm . Причина разницы в именовании заключается в том, что qqPlot можно проверять и другие дистрибутивы, а не только обычный дистрибутив.

Итак, решение в базе R просто:

 qqnorm(x)
  

введите описание изображения здесь