描述性統計的matlab實現
阿新 • • 發佈:2018-06-20
pre tool nes http 調用 一點 bsp log 文件
理論講的再多不會做也白弄
直接上手
一.針對接近正態分布的(均值,方差,標準差,極差,變異系數,偏度,峰度)
這裏我必須提前說明一點就是,你在寫好函數後,函數的名是dts,你保存的文件名也必須是dts.m才行,這樣調用dts()函數的時候才不會出現錯。
x=[ 1 2 0/0 4 5 6] function dts(x);
a = x(:); nans = isnan(a); ind = find (nans); %nan是0/0. a(ind)=[]; xbar= mean(a); disp([‘均值是:‘,num2str(xbar)]); s2 = var(a); disp([‘方差是:‘,num2str(s2)]); s = std(a); disp([‘標準差是:‘,num2str(s)]);%數據裏必須是元素的類型一樣,所以要有num2str()函數轉一下。 R = range(a); disp([‘極差是:‘,num2str(R)]); cv = 100*s./xbar;%它是一個相對的數且沒有量綱,所以更具有說明性。 disp([‘變異系數是:‘,num2str(cv)]); g1 = skewness(a,0); disp([‘偏度:‘,num2str(g1)]); g2=kurtosis(a,0); disp([‘峰度‘,num2str(g2)]);
二.針對 有極端值(中位數,上下四分位數,四分位極差,三均值,上下截斷點)
function fws(x) a = x(:); a(isnan(a))=[]; ss5 = prctile(a,50); disp([‘中位數是:‘,num2str(ss5)]); ss25 = prctile(a,25); disp([‘下四分位數是:‘,num2str(ss25)]); ss75 = prctile(a,75); disp([‘上四分位數是:‘,num2str(ss75)]); RS = ss75-ss25; disp([‘四分位極差:‘,num2str(RS)]); sss = 0.25*ss25+0.5*ss50+0.25*ss75; disp(‘三均值:‘,num2str(sss));
三.用樣本的分布描述總體的matlab
莖葉圖:
a=[10 20 10;54 56 78] a=a(:) b=a-mod(a,10); b=unique(b); b=sort(b); N=length(b); for k=1:N tmp=b(k); TT=sort(a‘); TT(TT<tmp)=[]; TT(TT>tmp+10)=[]; ts=mat2str(mod(TT,10)); ts(ts==‘[‘)=[]; ts(ts==‘]‘)=[]; disp([int2str(tmp),‘ : ‘,ts]) end
經驗分布函數圖
X=[12,3,5,6;4,5,6,7]; X=X(:)‘ X=sort(X) n=length(X) m=size(X)%寫這一步是為了比較length 和 size兩個函數的不同 xsui=ones(size(X)) B=cumsum(xsui) B=B/n x1=min(X)-(max(X)-min(X))*0.1 xr=max(X)+(max(X)-min(X))*0.1 x=[x1,X,xr] y=[0,B,1] h=stairs(x,y) set(h,‘linewidth‘,2,‘color‘,‘k‘) xlabel(‘x‘) ylabel(‘F(x)‘) grid on axis([x1,xr,-0.05,1.05]) title(‘經驗分布函數‘)
出處:http://www.cnblogs.com/zhengtaodoit/p/4933958.html
描述性統計的matlab實現