• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

MATLAB: Inverse Fourier Transform of Characteristic Function to get PDF

Joined
6/16/11
Messages
9
Points
13
Hello,
I'm new to Matlab and modeling. I have a data set and a Characteristic Function describing the probability distribution of data. I will do inverse fourier trasform of Characteristic Function to get Probability Density Function (PDF) which I can use to create Maximum Likelihood function to be maximized with fmincon(). This will give me parameter estimates for my model. After this I can price some derivatives...

This is a bit too complicated for me at the moment, so before I get there, I'm trying to learn how to use matlab. So, I created a normally distributed dataset and I'm trying to perform inverse fourier transform on data (ifft() I guess). However, I'm not sure how to do this. Do I just run ifft() on my dataset or do I have to employ the Characteristic Function of normal distribution somewhere, since my data is normally distributed? Sorry, I haven't worked with discrete data before, so I'm not sure how to proceed. Any help would be appreciated.
Thank you.
 
Hello,
I'm new to Matlab and modeling. I have a data set and a Characteristic Function describing the probability distribution of data. I will do inverse fourier trasform of Characteristic Function to get Probability Density Function (PDF) which I can use to create Maximum Likelihood function to be maximized with fmincon(). This will give me parameter estimates for my model. After this I can price some derivatives...

This is a bit too complicated for me at the moment, so before I get there, I'm trying to learn how to use matlab. So, I created a normally distributed dataset and I'm trying to perform inverse fourier transform on data (ifft() I guess). However, I'm not sure how to do this. Do I just run ifft() on my dataset or do I have to employ the Characteristic Function of normal distribution somewhere, since my data is normally distributed? Sorry, I haven't worked with discrete data before, so I'm not sure how to proceed. Any help would be appreciated.
Thank you.

If your data vector describes your distribution than yes, ifft() on the data vector will be sufficient. Due note that ifft() expects data which resides between 0-2*pi instead of the symmetric -pi-pi.
 
Thank you for the reply.

In a more complicated case when I have a data set and a characteristic function describing data (in model I'm looking at I have brownian motion and stochastic jumps (compound poisson process)). What happens when I need to get the PDF by inverse fourier transform? Is applying ifft() directly still valid?
 
Thank you for the reply.

In a more complicated case when I have a data set and a characteristic function describing data (in model I'm looking at I have brownian motion and stochastic jumps (compound poisson process)). What happens when I need to get the PDF by inverse fourier transform? Is applying ifft() directly still valid?

I'm not sure I understand you.You have two data vectors:

1.The characteristic function - As its regular definition? If so than yes all you need to do is ifft() { in case the function is from 0-2*pi, if not you will need to shift it, you can use fftshift() or the related functions to do so }.

2.The data set vector - These are samples that were collected from something that its characteristic function is #1?

Correct me if I'm wrong but it seems that what confuses you is the "empirical" way you get stuff in Matlab.

I liked what you said in the first post, start from something you know like a Normal Distribution , get its characteristic function and other parameters you of it you know and than get back to your case.

Try to also compare it with the outcome of randn() which is a random number generator, maybe this will give you a more familiar feeling to the analytic equations.

BTW, remember that fft() is DFT and acts somewhat different than all other Fourier transforms.
 
Back
Top