- One-sample Kolmogorov-Smirnov test - MATLAB kstest (mathworks.com)
- Two-sample Kolmogorov-Smirnov test - MATLAB kstest2 (mathworks.com)
how can I make goodness of fit test for my calculated AICc for a neuron's spike train
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hellow everyone
I have a spike information of a neuron based on X and Y coordinates by time (because this data is collected from Place Cells of an aminal). Based on this data I propose a conditional intensity function (CIF) and run the following codes to calculate required information.
Here is my code ;
load('datasetofneuron.mat'); % I am loading the data from file
t=0:1e-3:T; % building the t variable (T is total duration, 1e-3 is the step size
Z=[X,Y,X.*Y]; % my proposed CIF function
et=zeros(size(t)); % my event train (et) filling with zeros
et(round(neuron.spikeTimes*1e3))=1; % replacing 1 for
et=et(1:size(Z,1));
mdl=fitglm(Z,et','distr','Poisson'); % fitting the generalized linearized model by poisson distribution
L = mdl1.LogLikelihood; % finding the loglikelihood
AICc1 = mdl1.ModelCriterion.AICc;
beta_values=mdl.Coefficients.Estimate; % finding the estimated beta coefficients
beta_values_count= mdl1.NumCoefficients; % how many beta values will I have
Ldt=exp(beta_values(1)+XX*beta_values(2)+YY*beta_values(3)+XX.*YY*beta_values(4)); % Lambda*dt
% after then, I need to make a goodness-of-fit test (KS and autocorrelation)
after this line, I need to make a goodness-of-fit (KS and autocorrelation tests). Could you please help me how can I code in Matlab?
Thank you
0 commentaires
Réponses (1)
Abhishek
le 16 Mai 2023
Hi Mustafa,
I understand that you want to apply certain goodness-of-fit tests, namely Kolmogorov-Smirnov (KS) test and autocorrelation test for your dataset.
For KS test, you could perform Two-sample Kolmogorov-Smirnov test. First simulate a new set of data points based on the model by drawing random numbers from a Poisson distribution with the same mean as the data. Then compare the simulated data to a Poisson distribution with the same mean as the new set using the 'kstest2' function.
Assume that your original dataset is 'x1'. You can simulate a net set if data points based on the model using: -
x2 = poissrnd(Ldt)
Then apply the function 'kstest2' as follows: -
[h,p,ks2stat] = kstest2(x1,x2,'Alpha',0.01)
where 'h' is hypothesis test result, 'p' is Asymptotic p-value and 'ks2stat' is the test statistic. 'Alpha' can be varied between (0,1) based on significance level of desirability.
You can know more about KS tests from these documentation pages: -
For autocorrelation test, you can use 'xcorr' function of MATLAB to compute the autocorrelation function (ACF) of the residuals, where residual = data - fit. Further you can use 'stem' function to plot the ACF.
residuals = et' - Ldt; %Calculate the residual
[acf, lags] = xcorr(residuals,'coeff') %Calculate the autocorrelation
For more information regarding the ACF function, refer to the documentation: Cross-correlation - MATLAB xcorr (mathworks.com).
0 commentaires
Voir également
Catégories
En savoir plus sur Hypothesis Tests dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!