Вопрос

Я использую MATLAB для анализа некоторых нейробиологических данных, я построил распределение интервалов между спайками и подогнал к нему экспоненциальную зависимость.Затем я хотел проверить это соответствие с помощью теста Колмогорова-Смирнова в MATLAB.

Данные о спайках нейронов просто сохраняются в векторе спайков.А spikes вектор — это вектор размером 111 на 1, где каждая запись представляет собой другой вектор.Каждая запись в thie spikes вектор представляет собой испытание.Количество спайков в каждом испытании варьируется.Например, spikes{1} это [1x116 double], что означает, что имеется 116 шипов.У следующего 115 шипов, затем 108 и т. д.

Теперь я понимаю, что kstest в MATLAB принимает пару параметров.Вы вводите данные в первый, поэтому я взял все интервалы между спайками и создал вектор-строку alldiffs который хранит все интервалы между спайками.Я хочу установить свой CDF для соответствия экспоненциальной функции:

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

Обратите внимание, что теоретическая экспонента (которой я подгоняю данные) равна r*exp(-rt) где r это скорострельность.У меня скорострельность около 0,2.Теперь, когда я собрал все это воедино, я запускаю kstest:

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

Однако результатом является значение p порядка 1.4455e-126.Я попробовал переделать test_cdf с другим методом из документации веб-сайта Mathworks:

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

Это дает точно такой же результат!Подгонка просто ужасная?Я не знаю, почему я получаю такие низкие значения p.Пожалуйста помоги!

Я бы разместил подходящее изображение, но у меня недостаточно репутации.

P.S.Если есть место получше, чтобы опубликовать это, дайте мне знать, и я сделаю репост.

Это было полезно?

Решение

Вот пример с поддельными данными и еще один способ создания CDF:

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

h =

     0


p =

    0.3418

Однако почему вы проводите тест KS?

Все модели неверны, некоторые полезны.

Ни один нейрон не в совершенстве процесс Пуассона и при наличии достаточного количества данных вы всегда будете иметь значительно неэкспоненциальный ISI, измеренный с помощью теста KS.Это не означает, что вы не можете сделать упрощающее предположение об экспоненциальном ISI, в зависимости от того, какое явление вы пытаетесь моделировать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top