probplot for Chi2 and noncentral chi2 distribution
Show older comments
I am looking at GLR tests and I need to verify that my test statistic is chi2/noncentrally chi2 distributed. As far as I can see there isn't a way to make a chi2 probplot, am I mistaken or is there a workaround?
Answers (1)
Sai Pavan
on 28 Mar 2024
Hello Morten,
I understand that you are looking for ways to verify whether the test statistic is chi-square or noncentral chi-square distributed.
The "probplot" function automatically generates a probability plot comparing the empirical distribution of a dataset to a specified theoretical distribution. As "probplot" doesn't natively support chi-square or noncentral chi-square distributions out of the box, we can create a workaround by using the theoretical quantiles from the chi-square or noncentral chi-square distribution as a custom theoretical distribution in "probplot" to compare against the data.
Please refer to the below code snippet that illustrates this work around:
% Sample data
data1 = randn(100,1).^2; % Example dataset
% Chi-square distribution parameters
df1 = 2; % Degrees of freedom
% Generate theoretical quantiles
p1 = ((1:length(data1)) - 0.5) / length(data1); % Empirical CDF values
theoreticalQuantiles1 = chi2inv(p1, df1);
% Generate probability plot
probplot(data1);
hold on;
plot(sort(data1), theoreticalQuantiles1, 'r-', 'LineWidth', 2);
hold off;
legend('Empirical Data', 'Chi-square Theoretical Quantiles', 'Location', 'best');
title('Probability Plot against Chi-square Distribution');
% Sample data
data2 = ncx2rnd(2, 5, 100, 1); % Example dataset with df=2, noncentrality=5
% Noncentral chi-square distribution parameters
df2 = 2; % Degrees of freedom
noncentrality = 5; % Noncentrality parameter
% Generate theoretical quantiles
p2 = ((1:length(data2)) - 0.5) / length(data2); % Empirical CDF values
theoreticalQuantiles2 = ncx2inv(p2, df2, noncentrality);
% Generate probability plot
figure
probplot(data2);
hold on;
plot(sort(data2), theoreticalQuantiles2, 'r-', 'LineWidth', 2);
hold off;
legend('Empirical Data', 'Noncentral Chi-square Theoretical Quantiles', 'Location', 'best');
title('Probability Plot against Noncentral Chi-square Distribution');
Please refer to the below documentation to learn more about:
- "chi2inv" function: https://www.mathworks.com/help/stats/chi2inv.html
- "ncx2inv" function: https://www.mathworks.com/help/stats/ncx2inv.html
Hope it helps!
Categories
Find more on Hypothesis Tests in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!