How to use a discrete normal distribution to represent a normal distribution

Discussion in 'MATLAB' started by Nick Jia, Oct 18, 2008.

  1. Nick Jia

    Nick Jia Guest

    I hope I'm making my question clear as follows,

    Give any continuous distribution, say, a normal distribution, I hope to use a vector a value, say (x_1, x_2, \cdots, x_n) and a vector of corresponding probablity value (p_1, p_2, \cdots, p_n) attached to those values,
    such that these two vectors represent a discrete distrubiton which approximate the normal "well" in some sense, say, the first m moments of normal disbutions are all equal to those of discrete distrubiton, and that the L_2 distance between the two disbutions are small enought.
    (Actually, any other creteria is fine, I'm just describing the one I come up with).

    btw, in the above question, let's say only n (and possibly m) is free to choose.

    Thanks for your help or thoughts, insights, and suggestions.

    best,
    Jia
     
    Nick Jia, Oct 18, 2008
    #1
    1. Advertisements

  2. Nick Jia

    Bruno Luong Guest

    Hummm, The L_2 norm is not even defined (infinity) for discrete ditributions (it's a sum of Dirac, which is not even integrable).

    Bruno
     
    Bruno Luong, Oct 18, 2008
    #2
    1. Advertisements

  3. Nick Jia

    Nick Jia Guest

    I'm not sure about this, how about L_2 norm on cdf, where discrete one is an increasing step function?

    but as I said, I mean any cretia, I was just randomly propose one.
     
    Nick Jia, Oct 19, 2008
    #3
  4. Nick Jia

    Bruno Luong Guest

    This now is well defined, but much weaker criteria than working of some sort of difference measure between original pdf, as you wanted to do initially. I'm afraid the fit might output some oscillation of fitted pdf.

    Not sure what is a good criteria.

    Bruno
     
    Bruno Luong, Oct 19, 2008
    #4
  5. Nick Jia

    Johannes Guest

    Have you found a solution to this problem? I would be interested too.
     
    Johannes, Dec 26, 2008
    #5
  6. Nick Jia

    Johannes Guest

    Have you found a solution to this problem? I would be interested too.
     
    Johannes, Dec 26, 2008
    #6
  7. If you consider that your two vectors represent a step function cdf, then you would, in effect, be asking, "what is the best way to approximate a given continuous density distribution with one another continuous distribution which is composed entirely of a given number of linear segments?" In an idealized sense it seems to me the best match would be achieved by minimizing the L2 norm distance between these, totally ignoring their respective moment values.

    However, I have to admit finding this best match may not be such an easy task. The difficult part of it is probably optimizing the discrete x-values. It is a nonlinear least squares problem involving cumulative distribution values for the given distribution at continuously variable points - that is, at the discrete x-values which are to be optimised. If you used something like "fminunc" in the Optimzation Toolbox, the objective function would need to continually refer to integrals involving the given distribution function taken over varying x intervals, which would imply a great amount of computation.

    I'm afraid this isn't much help, but it is the best I can come up with at the moment.

    Roger Stafford
     
    Roger Stafford, Dec 26, 2008
    #7
  8. I want to clarify something I said a few minutes ago. Suppose we call the original density distribution function, f(x). In computing the objective function that 'fminunc' is to minimize, you would need to have available both

    F(x) = int(f(t), t = -inf, x) <--- That is, its cdf function

    and

    M1(x) = int(t*f(t), t = -inf, x) <--- Its "first moment" function

    These would have to be available to be called on as function handles. From them the objective function for 'fminunc' to use can be computed.

    Roger Stafford
     
    Roger Stafford, Dec 26, 2008
    #8
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.