在数据处理中,matlab和Python是常用的工具,在量化模型中,概率论是一项很重要的基础,而中心极限定理在概率论中又是一个很重要的理论。
中心极限定理的定义为:
设随机序列{Xi}独立同分布,有共同的数学期望u和方差σ^2,部分和由
定义,则Sn的标准化
依分布收敛到标准正态分布。即对任何x,
这里Φ(x)是标准正态分布的分布函数。
对于二项分布而言,
当n→∞时,Sn的分布形状很像正态分布。
所以,今天我们就来看看,n从小到大时,Sn形状的变化。
matlab动态图:
python动态图:
clear all;
close all;
clc;
%% 二项分布
p = 0.6;
n = 1000;
Psn = zeros(1,n+1);
if 1
h2 =plot(0:n,Psn);
grid on
% axis([0 n 0 0.05]);
axis([1 100 0 0.09]);
for i=100:10:n
for k = 0:i
Psn(k+1) = nchoosek(i,k) * (p^k) * ((1-p)^(i-k));
end
set(h2,'XData',1:101,'YData',Psn(floor(i*0.6)-50:floor(i*0.6)+50));
drawnow
grid on
pause(0.01)
end
end
python代码
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
File Name: central_limit_theorem1.py
Description :
Author : Z270
date: 2018/8/30
-------------------------------------------------
Change Activity:
2018/8/30:
-------------------------------------------------
"""
import numpy as np
from scipy.special import comb
import matplotlib.pyplot as plt
p = 0.6
n = 1000
Psn = np.zeros(n+1)
plt.figure(figsize=(8, 6), dpi=80)
# 打开交互模式
plt.ion()
for i in range(100,n+1,10):
for k in range(i+1):
Psn[k] = comb(i,k) * (p**k) * ((1-p)**(i-k))
plt.cla()
plt.grid(True)
plt.xlim(1,100)
plt.ylim(0,0.09)
plt.plot(range(1,102), Psn[int(np.floor(i*0.6))-50:int(np.floor(i*0.6))+51], 'b--', linewidth = 2.0)
plt.pause(0.1)
print(i)
plt.ioff()
plt.show()
欢迎关注微信公众号:从数据分析到量化投资,我们会不定期免费分享一些量化投资的教程和策略,C++/matlab/python等编程语言的技巧和数据分析算法内容。