Построение кумулятивных распределений с осью 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.

Другие вопросы по тегам