probplot for Chi2 and noncentral chi2 distribution

7 views (last 30 days)
Morten Nissov
Morten Nissov on 21 Jun 2021
Answered: Sai Pavan on 28 Mar 2024 at 7:19
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
Sai Pavan on 28 Mar 2024 at 7:19
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:
Hope it helps!

Tags

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!