Me dieron esta tarea y me quedé perplejo. Un colega me pidió que calcule y de la siguiente tabla: x l o w e r
La curva es en realidad una distribución acumulativa, y x es algún tipo de medidas. Le interesa saber cuáles son los valores correspondientes en x cuando la función acumulativa comenzó a ser recta y se desvió de ser recta.
Entiendo que podemos usar la diferenciación para encontrar la pendiente en un punto, pero no estoy muy seguro de cómo determinar cuándo podemos llamar a la línea recta. Cualquier empujón hacia algún enfoque / literatura ya existente será muy apreciado.
Sé R también si conoces algún paquete o ejemplo relevante sobre este tipo de investigaciones.
Muchas gracias.
ACTUALIZAR
Gracias a Flounderer pude ampliar aún más el trabajo, configurar un marco y modificar los parámetros aquí y allá. Para fines de aprendizaje, aquí están mi código actual y una salida gráfica.
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))
fuente
Respuestas:
Aquí hay una idea rápida y sucia basada en la sugerencia de @ alex.
Se parece un poco a sus datos. La idea ahora es mirar la derivada e intentar ver dónde es más grande. Esta debería ser la parte de su curva donde es más recta, debido a que tiene forma de S.
cutoff
fuente