Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
677 views
in Technique[技术] by (71.8m points)

matlab - Fit data to normal distribution

I want some data to fit the corresponding Gaussian distribution.

The data is meant to be Gaussian already, but for some filtering reasons, they will not perfectly match the prescribed and expected Gaussian distribution. I therefore aim to reduce the existing scatter between data and desired distribution.

For example, my data fit the Gaussian distribution as follows (the expected mean value is 0 and the standard deviation 0.8):

enter image description here

enter image description here

The approximation is already decent, but I really want to crunch the still tangible scatter between simulated data and expected distribution.

How can I achieve this?

EDIT

Up to now, I have introducing kinda safety factor, defined as:

SF = expected_std/actual_std;

and then

new_data = SF*old_data;

This way the standard deviation matches the expected value, but this procedure looks quite poor from my understanding.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

If you don't want to make any non-linear transformations of the distributions, all you can do is adjust the mean and standard deviation.

%# 1. adjust the mean (do this even if the offset is small)
data = data - mean(data);

%# 2. adjust the standard deviation
data = data/std(data) * expected_SD;

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...