0 votos

¿Cómo aplicar algoritmos estadísticos para "regular" la variación de una curva?

A continuación publico dos gráficos. Quiero regular la curvatura del primer gráfico utilizando algunos métodos estadísticos como el uso de las desviaciones estándar, y modular mi gráfico para parecerse a la segunda.

No estoy preguntando aquí por ningún comando de matlab, sino por algún método estadístico que pueda implementar usando MATLAB.

Gracias y saludos, Nick.

haga clic para ver esta primera imagen: mi Gráfico

.

haga clic para ver esta segunda imagen- Gráfico que me propongo conseguir

1voto

BruceET Puntos 7117

Tu primera curva podría calificarse de "suave" según muchas definiciones. Pero parece que usted quiere hacer algún tipo de "suavizado de curvas", siguiendo un enfoque subjetivo que compo subjetivo que se ajuste a tu definición de "suavidad". Hay al menos dos enfoques.

En primer lugar, tiene en mente un tipo concreto de curva como objetivo. Tal vez un polinomio de segundo grado. Entonces podrías digitalizar la curva original tomando una o dos docenas $(x,y)$ puntos que considera representación adecuada de la misma. A continuación, elija un modelo de regresión adecuado, para ajustar más suavemente $y$ basado en el $x$ 's. Quizás $y_i = \beta_0 + \beta_1 x_i + \beta_2 x_i^2 + e_i,$ donde $e_i \stackrel{iid}{\sim} \mathsf{Norm}(0, \sigma).$ Si no te gusta el resultado, tal vez añadir un término cúbico e inténtalo de nuevo. (Además, el análisis de "series temporales" proporciona muchos otros tipos de modelos, incluidos los cíclicos basados en funciones trigonométricas).

He aquí un ejemplo burdo de ajuste cuadrático a unos pocos puntos.

enter image description here

En segundo lugar, se contenta con dejar que algún procedimiento de suavizado de uso frecuente haga el trabajo. La mayoría de los algoritmos de suavizado tienen varios parámetros que pueden ajustarse a lograr lo que consideres suficiente suavidad. Uno de ellos se denomina 'LOWESS' o 'LOESS' (este último término también se utiliza en geología para para algo muy diferente). Empezaríamos como arriba con una versión digitalizada de la curva original. A grandes rasgos, LOWESS utiliza la regresión lineal en intervalos sucesivos sucesivos de una anchura determinada, seguido de un proceso informático intensivo de piezas lineales para obtener una curva suave.

He utilizado la versión de LOWESS implementada en el software estadístico R y me ha parecido fácil de usar para obtener curvas "suaves" según mi gusto personal. Buscando en Google, veo que hay una versión Matlab de LOWESS; no tengo Matlab a mano, pero una exploración superficial de una descripción de LOWESS de Matlab me lleva a suponer que es similar al procedimiento en R.

He aquí un resultado insatisfactorio de LOWESS en R, utilizando los mismos pocos puntos que en la figura de regresión anterior. Se necesitarían tres o cuatro veces más puntos para obtener un resultado satisfactorio. satisfactorio, pero esta figura muestra que las "curvas" de LOWESS están formadas por trozos lineales.

enter image description here

Quizás pueda obtener una visión general satisfactoria en el artículo de Wikipedia sobre 'LOWESS' y la documentación de Matlab. LOWESS fue desarrollado para curvas suaves a través de gráficos de dispersión de puntos de datos con cierta variabilidad, pero no veo razón por la que no funcionaría para convertir 'datos' digitalizados de una curva como la inicial en una curva final que yo consideraría satisfactoriamente 'más suave'.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X