2013-02-20 32 views
-1

我想在不使用統計工具箱的情況下在MATLAB中使用引導技術。沒有統計工具箱的自舉計算

我的數據集是一個2 x 50矩陣,第1列是月份,第2列是沉澱。值。我計算出的平均值,標準偏差,偏度係數使用這個腳本:

yr = x(:,1); 
p = x(:,2); 
x_hat = mean(p); 
sd = p-x_hat; 
s = sqrt((1/(n-1)) .* (sum((sd).^2))); 
skew = ((1/(n-1)) .* (sum((sd).^3))/(s.^3)); 

我需要到B)環比自舉計算我想(10000)的數量,並與環K,

c)從原始數據中隨機選擇一個N值的子集(建議使用隨機數生成器乘以N,然後舍入爲整數)。

曾經有N, d)我將計算(和存儲)所需的統計量對於每個k,

E)排序的存儲矢量從最低到最高,

f)和然後找到價值,切斷最低0.025和最高0.025。

任何建議都會很好。

+2

嘗試發佈代替一系列相關或不相關的任務分配的實際編程語言或問題。從你的文章中,我明白你的問題是如何從存儲爲矩陣的數據集中繪製隨機樣本。 – gevang 2013-02-20 07:02:06

回答

0

這歸結爲從[1, N]抽取隨機樣本,其中N是每次試驗所需的樣本數。然後,您使用k個不同的排列直接爲您的數據矩陣的列編制索引。實施例(樣品= 50,試驗= 1000,子集= 40):

x = randn(2, 50); % example data matrix 
N = 50; nTrials = 1000; nSamples = 40; 

要生成樣本沒有重複,或取樣無需更換,可以使用randperm它調用rand

for k = 1:nTrials 
    indexSample(:,k) = randperm(N, nSamples);  
end  

如果你想採樣與更換(即用於引導)調用替換爲對randperm

indexSample(:,k) = round(N*rand(nSamples, 1)) 

,並增加相應NSAMPLES。

每次試驗的數據樣本組(例如,K = 1),則是:

xk = x(:, indexSample(:,k)) % sample data for trial k