2014-01-24 3 views
0

3 RV와 정규 분포의 합계에 대한 히스토그램을 비교하여 matlab에서 CLT를 증명하려고합니다. 나는 두 가지 문제가MATLAB의 중심 극한 정리

clc;clear; 
len = 50000; 

%y0 : Exponential Distribution 
lambda = 3; 
y0=-log(rand(1,len))./lambda; 


%y1 : Rayleigh Distribution 
mu = 0; 
sig = 2; 
var1 = mu + sig*randn(1,len); 
var2 = mu + sig*randn(1,len); 
t1 = var1 .^ 2; 
t2 = var2 .^ 2; 
y1 = sqrt(t1+t2); 


% %y2: Normal Distribution 
y2 = randn(1,len); 


%y3 : What result excpected to be: 
mean0 = (sum(y0)+ sum(y1)+ sum(y2))/(len * 3);%how do I calculate this? 
var0 = 1;%how do I calculate this? 
y3 = mean0 + var0*randn(1,len); 
delta = 0.1; 
x3 = min(y3):delta:max(y3); 
figure('Name','Normal Distribution'); 
hist(y3,x3); 


%Central Limit Theorem: 
%what result is: 
res = y0+y1+y2; 
xn = min(res):delta:max(res); 
figure('Name','Final Result'); 
hist(res,xn); 

:

여기 내 코드입니다.

  1. 어떻게 의미와 Y3에 대한 분산 (어떤 결과를해야한다)

  2. 내 코드가 정확 계산할 수있다?

    mean0 = mean([y0 y1 y2]); 
    variance0 = var([y0 y1 y2]); 
    

    을 당신이 하나의 벡터의 모든 이전 샘플 큰 벡터를 생성하는 [y0 y1 y2]를 만들 때 (AS : y0, y1y2은 행 벡터가

답변

5

때문에, 당신은해야 할 샘플이 단일 배포판 일 경우).

이제 위의 그림과 같이 원하는 기능 (평균 및 분산)에 꽂으십시오.


통계 부분에 대한 : 나는 당신이 잘못한 것 같아요. Central Limit Theorem은 동일한 분포에 따라 분산 된 변수 의 합계에 적용됩니다. 실제로 모든 분포 D 일 수 있지만 모든 변수는 같은 분포를 가져야합니다. D. 서로 다른 분포를 합산하려고합니다.

정리는 말한다 : 나는 지수 분포에 따라 분산 변수에 대한 예를 코딩 한

CLT

. 이를 실행하면 N을 늘리면 결과 분포가 예상되는 정규 분포를 얻는 경향이 있다는 것을 알 수 있습니다. N = 1 인 경우 지수 분포 (정규 분포와는 매우 다른)를 갖지만 N = 100의 경우 예상 분포 분포에 매우 가깝게 분포합니다 (평균 및 분산이 기본적으로 어떻게 같은지 볼 수 있습니다 지금).= 10 Sum of Exponentials for N=10

N과 지수들에 대한 N = 3 Sum of Exponentials for N=3

CLT와 지수들에 대한 N = 1 Sum of Exponentials for N=1

CLT 함께 지수 함수에 대한

CLT Exponentials에 대한 CLT N = 100 Sum of Exponentials for N=100

예상 정규 분포 (CLT의 수렴 distibution) expected normal

clc;clear; 
len = 50000; 
lambda = 3; 

%yA : Exponential Distribution A 
yA=-log(rand(1,len))./lambda; 

%yB : Exponential Distribution B 
yB=-log(rand(1,len))./lambda; 

%yC : Exponential Distribution C 
yC=-log(rand(1,len))./lambda; 

%yD : Exponential Distribution D 
yD=-log(rand(1,len))./lambda; 

%yE : Exponential Distribution E 
yE=-log(rand(1,len))./lambda; 

%yF : Exponential Distribution F 
yF=-log(rand(1,len))./lambda; 

%yG : Exponential Distribution G 
yG=-log(rand(1,len))./lambda; 

%yH : Exponential Distribution H 
yH=-log(rand(1,len))./lambda; 

%yI : Exponential Distribution I 
yI=-log(rand(1,len))./lambda; 

%yJ : Exponential Distribution J 
yJ=-log(rand(1,len))./lambda; 


%y1 : What result you expect it to be (centred Gaussian with same variation as exponential): 
mean0 = 0; 
var0 = var(yA); 
y1 = mean0 + sqrt(var0)*randn(1,len); 
delta = 0.01; 
x1 = min(y1):delta:max(y1); 
figure('Name','Normal Distribution (Expected)'); 
hist(y1,x1); 


%Central Limit Theorem: 
%what result is: 
res1 = (((yA)/1) - mean(yA))*sqrt(1); 
res2 = (((yA+yB)/2) - mean(yA))*sqrt(2); 
res3 = (((yA+yB+yC)/3) - mean(yA))*sqrt(3); 
res4 = (((yA+yB+yC+yD)/4) - mean(yA))*sqrt(4); 
res5 = (((yA+yB+yC+yD+yE)/5) - mean(yA))*sqrt(5); 
res10 = (((yA+yB+yC+yD+yE+yF+yG+yH+yI+yJ)/10) - mean(yA))*sqrt(10); 
delta = 0.01; 
xn = min(res1):delta:max(res1); 
figure('Name','Final Result for N=1'); 
hi st(res1,xn); 
xn = min(res2):delta:max(res2); 
figure('Name','Final Result for N=2'); 
hist(res2,xn); 
xn = min(res3):delta:max(res3); 
figure('Name','Final Result for N=3'); 
hist(res3,xn); 
xn = min(res4):delta:max(res4); 
figure('Name','Final Result for N=4'); 
hist(res4,xn); 
xn = min(res5):delta:max(res5); 
figure('Name','Final Result for N=5'); 
hist(res5,xn); 
xn = min(res10):delta:max(res10); 
figure('Name','Final Result for N=10'); 
hist(res10,xn); 

%for N = 100 
y100=-log(rand(100,len))./lambda; 
res100 = ((sum(y100)/100) - mean(yA))*sqrt(100); 
xn = min(res100):delta:max(res100); 
figure('Name','Final Result for N=100'); 
hist(res100,xn); 
+0

좋고, 형상이 동일하지만 편차를 보인다 Y3 및 결과이, 히스토그램을 가한 후와 함께 의미는 y3 및 결과에서 동일하지 않습니다 ... – Arashdn

+0

@Arashdn 몇 가지 의견과 몇 가지 추가 코드를 추가했습니다. 그것이 당신을 위해 물건을 더 분명하게하기를 바라 라. – DanielX2010

+1

멋진 대답. 다음을 추가하기 만하면됩니다. 첫째, Matlab은 그런 것들을 설명하는 도구가 될 수 없으며, 일부 데이터 세트에서 작동한다는 것을 보여줍니다. 이것은 증거가 아니라 단서입니다. 둘째로, 컴퓨터 기계는 유한하고 분리 된 기계이고, 어떤 분포에서 추출한 임의의 변수처럼 보이는 시리즈를 만들 수 있지만, 실제의 무작위 독립 값을 생성 할 수 없으므로 IID 가설은 유지되지 않을 수 있습니다. 어쨌든 Matlab이나 Octave는 꽤 좋은 도구입니다. 우리는 한계가 무엇인지 명심해야합니다. – jlandercy