Построение кумулятивных распределений с осью Y, масштабированной до нормального распределения в R
Это первый раз, когда у меня возникает вопрос R, который я не смог найти в переполнении стека - извините, если причина, по которой я ничего не нашел, это конкретный термин для того типа вещей, которые я ищу, я я не в курсе (есть?).
Я хотел бы отображать данные в виде совокупной частоты. Так как мой фокус больше сосредоточен на краях Распределения, полезно масштабировать ось Y до нормального распределения. Результат должен выглядеть примерно так:
Я читал о квантильно-квантильных графиках, но, честно говоря, я не могу понять, как их применять, если я хочу сохранить ось X.
Я пробовал оба base
графика и ggplot2
, но не могу понять это. Поэтому мое текущее решение, например,
plot(ecdf(trees$Volume))
или же
ggplot(data=trees, aes(Volume)) + stat_ecdf()
2 ответа
Я думаю, что вы ищете scales
пакет и probability_trans()
функция:
Без преобразования шкалы y:
require(ggplot2)
ggplot(data = trees,
aes(Volume)) +
stat_ecdf()
С преобразованием оси Y:
ggplot(data = trees,
aes(Volume)) +
stat_ecdf() +
scale_y_continuous(trans = scales::probability_trans("norm"))
Вы можете прочитать больше об этом в документах с ?probability_trans
, probability_trans()
Функция принимает стандартные R вероятностных имен для масштабирования вашей оси. Вы также можете создать новое преобразование с trans_new()
если вам нужно что-то совершенно нестандартное.
qpplot.das
функция от StatDA
пакет от Питера Фильцмозера может быть "base
R "путь для вас.
library(StatDA)
qpplot.das(trees$Volume, qdist = qnorm, xlab = "Volume", line = FALSE)
Пакет StatDA использовался для всех расчетов и графики для книги " Статистический анализ данных, объясненный Рейманом, Фильцмозером, Гарретом и Даттером". Все сценарии R находятся в сети, а также примеры для графиков QP.