用于内核密度 SAS 的默认值
Default value used for Kernel density SAS
我正在使用 SAS 绘制具有内核密度的直方图。文档中规定我们可以选择参数c:“大于0小于等于100的数字的标准化带宽”。但是我找不到用于创建以下图的默认值。
有人有想法吗?谢谢!
SGPLOT 最小化核密度函数的渐近均方积分误差 (AMISE)。根据PROC UNIVARIATE
,这也可以做KDE:
By default, the procedure uses the AMISE method to compute kernel density estimates.
我们可以通过比较输出来确认它们具有相同的默认值。
proc univariate data=sashelp.cars;
var horsepower;
histogram / kernel;
run;
在日志中,我们发现:
NOTE: The normal kernel estimate for c=0.7852 has a bandwidth of 21.035 and an AMISE of 392E-7.
让我们一起绘制它们并比较值。
proc sgplot data=sashelp.cars;
density horsepower/TYPE=KERNEL;
density horsepower/TYPE=KERNEL(c=0.7852);
ods output sgplot;
run;
data diff;
set sgplot;
abs_diff = abs(KERNEL_Horsepower____Y - KERNEL_Horsepower_C_0_7852____Y);
run;
proc univariate data=diff;
var abs_diff;
run;
绘制的所有点之间的平均差异为 1.65x10^-9,整体最大差异为 6.76x10^-9。这基本上是零。差异的原因是日志中给用户的c值比proc sgplot
计算的精度低。您也可以使用 proc univariate
中的 outkernel=
选项获得更高精度的估计值。
我正在使用 SAS 绘制具有内核密度的直方图。文档中规定我们可以选择参数c:“大于0小于等于100的数字的标准化带宽”。但是我找不到用于创建以下图的默认值。
有人有想法吗?谢谢!
SGPLOT 最小化核密度函数的渐近均方积分误差 (AMISE)。根据PROC UNIVARIATE
,这也可以做KDE:
By default, the procedure uses the AMISE method to compute kernel density estimates.
我们可以通过比较输出来确认它们具有相同的默认值。
proc univariate data=sashelp.cars;
var horsepower;
histogram / kernel;
run;
在日志中,我们发现:
NOTE: The normal kernel estimate for c=0.7852 has a bandwidth of 21.035 and an AMISE of 392E-7.
让我们一起绘制它们并比较值。
proc sgplot data=sashelp.cars;
density horsepower/TYPE=KERNEL;
density horsepower/TYPE=KERNEL(c=0.7852);
ods output sgplot;
run;
data diff;
set sgplot;
abs_diff = abs(KERNEL_Horsepower____Y - KERNEL_Horsepower_C_0_7852____Y);
run;
proc univariate data=diff;
var abs_diff;
run;
绘制的所有点之间的平均差异为 1.65x10^-9,整体最大差异为 6.76x10^-9。这基本上是零。差异的原因是日志中给用户的c值比proc sgplot
计算的精度低。您也可以使用 proc univariate
中的 outkernel=
选项获得更高精度的估计值。