Matlab Kolmogorov-Smirnov 테스트
-
21-12-2019 - |
문제
나는 MATLAB 을 사용하여 분석하는 몇 가지 신경 데이터,그리고 나는 interspike 간격 유통 및 적합 지수합니다.그런 다음,제가 확인하고 싶어서 이에 맞게 사용하 Kolmogorov-Smirnov 테스트 MATLAB.
데이터한 스파이크 신경은 단지에 저장되는 벡터의 스파이크가 있습니다.이 spikes
벡터는 111 1 벡터,각 항목은 다른 벡터입니다.각 항목에서 thie spikes
벡터를 나타냅니다.숫자의 스파이크에서 각 시험에 따라 다릅니다.예를 들어, spikes{1}
가 [1x116 double]
, 을 의미가 있 116 합니다.다음 115 스파이크,다음 108,etc.
지금,내가 이해하는 kstest MATLAB 의 매개 변수입니다.당신은 데이터를 입력하에서 첫 번째는,그래서 나는 모든 interspike 간격으로 만든 행 벡터 alldiffs
는 저장하는 모든 interspike 간격으로.로 설정하고 싶은데 내 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
다른 방법들을 통해 진짜'웹사이트 문서:
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,에 따라 어떤 현상하고 당신 모델입니다.