zoukankan      html  css  js  c++  java
  • 描述性统计的matlab实现

    理论讲的再多不会做也白弄

    直接上手

    一.针对接近正态分布的(均值,方差,标准差,极差,变异系数,偏度,峰度)

    这里我必须提前说明一点就是,你在写好函数后,函数的名是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

  • 相关阅读:
    Amoeba+Mysql实现数据库读写分离
    分布式mysql中间件(mycat)
    mysql打不开表问题解决方案
    redis下载安装以及添加服务
    linux mysql重启命令
    Centos打开、关闭、结束tomcat,及查看tomcat运行日志
    mybaties中,模糊查询的几种写法
    如何给mysql用户分配权限+增、删、改、查mysql用户
    反人类的MyEclipse之-Javascript双引号自动补全
    反人类的MyEclipse之-调整JavaScript代码-花括号换行显示
  • 原文地址:https://www.cnblogs.com/jingsupo/p/9204465.html
Copyright © 2011-2022 走看看