Dostałem to zadanie i byłem zakłopotany. Kolega poprosił mnie o oszacowanie i poniższej tabeli:
Krzywa jest w rzeczywistości rozkładem skumulowanym, a x jest rodzajem pomiaru. Jest zainteresowany, aby wiedzieć, jakie są odpowiednie wartości na x, gdy funkcja skumulowana zaczęła być prosta i odchylać się od bycia prostą.
Rozumiem, że możemy użyć różnicowania, aby znaleźć nachylenie w punkcie, ale nie jestem zbyt pewien, jak ustalić, kiedy możemy nazwać linię prostą. Wszelkie sugestie dotyczące już istniejącego podejścia / literatury będą mile widziane.
Znam też R, jeśli zdarzyło Ci się znać jakieś odpowiednie pakiety lub przykłady dotyczące tego rodzaju dochodzeń.
Wielkie dzięki.
AKTUALIZACJA
Dzięki Flounderer mogłem rozszerzyć pracę, skonfigurować ramy i majsterkować parametry tu i tam. Dla celów edukacyjnych tutaj jest mój obecny kod i grafika.
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))
źródło
Odpowiedzi:
Oto szybki i brudny pomysł oparty na sugestii @ alex.
Wygląda trochę jak twoje dane. Chodzi teraz o przyjrzenie się pochodnej i sprawdzenie, gdzie jest ona największa. To powinna być część twojej krzywej, w której jest najprostsza, ponieważ ma kształt litery S.
cutoff
źródło