正好刚刚学了点变换技术,希望同仁能给予批评和交流,共同学习。
有些公式不好编辑所以截图分享。
Spline与MSpline变换
变量缺失部分的变换,Spline、MSpline变换与Linear、Monotone、Opscore、Untie的变换相同。
变量非缺失部分的变换,即最优变换(Spline变换),为b-spline基向量的线性组合,而b-spline基可以精确(数量少,没有共线性)、有效(计算有效性)的替代分段多项式基(piecewise polynomial spline basis)。
MSpline在Spline基础上保持变换的单调性。
Degree与knots的确定
1.一般来说,最好degree<=3,knots<=10,同时在某前提下,建议在尽量小的degree下,设定较多的knots;当然样条在拟合数据时,将产生p(degree的数量)+q(knots的数量)个参数,所以对样本量的要求是:一般回归而言,10*k(自变量数目)*(p+q)。
2.当指定nknots=q,要确定样本是否足量,每个样条q+1部分的样本量平均为n/(q+1);如果指定knots=数值列表,确定每个区间的样本是否足量,设置结点时不宜超过变量的全距。
3.SAS语法
proc transreg data=data_anl.food_qualification;
model identity(raw_material)=
spline(auxiliary_materials3/degree=3 knots=1.1 3 3 4);
run;
如果degree=1或2或3表示拟合线性、二次曲线、三次曲线;nknots=1或2或┄表示在线性(或曲线)上增加结点从而容许样条根据情况拟合数据。
故:
degree=1并且nknots=n,表示对变量进行分段线性变换;
degree=0并且nknots=n,表示将因变量分成n等份,并进行步函数(step-function)变换;
degree=3 knots=1.1 3 3 4, 表示二次曲线小于3和大于3,各不相同;三次曲线在小于1.1、1.1到3、3到4、大于4其区间各不相同。
暂无数据