Question

Je suis l'aide de MATLAB pour analyser la neuroscience de données, et j'ai fait un intervalle entre pics de la distribution et de l'ajustement exponentiel à elle.Ensuite, j'ai voulu vérifier cela fit à l'aide d'un test de Kolmogorov-Smirnov avec MATLAB.

Les données pour le neurone pointes, c'est simplement stocké dans un vecteur de pointes.L' spikes vecteur est un 111 de 1 vecteur, où chaque entrée est un autre vecteur.Chaque entrée de cette spikes vecteur représente un essai.Le nombre de pointes dans chaque essai varie.Par exemple, spikes{1} est un [1x116 double], signifiant, il y a 116 pointes.La prochaine a 115 pointes, puis 108, etc.

Maintenant, je comprends que le kstest dans MATLAB prend un couple de paramètres.Vous entrez les données dans la première, j'ai donc pris tous les intervalles entre pics et créé un vecteur ligne alldiffs qui contient tous les intervalles entre pics.Je veux mettre mon CDF à celle d'une fonction exponentielle fit:

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

Notez que le théorique exponentielle (avec qui j'ai ajuster les données) est r*exp(-rt)r est la cadence de tir.Je reçois une cadence de tir d'environ 0,2.Maintenant, quand j'ai mis tous ensemble, je lance le kstest:

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

Toutefois, le résultat est une valeur p de l'ordre de 1.4455e-126.J'ai essayé de refaire la test_cdf avec l'autre des méthodes sur Mathworks le site de la documentation:

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

Cela donne exactement le même résultat!L'approximation est juste horrible?Je ne sais pas pourquoi je reçois ces faibles valeurs de p.S'il vous plaît aider!

Je voudrais poster une image de la forme, mais je n'ai pas assez de réputation.

P. S.Si il y a un meilleur endroit pour poster cela, laissez-moi savoir et je vais reposter.

Était-ce utile?

La solution

Voici un exemple avec des données fausses et encore une autre façon de créer de la CDF:

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

h =

     0


p =

    0.3418

Cependant, pourquoi tu fais un Test KS?

Tous les modèles sont faux, certains sont utiles.

Aucun neurone est parfaitement un processus de Poisson et avec suffisamment de données, vous aurez toujours une manière significative non-exponentielle de l'ISI, telle que mesurée par un test KS.Cela ne signifie pas que vous ne pouvez pas faire l'hypothèse simplificatrice d'une exponentielle de l'ISI, en fonction de ce que les phénomènes que vous essayez de modèle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top