How to fit a histogram plot to a poisson distribution
14 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti

I have a histogram plot which looks like this. where I have only plotted spacing_ratios = diff(energies) ./ mean(diff(energies)). energies corresponds to the eigenvalues of a particular hamiltonian matrix. I have used the code
edges=linspace(min(spacing_ratios),max(spacing_ratios),300);
h=histogram(spacing_ratios,'BinEdges',edges);
Now I want to fit this histogram plot to poisson distribution such that the probabilty of having n energy levels in a particular interval of energies E and E+deltaE will be

where \lambda is the average number of levels in that interval. How can I fit this with my numerical results shown above?
5 Commenti
Torsten
il 31 Ago 2023
Modificato: Torsten
il 31 Ago 2023
Your data contain non-integer values - so they cannot follow a Poisson distribution.
To fit a distribution, you usually do not scale the data - you work with the raw data.
To get an empirical distribution curve for your data, use
histogram(spacing_ratios,'Normalization','pdf')
Risposte (1)
Torsten
il 30 Ago 2023
Modificato: Torsten
il 30 Ago 2023
Simply use
lambdahat = poissfit(spacing_ratios)
But I'm surprised you want to fit data that take non-integer values with a distribution that has only mass on the set of the natural numbers. Isn't that inadequate ?
1 Commento
the cyclist
il 30 Ago 2023
I agree, and frankly I'm surprised that poissfit doesn't give a warning for non-integer input. (Maybe I'm forgetting something.)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!