0
$\begingroup$

I have a set of data that I computed from options data that approximates the probability distribution for a stock price over a range of strikes.

I'd like to fit a probability distribution curve to this set of points and ensure the area sums to 1 to get a clean and proper approximation of the PDF for this stock.

c(0, 0, 0.000208182692011079, 0.000218784525845072, 0.000230059271947993, 
0.000242058672718367, 0.000254838379387282, 0.000268458247556603, 
0.000282982655233351, 0.000298480841289281, 0.000315892450183093, 
0.00033177571333295, 0.000351594508953066, 0.000371790376764847, 
0.000393392550588617, 0.000416507813019018, 0.000441250819664667, 
0.000467744620936399, 0.000496121207211382, 0.000526522070894631, 
0.000559098786584436, 0.000594013604115059, 0.00063144004951123, 
0.000671563532642906, 0.000714581949133379, 0.000760706274163098, 
0.000810161136824336, 0.000863185364037901, 0.000920032482212203, 
0.000980971162878999, 0.00104628559342781, 0.00111627575798244, 
0.00119125760338323, 0.00127156306985695, 0.00135753995879761, 
0.00144955160976205, 0.0015479763562244, 0.00165320672580597, 
0.00176564835146426, 0.00188571855576092, 0.00201384457065479, 
0.00215046135443622, 0.00229600896783627, 0.00245092947131941, 
0.0026156633105474, 0.00279064515861609, 0.00297629918788382, 
0.00317303375592016, 0.00338123549397851, 0.00360126279815904, 
0.00383343874001874, 0.00407804342460469, 0.00433530583981816, 
0.00460539526768577, 0.00488841233745145, 0.00518437983339691, 
0.00549323338480143, 0.00581481219429517, 0.00614884997878448, 
0.00649496632360488, 0.00685265866204061, 0.0072212951174443, 
0.00760010844534187, 0.00798819132944373, 0.00838449327401418, 
0.00878781933535065, 0.00920235579065385, 0.00960406151573376, 
0.0100258994251216, 0.0104425591685407, 0.0108582112192999, 0.0112708942255356, 
0.0116785592846201, 0.0120790881407616, 0.0124703136112951, 0.0128500419750558, 
0.0132160769852766, 0.0135662451089561, 0.013898421542141, 0.0142105565036963, 
0.0145007012879337, 0.0147670335342418, 0.0150078811785113, 0.0152217445685119, 
0.0154073162583277, 0.015563498049048, 0.015689414907186, 0.0157844254656245, 
0.0158481289035581, 0.0158803680844464, 0.0158812289337082, 0.015851036124199, 
0.0157903452329375, 0.0156999316068183, 0.0155807762596536, 0.015434049165761, 
0.0152610903834758, 0.0150348273984722, 0.0148655128903583, 0.014599313139285, 
0.0143373338009998, 0.0140576030560211, 0.0137620206040843, 0.0134525018607133, 
0.0131309578281978, 0.0127992764540384, 0.0124593056752163, 0.0121128383057532, 
0.0117615988639484, 0.0114072323825452, 0.011051295207065, 0.0106952477361143, 
0.0103404490268709, 0.00998815316370013, 0.00963950725091575, 
0.00929555089430587, 0.00895721700096429, 0.00862533374377682, 
0.00830062751680837, 0.00798372672395231, 0.00767516624042386, 
0.00737539240188923, 0.00708476837900641, 0.00680357982021808, 
0.0065320406403079, 0.00627029886537835, 0.00601844244326069, 
0.00577650494885332, 0.00554447112615978, 0.00532228221544077, 
0.0051098410335592, 0.0049070167738962, 0.00471364951112101, 
0.00452955439887319, 0.00435452555282539, 0.00418833962042336, 
0.00403075904710442, 0.00388153503561023, 0.00374041022631383, 
0.00360712109311651, 0.00348140008857629, 0.00336297753880994, 
0.00325158331341941, 0.0031469482859769, 0.0030488055984534, 
0.0029568917484379, 0.00287094751658219, 0.00279071874212274, 
0.00271595697349799, 0.00264641999095257, 0.00258187222986091, 
0.00252208510611137, 0.00246683725597659, 0.00230712920813222)

I tried to fit polynomials as follows

model <- lm(density ~ poly(strike,4), xdist)

but get behavior at the tails that looks non 'normal', i.e. the curve turns 'up' as follows (the different colors are for different polynomials I tried):

options pd

I want to use these PD's to get a CDF for the stock price that is well formed.

$\endgroup$
5
  • 1
    $\begingroup$ Use dput to provide data. And voting for migration to StackOverflow $\endgroup$
    – user81847
    Jan 6, 2016 at 5:27
  • 4
    $\begingroup$ Finding a polynomial fit is not the normal way to estimate parameters for a normal distribution. $\endgroup$
    – mandata
    Jan 6, 2016 at 5:55
  • 1
    $\begingroup$ I am voting to leave open as I suspect (not sure) that there is room for discussion about the right thing to do statistically. What about plot(density(y))? $\endgroup$ Jan 6, 2016 at 9:27
  • $\begingroup$ @ChristophHanck The current form of the question makes it eligible for SO. But yes, the statistical method can be discussed here. $\endgroup$
    – user81847
    Jan 6, 2016 at 9:36
  • $\begingroup$ You might consider fitting curves to the log of the density. For a normal, the log-density is quadratic. Indeed one form of nonparametric density estimation uses cubic-splines in the log-density. However (depending on how the data are obtained) you may be better using GLMs to fit the model (e.g. with counts, you might look at a Poisson GLM with log link). There is also software that can fit log-spline density estimates. $\endgroup$
    – Glen_b
    Jan 6, 2016 at 9:57

1 Answer 1

1
$\begingroup$

First thing to note is that, if I got your Q right, you will end up charting the pdf/cdf of the stock under the risk neutral probability measure.

Second point: it is not clear whether you want to approximate your data with a gaussian or you'd like to approximate your data with something else (any parametric form, again polyfit. You could eventually even go freestyle and run a non parametric density estimation.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.