2 votos

Calcular la fórmula de distribución de datos a partir de los puntos de datos

Tengo 50.000 datos en una lista.

10 muestras aleatorias:

4,877; 4,165; 6,152; 5,544; 6,942; 7,409; 6,415; 5,592; 6,947; 4,965; 4,688

Estoy intentando hacer 2 cosas, pero desgraciadamente me he dado cuenta de que mis habilidades matemáticas son muy escasas.

  1. Quiero crear un gráfico que describa cómo se distribuyen los datos. Para ser más específico, quiero un gráfico con 0-100% en el eje Y, y los valores de los datos a lo largo del eje X en orden ascendente. Y para cada valor X debería describir cuántos porcentajes de los datos son mayores que el valor X. Esto debería resultar en un gráfico que comience en ~100% para el valor X más bajo, y que termine en 0% para el valor X más alto.

  2. Si es posible, quiero derivar una fórmula aproximada para calcular Y para cada valor X basándome en los 50.000 puntos de datos proporcionados.

Actualización Se me ha ocurrido este gráfico. ¿Cómo puedo obtener la fórmula más precisa para calcular los valores?

enter image description here

Nunca he intentado algo así y no sé por dónde empezar. He probado a trastear con Excel, pero no avanzo mucho.

¿Cómo puedo conseguir lo que pretendo? ¿Alguna herramienta que pueda ayudarme? Además, ¿el tipo de gráfico que intento hacer tiene un nombre oficial?

2voto

Avraham Puntos 1845

Parte 1

Lo que quieres es un gráfico de la función de supervivencia . Si utilizas Excel, la forma más sencilla de hacerlo sería ordenar los 50.000 puntos de datos en orden ascendente, y en la siguiente columna, empezar por el 1 y a medida que vas bajando por las filas, restar 1/50K al valor de la celda de arriba. No puedes crear un gráfico de dispersión donde X es la columna 1 e Y es la columna 2. Si tienes acceso a R, puedes utilizar la función quantile para hacer algo similar. Aunque calcular los cuantiles puede ser complicado (R tiene 8 o 9 versiones), el método de Excel anterior debería ser una buena aproximación, especialmente con 50K puntos de datos.

Parte 2

Aunque la respuesta depende en realidad de la distribución de la variable aleatoria subyacente $X$ Si seguimos utilizando la distribución empírica (los valores vistos, no ajustados a ninguna curva), en Excel la fórmula sería la siguiente traducida a Excel: Y_i = countif(XRange, "> X_i") / count(XRange) .

1voto

Grizzly Boy Puntos 11

Lo que está graficando es un función de distribución acumulativa ("cdf"). Si las muestras de datos se generaron a partir de una función de densidad de probabilidad y sabes cuál es esa función, puedes encontrar la fórmula de la cdf calculando su integral. Si no es así, tendrás que hacer algún ajuste empírico de la curva si quieres una fórmula para predecir Y a partir de X.

(Antes de continuar, si todo lo que quieres hacer es predecir el valor Y a partir de un valor X, no tienes que calcular necesariamente una fórmula matemática de forma cerrada; si sigues las instrucciones de la "Parte 2" de la respuesta de Avraham más arriba conseguirás lo que quieres. Para ser más específico, digamos que tus 50000 puntos de datos están en las filas 1 a 50000 de la columna A, y que quieres el porcentaje que está por encima de (digamos) X=6540, entonces simplemente escribe =COUNTIF(A1:A50000, ">6540") / COUNT(A1:A50000) en cualquier celda para obtener el porcentaje de los puntos de datos que son mayores que ese valor de X).

Bien, digamos que quieres ajustar una fórmula simple a estos datos. Lo que estás buscando es algún tipo de función sigmoidea La mayoría de las funciones de distribución acumulativa tienen esta forma. Es difícil saber exactamente qué tipo de sigmoide sin saber de dónde proceden los datos, pero para facilitar el cálculo, vamos a utilizar la forma general de la sigmoide que se ve en la parte superior del artículo de la Wikipedia sobre la función sigmoide, que tiene este aspecto en Excel (intente trazarla con valores de X que van de -6 a 6):

=1/(1+EXP(-X))

Para que coincida con su gráfico, queremos darle la vuelta. Además, añadiremos dos nuevas variables. Una la llamaremos A, y controla la nitidez de la caída (los valores mayores que 1 son más nítidos; los valores decimales positivos más cercanos a 0 son más planos. Probablemente necesitarás un valor bastante cercano a cero). Otro valor que llamaremos B es la traslación horizontal (cuánto se desplaza el gráfico hacia la izquierda o la derecha... probablemente debería ser un número bastante grande para que se ajuste a tus datos). La fórmula resultante es:

=(1-(1/(1+EXP(-((X-B)*A)))))

Llegados a este punto, se trata de ajustar los parámetros, es decir, de averiguar qué valores de A y B minimizan la suma de las diferencias al cuadrado entre sus datos y la salida de esta función. Puede hacerlo con Excel a través del plugin Solver, o con Eureqa Desktop. Aunque este método probablemente no le dará una función exacta para la fdc, debería darle un ajuste bastante bueno.

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