#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)