Pregunta

Estoy usando MATLAB para analizar algunos datos de neurociencia, hice una distribución de intervalo entre picos y le ajusté una exponencial.Luego quise comprobar este ajuste mediante una prueba de Kolmogorov-Smirnov con MATLAB.

Los datos de los picos neuronales simplemente se almacenan en un vector de picos.El spikes El vector es un vector de 111 por 1, donde cada entrada es otro vector.Cada entrada en este spikes El vector representa una prueba.El número de picos en cada prueba varía.Por ejemplo, spikes{1} es un [1x116 double], lo que significa que hay 116 picos.El siguiente tiene 115 picos, luego 108, etc.

Ahora entiendo que kstest en MATLAB requiere un par de parámetros.Ingresas los datos en el primero, así que tomé todos los intervalos entre picos y creé un vector de fila. alldiffs que almacena todos los intervalos entre picos.Quiero configurar mi CDF para que se ajuste una función exponencial:

test_cdf = [transpose(alldiffs), transpose(1-exp(-alldiffs*firingrate))];

Tenga en cuenta que la exponencial teórica (con la que ajusto los datos) es r*exp(-rt) dónde r es la tasa de disparo.Obtengo una tasa de disparo de aproximadamente 0,2.Ahora, cuando pongo todo esto junto, ejecuto el kstest:

[h,p] = kstest(alldiffs, 'CDF', test_cdf)

Sin embargo, el resultado es un valor de p del orden de 1.4455e-126.He intentado rehacer el test_cdf con otro de los métodos en la documentación del sitio web de Mathworks:

test_cdf = [transpose(alldiffs), cdf('exp', transpose(alldiffs), 1/firingrate)];

¡Esto da exactamente el mismo resultado!¿El ajuste es simplemente horrible?No sé por qué obtengo valores p tan bajos.¡Por favor ayuda!

Publicaría una imagen del ajuste, pero no tengo suficiente reputación.

PDSi hay un lugar mejor para publicar esto, házmelo saber y lo volveré a publicar.

¿Fue útil?

Solución

Aquí hay un ejemplo con datos falsos y otra forma más de crear el CDF:

>> data = exprnd(.2, 100);
>> test_cdf = makedist('exp', 'mu', .2);
>> [h, p] = kstest(data, 'CDF', test_cdf)

h =

     0


p =

    0.3418

Sin embargo, ¿por qué estás haciendo una prueba KS?

Todos los modelos son incorrectos, algunos son útiles.

Ninguna neurona es perfectamente un proceso de Poisson y con suficientes datos, siempre tendrá un ISI significativamente no exponencial, medido por una prueba KS.Eso no significa que no puedas hacer la suposición simplificadora de un ISI exponencial, dependiendo del fenómeno que estés intentando modelar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top