Я получил эту задачу и был поставлен в тупик. Коллега попросил меня оценить и следующего графика: х л о ж е г
Кривая на самом деле является кумулятивным распределением, а х является своего рода измерениями. Ему интересно знать, каковы соответствующие значения на x, когда накопительная функция начала становиться прямой и отклоняться от прямой.
Я понимаю, что мы можем использовать дифференцирование, чтобы найти наклон в точке, но я не слишком уверен, как определить, когда мы можем назвать прямую линию. Любой толчок к уже существующему подходу / литературе будет высоко оценен.
Я также знаю R, если вы знаете какие-либо соответствующие пакеты или примеры таких расследований.
Большое спасибо.
ОБНОВИТЬ
Благодаря Flounderer я смог расширить работу, настроить фреймворк и настроить параметры здесь и там. Для целей обучения вот мой текущий код и графический вывод.
library(ESPRESSO)
x <- skew.rnorm(800, 150, 5, 3)
x <- sort(x)
meanX <- mean(x)
sdX <- sd(x)
stdX <- (x-meanX)/sdX
y <- pnorm(stdX)
par(mfrow=c(2,2), mai=c(1,1,0.3,0.3))
hist(x, col="#03718750", border="white", main="")
nq <- diff(y)/diff(x)
plot.ts(nq, col="#6dc03480")
log.nq <- log(nq)
low <- lowess(log.nq)
cutoff <- .7
q <- quantile(low$y, cutoff)
plot.ts(log.nq, col="#6dc03480")
abline(h=q, col="#348d9e")
x.lower <- x[min(which(low$y > q))]
x.upper <- x[max(which(low$y > q))]
plot(x,y,pch=16,col="#03718750", axes=F)
axis(side=1)
axis(side=2)
abline(v=c(x.lower, x.upper),col="red")
text(x.lower, 1.0, round(x.lower,0))
text(x.upper, 1.0, round(x.upper,0))
источник
Ответы:
Вот быстрая и грязная идея, основанная на предложении @ alex.
Это немного похоже на ваши данные. Идея состоит в том, чтобы посмотреть на производную и попытаться увидеть, где она самая большая. Это должна быть часть вашей кривой, где она прямая, потому что это S-образная форма.
Это покачивается, потому что некоторые из значений оказываются очень близко друг к другу. Однако, регистрация логов помогает, и тогда вы можете использовать сглаженную версию.x
Теперь вы можете попытаться найти вот так:x
Конечно, все это в конечном счете чувствительно к выбору,y
cutoff
а также к выбору алгоритма сглаживания, а также к получению журналов, когда мы могли бы сделать какое-то другое преобразование. Кроме того, для реальных данных случайное изменение может также вызвать проблемы с этим методом. Производные не ведут себя численно. Редактировать: добавлена картинка вывода.источник