es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Eliminar el final de los datos en R.

Tengo un marco de datos como este:

 head(fq)
    x  freq
1 150 12994
2 151   832
3 152   879
4 153   680
5 154   837
6 155   971

Lo he trazado con ggplot2:
imagen principal

Y la versión ampliada es esta. Ahora quiero calcular el punto desde el cual debo eliminar la cola ruidosa de los datos:
imagen ampliada

También intenté ajustar una curva con ggplot smooth.

     g<-ggplot(data = data.frame(fq), aes(x = x, y = freq))+
  geom_line()+labs(title = paste0("Distribución del tamaño de los picos"),x = "cuentas", y = "frecuencia")+theme_bw()+
  scale_x_continuous(limits = c(0,2000),breaks = seq(0,2000,200))+
  scale_y_continuous(limits = c(0, 1000),breaks = seq(0,1000,100))+
  geom_smooth(aes(outfit=gfit<<-..y..),se = FALSE, method = "gam", formula = y ~ s(log(x)))

Pero después de esto no estoy seguro de cómo calcular el punto donde la pendiente cambia significativamente, para poder cortar desde allí, estimando alrededor de 400 en mi gráfico de ejemplo agregado. ¿Necesito calcular un punto de inflexión, un punto de cambio o solo pendientes?

Tampoco estoy seguro si podré determinar la primera pico inicial calculando alguno de los anteriores. ¡Cualquier sugerencia será muy útil!

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en reducción de ruido, aquí hay algunas sugerencias sobre cómo calcular el punto en el que deberías eliminar la cola ruidosa de los datos:

    • Un enfoque podría ser calcular el cambio en la pendiente utilizando la función diff en la columna freq del marco de datos. Puedes trazar el vector resultante para visualizar el cambio en la pendiente en diferentes posiciones a lo largo del eje x.
    • Otro enfoque podría ser ajustar una línea o una curva a los datos e identificar el punto de inflexión o el punto donde la pendiente cambia significativamente. Puedes utilizar varios métodos estadísticos o paquetes como segmented, stats o spline para ajustar la curva e identificar el punto de inflexión.
    • Además, también puedes utilizar tu conocimiento del dominio para determinar el punto de corte para la cola ruidosa. Por ejemplo, si sabes que la relación señal-ruido disminuye después de un umbral determinado, puedes establecer eso como el punto de corte.

    En el gráfico de ejemplo dado, parece que la pendiente cambia alrededor de 400, como mencionó el usuario. Sin embargo, esto puede no ser siempre el caso y dependerá de las características específicas de los datos. Es importante utilizar una combinación de métodos e inspeccionar visualmente los datos para tomar una decisión informada sobre dónde cortar la cola ruidosa.

Comments are closed.