How to fit a histogram plot to a poisson distribution
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos

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 comentarios
Torsten
el 31 de Ag. de 2023
Editada: Torsten
el 31 de Ag. de 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')
Respuestas (1)
Torsten
el 30 de Ag. de 2023
Editada: Torsten
el 30 de Ag. de 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 comentario
the cyclist
el 30 de Ag. de 2023
I agree, and frankly I'm surprised that poissfit doesn't give a warning for non-integer input. (Maybe I'm forgetting something.)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!