判别分析中注意下面几点
1. 先用stepdisc过程筛选出对模型有统计意义的变量,然后再使用discrim过程进行判别。
2. discrim过程中,要注意参数估计(默认选项,method=normal)的条件是否满足。
3. crosslist交叉检验误判率一般要比list高。
在第11周作业中,样本变量并非都成正态分布或者正态性不明显,在判别分析中,这一点要求的并不高,而对协方差齐性的要求较为严格。因此使用discrim过程中默认选项method=normal,参数估计方法可近似判别,效果还算不错。但恰恰是参数判别方法的条件并不完全充分,增大了误判的比率,而如果采用非参数方法进行判别,效果很理想,在第一题中,全部判断正确,第二题中也仅有1例误判。所以,建议大家在使用时注意判别分析中参数估计和非参数估计影响。
在第11周作业中,样本的变量并非都成正态分布或者正态性不明显,在判别分析中,这一点要求的并不高,而对协方差齐性的要求较为严格。因此使用discrim过程中默认选项method=normal,参数估计方法可近似判别,效果还算不错。但恰恰是参数判别方法的条件并不完全充分,增大了误判的比率,而如果采用非参数方法进行判别,效果很理想,在第一题中,全部判断正确,第二题中也仅有1例误判。所以,建议大家在使用时注意判别分析中参数估计和非参数估计影响。
下面给出非参数判别的一个样例。
libname test 'e:\sas_logic\test';
data test.iris;
infile 'e:\sas_logic\test\iris.txt';
input sepallen sepalwid petallen petawid iris@@;
run;
/*变量分析*/
proc stepdisc method = sw;
class iris;
var sepallen sepalwid petallen petawid;
run;
/*正态分析*/
proc sort;
by iris;
PROC univariate normal;
var sepallen sepalwid petallen petawid;
by iris;
run;
/*参数判别方法*/
proc discrim pool = test distance manova crosslisterr;
class iris;
var sepallen sepalwid petallen petawid;
run;
/*非参数判别方法*/
proc discrim method = npar R = 0.2 distance manova;
class iris;
var sepallen sepalwid petallen petawid;
run;
复制代码
采用参数估计还是非参数的估计的判别条件是待分析变量均成正态分布,所以正态分布判定是必要的。协方差齐性是指两个样本各自的协方差相等,如果相等则计算平方距离时采用组内协方差矩阵,否则采用组间合并的协方差矩阵。
协方差齐性是判定具体的判别函数(比如贝叶斯)在计算平方距离所采用的方式(组内还是组间协方差矩阵);参数判别是判别方式,如果是参数估计方式,那么因变量可以由变量表示为线性或二次方程的形式。