zoukankan      html  css  js  c++  java
  • 判断分析

    判别分析

    回忆一下,我们已经学过了聚类分析(物以类聚,人以群分),主成分分析(因子的线性变换),因子分析(因子内部的联系)。今天要介绍的又是另外一种多元分析,判别分析,他是对于给定的样本 ,要判断他是来自哪一个总体。神奇不!!!

    如何进行判别呢,主要有三种方法:

    • 距离判别

    • 判别

    • 判别

    其实总体的思路还是类似的,都是用一个标准来评价,这个样本更接近于哪一个总体,只不过三种方法的标准是不同的,这里我就只研究其中的 判别啦。其实 判别只需要稍微转换一下就是 判别了。

    P266

    clc,clear;
    a = [24.8 24.1 26.6 23.5 25.5 27.4
        -2.0 -2.4 -3.0 -1.9 -2.1 -3.1]';
    b = [22.1 21.6 22.0 22.8 22.7 21.5 22.1 21.4
        -0.7 -1.4 -0.8 -1.6 -1.5 -1.0 -1.2 -1.3]';
    n1 = 6;
    n2 = 8;
    % 两个总体样本的均值向量
    mu1 = mean(a);
    mu2 = mean(b);
    % 两个总体样本的协方差矩阵
    sig1 = cov(a);
    sig2 = cov(b);
    ​
    % 两总体公共协方差矩阵的估计
    sig = ((n1-1)*sig1+(n2-1)*sig2)/(n1+n2-2);
    ​
    syms x1 x2;
    x = [x1,x2];
    ​
    % 构造判别函数
    wx = (x-0.5*(mu1+mu2))*inv(sig)*(mu1-mu2)';
    ​
    wx = vpa(wx,6);
    ahat = subs(wx,{x1,x2},{a(:,1),a(:,2)});
    bhat = subs(wx,{x1,x2},{b(:,1),b(:,2)});
    ​
    ahat = vpa(ahat,6);
    bhat = vpa(bhat,6);
    beta = log(8/6);
    sol1 = (ahat>beta);
    sol2 = (bhat<beta);

     我们学过协方差和相关系数:

     
     

    什么是协方差矩阵呢?

     

    对于 ​Bayes 判别,他的判别函数是:

     

    注意的是:这里的 ​u 是样本均值,要是总体均值那这个公式就变成了 ​Fisher 判别了,​sigma 是协方差矩阵。

    求出判别函数:

     

    sol1 =
        0.28768207245178084585646161031036 < 3.0156097586564328594249673187733
        0.28768207245178084585646161031036 < 2.8796766343971853530092630535364
        0.28768207245178084585646161031036 < 10.092942700412879730720305815339
     0.28768207245178084585646161031036 < -0.032187096841215634412947110831738
        0.28768207245178084585646161031036 < 4.8098011348744364568119635805488
        0.28768207245178084585646161031036 < 12.096068323177490810849121771753
    sol2 =
       -6.93708635319473501112952362746 < 0.28768207245178084585646161031036
     -5.6601960331855138974788133054972 < 0.28768207245178084585646161031036
     -6.8143689493495912756770849227905 < 0.28768207245178084585646161031036
     -2.4896817738427216681884601712227 < 0.28768207245178084585646161031036
     -3.0302676707810803691245382651687 < 0.28768207245178084585646161031036
     -7.1957368812991262529976665973663 < 0.28768207245178084585646161031036
     -5.2788281012359789201582316309214 < 0.28768207245178084585646161031036
     -6.4097161766704800811567110940814 < 0.28768207245178084585646161031036

    还是可以看出,有一个判断错了。

     

  • 相关阅读:
    Visual Studio 中的 .NET Framework 类库
    泛型
    泛型
    事件
    基于事件的异步模式
    使用委托进行异步编程
    使用 IAsyncResult 调用异步方法
    异步编程设计模式
    演练:使用VS2010 C# 创作简单的多线程组件
    [转][MEF插件式开发] 一个简单的例子
  • 原文地址:https://www.cnblogs.com/TreeDream/p/8341997.html
Copyright © 2011-2022 走看看