7 votos

Hallar la orientación de un ruidoso elipse

Esta pregunta viene de un estudio de la neurociencia que genera $12$ vectores. Los vectores están espaciados de manera uniforme, $30 n$ grados de $n=0,\dots, 11$, cada uno con su cola centrado en el origen.

Estoy en busca de sesgos en cada conjunto de vectores, en el que una orientación, es el favorito. Con esto quiero decir que puede haber 2 picos opuestos el uno del otro (por 180deg). Así que me estoy preguntando ¿cuál crees que es la forma más sencilla de estimar la "orientación" con la mayor magnitud, dado que las mediciones son discretos, y el pico verdadero puede ser entre puntos de datos.

Los datos pueden ser considerados de forma aleatoria, pero el caso ideal sería algo como una elipse centrada en el origen, con 2 iguales y opuestas de máximos y mínimos. Supongo que otra forma de enmarcar la pregunta sería cómo encontrar la dirección del eje mayor de una elipse cuando se trazan discretamente más de 12 uniformemente distribuida, theta valores entre a 0deg y 360deg. Pero uno tiene que considerar que la trama también puede incluir el ruido aleatorio significativo, por lo que encontrar un pico no es suficiente para decir definitivamente la orientación de la elipse.

Primero aprendí a hacer esto por un solo pico, que sería similar a una cardioide. Este fue simple: la dirección del sesgo podría ser estimado tomando la suma vectorial de las 12 vectores. Ahora que estoy trabajando con 2 picos, no me siento como ciertas acerca de mi técnica, pero he hecho un intento:

  • Tomar la suma de las magnitudes de los vectores opuestos

  • Asignar a 6 espaciados uniformemente con los vectores de $\theta = 60 n$ deg para $n=0,\dots, 11$

  • Suma de vectores

  • Divida $\theta$ $V_{sum}$ $2$

Esta solución parece demasiado simple para ser de derecha... y no tengo la habilidad para demostrar o refutar. Sería de esta forma fiable de determinar la orientación de una baja resolución de la elipse?

4voto

Anton Sherwood Puntos 140

Considerar las coordenadas de los números complejos; u+iv es igual a la suma de sus cuadrados; tomar ½ arctan(v/u).

Más tarde: O más bien, atan2(v,u)/2; si u<0, la ingenua formulario de arriba le dará el corto eje en su lugar. En Python, yo uso la cmath.phase(z)/2.

4voto

Emanuele Paolini Puntos 14186

Quiero suponer que sus puntos $(x_i,y_i)$, $i=1,\dots, N$ venir de algún normal bivariante de distribución con una media de $\bar x= 0$$\bar y = 0$. En tal caso, usted puede encontrar fácilmente la matriz de covarianza: $$ \Sigma = \begin{pmatrix}a & b \\ b & c\end{pmatrix} $$ con estas fórmulas: $$ a = \frac 1 N \sum_{i=1}^N x_i^2, \qquad b = \frac 1 N \sum_{i=1}^N x_i y_i, \qquad c = \frac 1 N \sum_{i=1}^N y_i^2. $$ A continuación, usted debe calcular los dos vectores propios de a $\Sigma$ (o $\Sigma^{-1}$? ...para ser registrado) y los correspondientes autovalores. La dirección que usted busca debe ser el vector propio correspondiente al mayor valor propio.

