Почему мой график ccdf начинается с 0.4 вместо 1? - PullRequest
0 голосов
/ 13 апреля 2019

Я использовал коды, опубликованные сообществом, для построения ccdf в R. Во многих случаях он работает нормально, однако для следующих данных он строит график ccdf, начиная с 0.4, а не с 1;Может кто-нибудь, пожалуйста, помогите?

x = c(50.76535,54.89802,74.12376,72.67228,50.76535,50.76535,50.76535,50.76535,50.76535,50.76535,72.67228,59.54455,72.67228,72.67228,72.67228,50.76535,50.76535,72.20198,50.76535,89.10891,50.76535,72.67228,50.76535,72.20198,50.76535,50.76535,50.76535)

plot(sort(x) , 1-ecdf(x)(sort(x) ), xlab = "x = log mean rain", ylab = "P(X > x)", pch = 1
     , ylim = c(0,1),t='b', log = 'x')

enter image description here

1 Ответ

1 голос
/ 15 апреля 2019

ecdf начинается с 0. Он непрерывен справа и скачет в каждой точке данных.Таким образом, он равен 0 перед min(x), и его первый переход имеет значение min(x):

x <- c(50.76535,54.89802,74.12376,72.67228,50.76535,50.76535,50.76535,50.76535,
       50.76535,50.76535,72.67228,59.54455,72.67228,72.67228,72.67228,50.76535,
       50.76535,72.20198,50.76535,89.10891,50.76535,72.67228,50.76535,72.20198,
       50.76535,50.76535,50.76535)
Fn <- ecdf(x)

Fn(min(x) - 1)
# 0
Fn(min(x))
# 0.5555556

. ecdf , а также его дополнительная функция пошаговые функции .Когда вы делаете ecdf (x) , вы получаете функцию шага.Для определения дополнительного ecdf необходимо использовать stepfun:

jumps_at <- sort(unique(x))
CFn <- stepfun(jumps_at, c(1, 1-Fn(jumps_at)))

plot(CFn, xlab = "x = mean rain", ylab = "P(X > x)", 
     verticals = FALSE, pch = 19, ylim = c(0,1)) 

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...