I have two data sets. One with positive values and zeroes. The other with negative values and zeroes. Lets call them VP and VN respectively. I would like to find a best fit distribution for each. I am not aware of any one-sided distributions that work with zeroes, hence my question: are there any one-side distributions that are defined for zeroes? Thank you.
Data sets details: VP and VN are "relatively"" symmetrical, yet are samples for different things, and not a data set split into two. The zeroes are actual zeroes. And the samples are not truncated. Vector elements are High prices minus prior Close prices and Low prices minus prior Close prices for publicly traded financial assets at certain time windows (e.g. prior close can be the 10:30 1 minute bar closing price, and the High would be the High price for the following 1 minute bar).
Purpose: find best fit distribution for each, and use the CDF for looking at estimated probabilities. The data is discrete: the smallest value increment possible is 0.01. Yet I do not need to be very precise, so fitting a continuous distribution would be fine.
Alternatives:
Truncating symmetrical distributions. Doesn't work, as the mode for these samples is 0, and the highest probability bin is 0/0.1 for the VP and 0/-0.1 for VN.
Adding infinitesimal values to all the zeroes. Inclined to do this in the absence of a better alternative, but rather not if can be avoided.
Modifying the distribution functions such as done by someone in this post How to fit a Weibull distribution to input data containing zeroes?. I do not have the necessary knowledge for achieving that.
Combining data sets into one. It does not work, as samples are not symmetrical enough.
VP <- c(0.36, 0.3, 0.36, 0.47, 0, 0.05, 0.4, 0, 0, 0.15, 0.89, 0.03, 0.45, 0.21, 0, 0.18, 0.04, 0.53, 0, 0.68, 0.06, 0.09, 0.58, 0.03, 0.23, 0.27, 0, 0.12, 0.12, 0, 0.32, 0.07, 0.04, 0.07, 0.39, 0, 0.25, 0.28, 0.42, 0.55, 0.04, 0.07, 0.18, 0.17, 0.06, 0.39, 0.65, 0.15, 0.1, 0.32, 0.52, 0.55, 0.71, 0.93, 0, 0.36)
VN <- c(0, -0.14, 0, -0.03, -0.33, -0.28, -0.02, -0.5, -0.16, -0.13, 0, -0.4, -0.02, -0.11, -0.74, 0, 0, 0, -0.63, 0, -0.33, -0.13, -0.2, -0.05, -0.33, -0.02, -0.26, 0, -0.66, -0.36, -0.16, -0.37, -0.13, -0.02, -0.06, -0.34, -0.28, 0, 0, -0.1, -0.38, -0.02, -0.16, -0.34, -0.37, -0.01, 0, 0, -0.39, -0.07, 0, -0.02, -0.19, 0, -0.43, -0.05)
par(mfrow = c(1, 2))
hist(VN)
hist(VP)