5 votos

¿Cómo dibujar un resultado probable de una distribución?

He recopilado datos posicionales. Para visualizar los datos, me gustaría dibujar un resultado 'típico' de un experimento.

Los datos provienen de unos cientos de experimentos, donde identifico un número variable de objetos en diferentes posiciones relativas al origen en 2D. Por lo tanto, puedo calcular el promedio de objetos, así como estimar la distribución empírica de los objetos. Un gráfico del resultado 'típico' tendría entonces el promedio (o posiblemente la moda) número de objetos, digamos, 5. Lo que no estoy seguro es dónde posicionar estos 5 objetos.

Para simplificar el problema, asumamos que los datos siguen una distribución normal 2D. Si solo tuviera que dibujar aleatoriamente 5 puntos de la distribución, podría obtener un punto en [3,3], que sería un resultado muy raro, y por lo tanto no reflejaría el resultado 'típico' o 'promedio'. Sin embargo, solo dibujar 5 puntos en [0,0] tampoco tendría sentido, incluso si [0,0] es la posición promedio de los objetos, 5 puntos superpuestos no son un resultado 'promedio' del proceso, tampoco.

En otras palabras, ¿cómo puedo obtener un dibujo 'probable' de una distribución?


EDITAR

Parece que debería mencionar por qué no quiero usar los métodos habituales (como un histograma suavizado 2D, o trazar todos los muchos puntos) para ver la distribución 2D.

  1. Los objetos (que son vesículas (es decir, pequeñas esferas) dentro de las células) varían en número, tamaño y posición (distribución de la distancia desde el centro de la célula, cantidad de agrupamiento). Me gustaría mostrar todas estas características en un solo gráfico. Dado que hay varios cientos de células que contienen muchas vesículas cada una, no es muy útil combinarlas todas en un solo gráfico. Soy consciente de que podría usar un gráfico de varios paneles que muestre las distribuciones de todos los parámetros, pero esto sería mucho menos intuitivo.
  2. Me gustaría mostrar una célula 'típica' que muestre todas las características relevantes que caracterizan un fenotipo específico. De esta manera, si quiero imaginar un fenotipo particular en una población mixta, sé qué tipo de célula estoy buscando.
  3. Creo que tal gráfico sería una forma interesante de mostrar mucha información de una vez, y solo quiero intentarlo.

Quizás sería más claro si dijera que quiero simular un resultado experimental probable basado en mis mediciones?

4voto

ESRogs Puntos 1381

Tal vez podrías usar un gráfico de dispersión suavizado? Es una analogía a la aproximación de densidad de núcleo, pero en 2D.

3voto

Eggs McLaren Puntos 945

Para resumir (por favor, corríjame si me equivoco):

  • Tienes un conjunto de puntos para varios parámetros/estados.
  • Los puntos proporcionan una distribución conjunta de los estados de los parámetros
  • Quieres simular a partir de un modelo usando algunos estados típicos.

El problema que tienes es que no puedes escribir una forma cerrada agradable de la densidad.

Para abordar este problema, debes usar un filtro de partículas. Supongamos que tu modelo de una célula era esta ODE simple:

\begin{equation} \frac{dX(t)}{dt} = \lambda X(t) \end{equation}

y tus datos consisten en valores de $\lambda$ y $X(0)$. Coloca estos datos en una matriz con dos columnas y $n$ filas, donde $n$ es el número de puntos. Luego

  1. Elige una fila al azar, para obtener valores particulares de $\lambda$ y $X(0)$
  2. Paso opcional: perturba tus parámetros con ruido.
  3. Simula a partir de tu modelo, en este caso la ODE.
  4. Repite según sea necesario.

El punto clave es que el paso 1 es extraer de la densidad conjunta de $\lambda$ y $X(0)$.


Esta respuesta podría estar muy equivocada si he interpretado mal lo que quieres decir sobre simular a partir del modelo. Por favor, corríjame si me equivoco.

2voto

reconbot Puntos 1670

También creo que no está claro lo que quieres. Pero si deseas un conjunto de puntos elegidos determinísticamente, de modo que preserven los momentos de la distribución inicial, puedes utilizar el método de selección de puntos sigma que se aplica al filtro de Kalman insaturado.

Supongamos que deseas seleccionar $2L+1$ puntos que cumplan con esos requisitos. Entonces procede de la siguiente manera:

$\mathcal{X}_0=\overline{x} \qquad w_0=\frac{\kappa}{L+\kappa} \qquad i=0$

$\mathcal{X}_i=\overline{x}+\left(\sqrt{(\:L+\kappa\:)\:\mathbf{P}_x}\right)_i \qquad w_i=\frac{1}{2(L+\kappa)} \qquad i=1, \dots,L$

$\mathcal{X}_i=\overline{x}-\left(\sqrt{(\:L+\kappa\:)\:\mathbf{P}_x}\right)_i \qquad w_i=\frac{1}{2(L+\kappa)} \qquad i=L+1, \dots,2L$

donde $w_i$ es el peso del i-ésimo punto,

$\kappa=3-L$ (en caso de datos distribuidos normalmente),

y $\left(\sqrt{(\:L+\kappa\:)\mathbf{P}_x}\right)_i$ es la i-ésima fila (o columna)* de la raíz cuadrada de matriz de la matriz de covarianza ponderada $(\:L+\kappa\:)\:\mathbf{P}_x$ (generalmente obtenida mediante la descomposición de Cholesky)

* Si la raíz cuadrada de matriz $\mathbf{A}$ proporciona la original mediante $\mathbf{A}^T\mathbf{A}$, entonces utiliza las filas de $\mathbf{A}$. Si proporciona la original mediante $\mathbf{A}\mathbf{A}^T$, entonces utiliza las columnas de $\mathbf{A}$. El resultado de la función de matlab chol() pertenece a la primera categoría.

Aquí tienes un ejemplo sencillo usando R

x <- rnorm(1000,5,2.5)
y <- rnorm(1000,2,1)

P <- cov(cbind(x,y))
V0 <- c(mean(x),mean(y))
n <- 2;k <- 1
A <- chol((n+k)*P) # raíz cuadrada de matriz

points <- as.data.frame(sapply(1:(2*n),function(i) if (i<=n) A[i,] + V0 else -A[i-n,] + V0))
attach(points)

#media (igual a V0)
1/(2*(n+k))*(V1+V2+V3+V4) + k/(n+k)*V0
#covarianza (igual a P)
1/(2*(n+k)) * ((V1-V0) %*% t(V1-V0) + (V2-V0) %*% t(V2-V0) + (V3-V0) %*% t(V3-V0) + (V4-V0) %*% t(V4-V0))

0voto

Kevin Ballard Puntos 88866

Una cosa que podrías hacer es trazar la posición de todos tus experimentos en el plano 2D, un punto para cada objeto, tal vez coloreado por experimento (si tienes muchos experimentos, tal vez solo debas trazar un subconjunto aleatorio de ellos).

Si hay un patrón en la posición de los objetos, esto debería emerger al hacer esto.

Además, dependiendo de lo que estés midiendo, tal vez no sea la posición absoluta lo que cuenta, sino la posición relativa de los objetos. En ese caso, podrías rotar las posiciones alrededor del origen para que en cada experimento el primer punto siempre esté, por ejemplo, en el eje x.

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