[answered elsewhere - duplicate]
This is basically just a parametric estimation problem, which is very well documented.
These data are the same as those coming from a survival analysis with tied event times. The number of observations is unimportant as far as the point estimates since the size of the risk sets are proportional and the Kaplan-Meier curve for survival is identical. So you may assume that there are 60 observations at baseline, 30 failures at month 1, 10 failures at month 2, 5 failures at month 3, and 3 failures at month 4.
Using these data, any estimation routine will work. I think the Weibull likelihood is not a regular exponential family so Fisher Scoring will not work, but the EM algorithm can be used to estimate the shape and scale. It can be done easily by-hand in R if you calculate the likelihood function, or (even easier) ML estimation is available in the
For a quick solution, you can plot
ln(orderedSurvivalData) and see if there is a straight line. If there is, then you can be assured that your data is Weibull. Then, fit a best line to this plot using linear regression. The estimated slope corresponds with the shape parameter and the estimated intercept corresponds to the scale parameter. Use these values and plot out the distribution with the data and see how it looks. These obtained estimates can be used as a good starting point for one of the MLE numerical methods such as Newton-Raphson or the other ones mentioned by @AdamO.
Note: You need to order the survival data by time, but it looks like your data is already ordered.