2009年6月22日 星期一

(三)使用Matlab進行分析(1)使用bootstrap和一般的分布之比較

使用Matlab進行分析:
針對顆粒進行計算-利用第一段和第二段最大的100顆顆粒
使用bootstrap和一般的分布之比較
第一段的最大粒徑分布圖

第二段最大粒徑分布圖

這是第一段和第二段100顆最大顆粒度的分布圖,其兩者分不較多在20-25公分之間,另外一點則是第二段也有幾顆粒石分佈在在90、70公分。而第一段則最大的也不過在40-45公分的範圍內。

第一段的最大平均粒度為26.0990公分,標準差為6.5783;第二段的最大平均粒度為33.1460公分,標準差為12.4194;利用bootstrap 之後第一段的平均粒度為26.0783公分,標準差為0.6467;第二段的最大平均粒度為33.1928公分,標準差為1.2223。這很明顯的可以發現在平均方面的變化不大,但是標準差則變得很小,使用bootstrap的好處是可以將相對較大或較小的資料排除,以影響了整體的趨勢

針對100個資料進行1000次的選擇,最後可以排除異常大或著異常小的數值,從還沒有進行bootstrap 和進行bootstrap 可以發現標準差從很大變得很小,且呈現常態分布的情形。


使用bootstrap之後第一段分布則呈現常態分布的情況

第二段所使用bootstrap 之後所得到的也是呈常態分布的情況
以下為程式碼
aa = load('gravel size.txt')%載入資料%
long1= aa(1:100,1);%第一行,1到100顆%
long2= aa(101:200,1);%第二行, 101顆到200顆%
figure(3),hist(long1)%對於第一段的最大粒徑分布畫直方圖%
figure(4),hist(long2)%對於第二段的最大粒徑分布畫直方圖%
foo1=bootstrp(1000,@mean,long1)%使用bootstrap,1000代表抽取1000次, @mean為1000次之後的平均%
foo2=bootstrp(1000,@mean,long2) %使用bootstrap,1000代表抽取1000次, @mean為1000次之後的平均%
figure(5);hist(foo1)%第一段bootstrap 之後得直方圖%
figure(6);hist(foo2) %第二段bootstrap 之後得直方圖%
xlabel('cm')%x軸的標示%
ylabel('number')%y軸的標示%
figure(4),hist(long2)
xlabel('cm') %x軸的標示%
ylabel('number') %y軸的標示%
figure(5);hist(foo1)
xlabel('cm') %x軸的標示%
ylabel('number') %y軸的標示%
figure(6);hist(foo2)
xlabel('cm') %x軸的標示%
ylabel('number') %y軸的標示%
mean(long1)%第一段最大顆粒度的平均%
mean(long2)%第二段最大顆粒度的平均%
std(long1)%第一段的標準差%
std(long2)%第二段的標準差%
mean(foo1)%使用bootstrap之後的平均%
mean(foo2)
std(foo1)%使用bootstrap之後標準差%
std(foo2)

沒有留言:

張貼留言