Domanda

Sto usando MATLAB per analizzare alcuni dati di neuroscienza e ho fatto una distribuzione dell'intervallo interspike e ho adattato un esponenziale ad esso. Quindi, volevo controllare questa vestibilità utilizzando un test di Kolmogorov-Smirnov con Matlab.

I dati per i picchi del neurone sono appena conservati in un vettore di picchi. Il vettore spikes è un vettore 111 per 1, dove ogni voce è un altro vettore. Ogni voce nel vettore spikes rappresenta un processo. Il numero di picchi in ogni prova varia. Ad esempio, spikes{1} è un [1x116 double], il che significa che ci sono 116 punte. Il prossimo ha 115 picchi, quindi 108, ecc.

Ora, capisco che il Kstest in Matlab prende un paio di parametri. Inseriti i dati nel primo, quindi ho preso tutti gli intervalli Interspike e creato un alldiffs vettoriale di fila che memorizza tutti gli intervalli Interspike. Voglio impostare il mio CDF in questo per una funzione esponenziale adatta:

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

Si noti che l'esponenziale teorico (con cui mi adatto ai dati) è r*exp(-rt) in cui r è la frequenza di fuoco. Ottengo un tasso di fuoco di circa 0,2. Ora, quando metto tutto questo insieme, corro il kstest:

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

Tuttavia, il risultato è un valore P nell'ordine di 1.4455e-126. Ho provato a rifare il test_cdf con un altro dei metodi sulla documentazione del sito Web di MathWorks:

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

Questo dà lo stesso esatto risultato! È la vestibilità solo orribile? Non so perché ottengo tali valori P. Per favore aiuto!

Pubblicherei un'immagine della vestibilità, ma non ho abbastanza reputazione.

P.S. Se c'è un posto migliore per pubblicare questo, fammi sapere e ripubbiere.

È stato utile?

Soluzione

Ecco un esempio con dati falsi e ancora un altro modo per creare il CDF:

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

h =

     0


p =

    0.3418
.

Tuttavia, perché stai facendo un test KS?

.

Tutti i modelli sono sbagliati, alcuni sono utili.

Nessun neurone è perfettamente un processo di Poisson e con dati sufficienti, avrai sempre un ISI significativamente non esponenziale, misurato da un test KS.Ciò non significa che non puoi fare l'assunzione semplificatrice di un ISI esponenziale, a seconda dei fenomeni che stai provando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top