Apa itu Teorema Limit Pusat
Teorema limit pusat menyatakan bahwa distribusi rata-rata sampel
Hal yang luar biasa dari teorema ini adalah bahwa hal itu dapat didekati oleh distribusi normal terlepas dari distribusi populasinya. Tidak peduli apa distribusi probabilitas aslinya, jika
Penting untuk dicatat bahwa itu adalah distribusi rata-rata sampel yang dapat mendekati distribusi normal, bukan distribusi sampel itu sendiri yang diambil dari populasi. Distribusi rata-rata sampel adalah distribusi yang dibentuk oleh nilai rata-rata ketika proses pengambilan sampel dari populasi dan menemukan rata-ratanya diulang berkali-kali.
Periksa Teorema Limit Pusat dalam Python
Contoh dadu
Let's experiment with the distribution of the total number of dice thrown N (1, 2, 5, 10, 50, 100) times. The dice follow a uniform distribution since the probability of getting any number from 1 to 6 is equal to
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
#%matplotlib inline
sns.set()
sns.set_context(rc = {'patch.linewidth': 0.2})
sns.set_style('dark')
numIterations = np.asarray([1,2,5,10,50,100]); #number of i.i.d RVs
experiment = 'dice' #valid values: 'dice', 'coins'
maxNumForExperiment = {'dice':6,'coins':2} #max numbers represented on dice or coins
nSamp=100000
k = maxNumForExperiment[experiment]
fig, fig_axes = plt.subplots(ncols=3, nrows=2, constrained_layout=True, figsize=(12,8))
for i,N in enumerate(numIterations):
y = np.random.randint(low=1,high=k+1,size=(N,nSamp)).sum(axis=0)
row = i//3;col=i%3;
bins=np.arange(start=min(y),stop=max(y)+2,step=1)
fig_axes[row,col].hist(y,bins=bins,density=True)
fig_axes[row,col].set_title('N={} {}'.format(N,experiment))
plt.show()
Ketika N meningkat (yaitu, ukuran sampel yang akan diekstraksi meningkat), distribusi nilai total dadu (distribusi rata-rata sampel) mendekati distribusi normal.
Selanjutnya, mari kita bereksperimen dengan distribusi nilai rata-rata dadu yang dilempar sebanyak N (1, 2, 5, 10, 50, 100) kali.
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
#%matplotlib inline
sns.set()
sns.set_context(rc = {'patch.linewidth': 0.2})
sns.set_style('dark')
numIterations = np.asarray([1,2,5,10,50,100]); #number of i.i.d RVs
experiment = 'coins' #valid values: 'dice', 'coins'
maxNumForExperiment = {'dice':6,'coins':2} #max numbers represented on dice or coins
nSamp=100000
k = maxNumForExperiment[experiment]
for i,N in enumerate(numIterations):
y = np.random.randint(low=1,high=k +1,size=(N,nSamp)).sum(axis=0)/N
row = i//3;col=i%3;
bins=np.arange(start=1,stop=7,step=0.1)
fig_axes[row,col].hist(y,bins=bins,density=True)
fig_axes[row,col].set_title('N={} {}'.format(N,experiment))
plt.show()
Kita dapat melihat bahwa dengan bertambahnya N, distribusi rata-rata lemparan dadu mendekati distribusi normal. Juga, karena varians dari rata-rata sampel adalah
Contoh koin
Mari kita bereksperimen dengan distribusi nilai total dari sebuah koin yang dilempar sebanyak N (1, 2, 5, 10, 50, 100) kali, dengan 1 untuk kepala dan 2 untuk ekor. Probabilitas koin menjadi kepala atau ekor sama dengan
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
#%matplotlib inline
sns.set()
sns.set_context(rc = {'patch.linewidth': 0.2})
sns.set_style('dark')
numIterations = np.asarray([1,2,5,10,50,100]); #number of i.i.d RVs
experiment = 'coins' #valid values: 'dice', 'coins'
maxNumForExperiment = {'dice':6,'coins':2} #max numbers represented on dice or coins
nSamp=100000
k = maxNumForExperiment[experiment]
fig, fig_axes = plt.subplots(ncols=3, nrows=2, constrained_layout=True, figsize=(12,8))
for i,N in enumerate(numIterations):
y = np.random.randint(low=1,high=k+1,size=(N,nSamp)).sum(axis=0)
row = i//3;col=i%3;
bins=np.arange(start=min(y),stop=max(y)+2,step=1)
fig_axes[row,col].hist(y,bins=bins,density=True)
fig_axes[row,col].set_title('N={} {}'.format(N,experiment))
plt.show()
Ketika N meningkat (yaitu, ukuran sampel yang akan diekstraksi meningkat), distribusi jumlah nilai koin (distribusi rata-rata sampel) mendekati distribusi normal.
Selanjutnya, mari kita bereksperimen dengan distribusi nilai rata-rata mata yang muncul ketika koin dilempar sebanyak N (1, 2, 5, 10, 50, 100) kali.
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
#%matplotlib inline
sns.set()
sns.set_context(rc = {'patch.linewidth': 0.2})
sns.set_style('dark')
numIterations = np.asarray([1,2,5,10,50,100]); #number of i.i.d RVs
experiment = 'coins' #valid values: 'dice', 'coins'
maxNumForExperiment = {'dice':6,'coins':2} #max numbers represented on dice or coins
nSamp=100000
k = maxNumForExperiment[experiment]
for i,N in enumerate(numIterations):
y = np.random.randint(low=1,high=k +1,size=(N,nSamp)).sum(axis=0)/N
row = i//3;col=i%3;
bins=np.arange(start=1,stop=3,step=0.1)
fig_axes[row,col].hist(y,bins=bins,density=True)
fig_axes[row,col].set_title('N={} {}'.format(N,experiment))
plt.show()
Dengan bertambahnya N, kita melihat bahwa distribusi rata-rata nilai koin mendekati distribusi normal. Juga, karena varians dari rata-rata sampel adalah
Referensi