(ver http://stats.stackexchange.com/questions/24380/how-to-get-ellipse-region-from-bivariate-normal-distributed-data)

3voto

mathreadler Puntos 3517

Me gustaría construir una exterior el producto de tensor y de encontrar que es eigensystem. Primero para construir el tensor: $${\bf T} = \sum_{samples}\left(\sum_{i=0}^{11} {\bf v}_i {\bf v}_i^T\right)$$

Por el teorema espectral, ya que será simétrica (por qué?), $\bf T$ entonces se asegura de tener EN el sistema con autovalores $\lambda_k > 0$ y vectores propios normalizados ${\bf \hat e}_k$ $${\bf T} = \sum_{i=1}^{\dim({\bf T})} \lambda_i {\bf \hat e}_i{\bf \hat e}_i^T$$ Ya que son reales (no negativo), podemos clasificarlos y cualquier orientativas de sesgo sería si ellos difieren de uno a otro. Se puede medir de muchas maneras, tal vez la varianza de los valores propios, o simplemente la diferencia entre el más pequeño y más grande y así sucesivamente.


La ventaja de utilizar este método en lugar de muchos de los otros que aquí se propone es que fácilmente se expande a cualquier número de dimensiones. Las transformadas de Fourier en las esferas son tediosos, los números complejos se puede tratar de dos dimensiones, pero ya a los tres que se convierta en una molestia y así sucesivamente.

3voto

lurix66 Puntos 36

Tomar la transformada de Fourier Discreta de la vector longitudes $\bf v$.

Los de 2º orden coeficiente, en realidad su fase, le da el ángulo que usted está solicitando; recuerde que dividir por dos.

Octava (Matlab) código es sencillo:

F=fft(V);
a=angle(F(3))/2;   # 3rd element = 2nd order coefficient

pero con 12 puntos, usted puede fácilmente escribir la plena expansión de los coeficientes como una combinación lineal de todos los vectores en donde los coeficientes son los senos y cosenos de fácil ángulos (y usted puede obtener la real/imag por separado las piezas con las operaciones que involucra a los números reales).

Sólo necesita un trascendente de la operación, es decir, la arctan() para obtener el ángulo.

La fuerza del método es, que el resultado es invariante para un cambio de las 12 de vector de patrón, como se requiere.


Pero hay más. Junto a la solicitada ángulo, se le da una medida de la mencionada "ruido".

De hecho, la relación de $$ \frac{2 \cdot |F(3)|^2}{12 \cdot \sum{\bf v}_i^2} (*) $$ mide la cantidad de los dos lóbulos de efecto (esto es lo que se quiere decir con "elipse", afaik) es relevante en comparación con el resto de los ruidos. Usted puede utilizar esta relación como un porcentaje, como es energéticamente significativa (por el teorema de Parseval)

(*) Nota. El $12$ factor en el denominador dependen de la actual fórmula utilizada para la transformada de Fourier discreta. Lo anterior es válido para la Octava (Matlab).

Más en detalle, usando también el resto de coeficientes, se puede decir cuán grande es la de "dos lóbulo" efecto frente a diversos k-lobulado "modos" (probablemente llamada de ruido de sólo aquellos con k>2).

De hecho, una vez encontrado el F coeficientes, sus modula medir las amplitudes de la n-lóbulo modos. I. e. más exactamente:

  • 0 el fin de decir $|F(1)|^2$, da el peso de la constante de modo (0-lóbulos)
  • k-ésimo orden, $|F(1+k)|^2+|F(12-k)|^2 == 2 \cdot|F(1+k)|^2$, es el peso de la k-lóbulo modo (k in 1:5)
  • 6º orden, $|F(7)|^2$, da el peso de la 6-lobulado modo, es decir, la máxima frecuencia angular modo.

En conclusión:

  • $\frac{2 \cdot |F(3)|^2}{12 \cdot \sum{\bf v}_i^2}$ es el porcentaje de los datos de energía que reated a los dos lóbulos
  • $\frac{|F(1)|^2 + 2 \cdot |F(2)|^2}{12 \cdot \sum{\bf v}_i^2}$ medidas de la baja frecuencia de "ruido" (o sesgo, nombre que quiera)
  • $\frac{2 \cdot |F(4)|^2+2 \cdot |F(5)|^2+2 \cdot |F(6)|^2 + |F(7)|^2}{12 \cdot \sum{\bf v}_i^2}$ mide la energía en los modos de orden superior (de la alta frecuencia de ruido)

Por eso me parece la representación de Fourier de la variabilidad especialmente significativo a la hora de explicar la variabilidad de los datos representable en gráficos polares.

2voto

ILIV Puntos 421

Si los puntos experimentales aparecen aproximadamente en una elipse (por supuesto, con dispersión), puede utilizar una regresión de la técnica para calcular los parámetros de la teoría de la elipse. Con la ecuación obtenida, es fácil determinar los ejes de la elipse y comprobar hasta qué punto es el centro de la elipse a partir de la origine.

enter image description here

Esto viene de la ponencia : https://fr.scribd.com/doc/14819165/Regressions-coniques-quadriques-circulaire-spherique en la página 16.

Para obtener más información acerca de los parámetros y las propiedades de las elipses: http://mathworld.wolfram.com/Ellipse.html

Si queremos ajuste de una elipse centrada en el origen del sistema de la matriz se reduce a :

enter image description here

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