Estimate distribution from 4 quantiles I would like to estimate the percent of freshmen at a particular university who have each possible ACT score. 
I know that ACT scores can only be integers 36 or lower and, for a particular school, I know that: 


*

*75% of freshmen have a 33 or lower

*25% <= 31

*13% <= 29 

*1% <= 23


What family of distribution is appropriate given the discrete values that max out at 36?
How should I go about coming up with a reasonable distribution?
(My first question; please be gentle.)
 A: According to the principle of maximum entropy, the best approach to this kind of problem would be to choose the probability distribution that

*

*satisfies your constraints

*has maximum entropy.

From the Wikipedia article:

The principle of maximum entropy states that the probability distribution which best represents the current state of knowledge is the one with largest entropy, in the context of precisely stated prior data (such as a proposition that expresses testable information).
Take precisely stated prior data or testable information about a probability distribution function. Consider the set of all trial probability distributions that would encode the prior data. According to this principle, the distribution with maximal information entropy is the proper one.

If you agree with this principle, then the question becomes:
How do I find that distribution?
Well, the cumulative distribution has 36 - 4 - 1 = 31 free parameters.
(4 constraints plus the normalisation).
I believe the distribution with maximum entropy would be such that each score from 1 to 23 would be equally probable. Since they must sum up to 1%, this number would be 1%/23.
Then the scores from 24 to 29 would be 12%/5 and so on. (It's worth checking this numerically).
So, what the principle is suggesting is that you should interpolate your cumulative distribution with straight lines.
Maybe that's good enough, but you might believe that your distribution should be smoother (the poor principle did not know about that!).
So, to conclude, I believe that some polynomial fitting algorithm would do a slightly better job at guessing the correct cumulative distribution.
EDIT:
After reading the comments, I believe there is a better approach to this problem.
It turns out that we actually know that the originally scores are normally distributed, with mean 5 and std 20. The solution I proposed, did not know about that. How to include this information?
Here is an acceptance-rejection method, which is basically the Wallis derivation  of the principle.
One can generate a fairly large sample from the normal distribution. Then you consider the sample "good" is it's close enough to your 4 quantiles, otherwise you discard it. When you have collected enough "good" samples, those will give you the best possible guess for your distribution according to the maximum entropy principle.
A: I think you have to assume some sort of distribution.  It seems reasonable to assume that ACT ability is normally distributed (that's a good guess as to the distribution of a variable like this) but yours is clearly truncated. That is, you've got too many scores at the top and the ACT is too easy a test to accurately distinguish a lot of the students. And the results are rounded.
You can do this with the truncnorm package in R. It requires the mean, sd, and upper and lower cutoffs. The mean should be the same as the median (32) but you'll have to play around with the sd to get approximately the right distribution. Here's a start on such a program:
install.packages("truncnorm")
library(truncnorm)

set.seed(1234)
roundset1 <- round(rtruncnorm(1000, 0, 36, 32, 1),0)
table(roundset1)
sum(roundset1 < 33)
sum(roundset1 < 31)
sum(roundset1 < 29)
sum(roundset1 < 23)

However, I played around with this a bit and did not find anything close to your desired distribution, so maybe it isn't normal after all.
In addition, any attempt at estimating the lower ACT scores will require a huge sample size. Even at the largest universities, most of those scores will have no people.
EDIT: The comment says the mean ACT is 20 and sd 5 for the whole population of test takers and that it's normally distributed. Now, your school is clearly way above average.  So, first, let's generate a large sample with mean 20 and sd 5, then take samples the size of your college class that are random samples from a specific portion of the sorted version of that class.  Let's say there are 1,000 people in your class, then something like this:
set.seed(1234)

pop <- rnorm(100000, 20, 5)

sortpop <- sort(pop, decreasing = TRUE)
subset1 <- round(sortpop[1:3000],0)  #play with 1 and 3000
class <- sample(subset1, 1000)

table(class)
sum(class < 33)   #Want 750
sum(class < 31)   #Want 250
sum(class < 29)   #Want 130
sum(class < 23)   #Want 10

You might have to pick a non-random sample from the population.
