sas - 用于拟合连续(正支持)分布的 Proc 单变量和 Proc 严重性之间的差异

标签 sas model-fitting goodness-of-fit

我的目标是使数据适合具有正支持的任何分布。 (威 bool (2p)、 Gamma (2p)、帕累托 (2p)、对数正态 (2p)、指数 (1P))。第一次尝试,我使用了 proc univariate。这是我的代码

proc univariate data=fit plot outtable=table;
   var week1;
   histogram / exp gamma lognormal weibull pareto;
   inset n mean(5.3) std='Standar Deviasi'(5.3) 
          / pos = ne  header = 'Summary Statistics';
   axis1 label=(a=90 r=0);
   run;

我注意到的第一件事是,没有显示 weibull 分布的 kolmogorov 统计数据。然后我改用 proc 严重性。

proc severity data=fit print=all plots(histogram kernel)=all;
loss week1; 
dist exp pareto gamma logn weibull;
run;

现在,我得到了威 bool 分布的 KS 统计量。 然后我比较了由 proc 严重性和 proc 单变量产生的 KS 统计数据。他们是不同的。为什么?我应该使用哪一个?

最佳答案

我无法访问 SAS/ETS,因此无法通过 proc severity 确认这一点,但我想您看到的差异归结为分布参数的拟合方式。

使用您的 proc univriate 代码,您不需要对几个参数进行估计(在某些情况下,有些参数默认设置为 1 或 0,请参阅用户中的 sigmatheta指导)。例如:

data have;
    do i = 1 to 1000;
        x = rand("weibull", 5, 5);
        output;
    end;
run;
ods graphics on;
proc univariate data = have;
    var x;
    /* Request maximum liklihood estimate of scale and threshold parameters */
    histogram / weibull(theta = EST sigma = EST);
    /* Request maximum liklihood estimate of scale parameter and 0 as threshold */
    histogram / weibull;
run;

您会注意到,当请求估计 theta 时,SAS 也会生成 KS 统计量,这是由于 SAS 估计拟合统计量需要知道分布参数的方式(完整解释 here)。

我的猜测是,您在两个程序之间看到不同的拟合统计数据,因为它们返回的拟合数据略有不同,或者它们使用不同的计算来估计拟合统计数据。如果您有兴趣,可以在用户指南(proc severityproc univariate)中研究他们如何执行参数估计。如果您想进一步调查,您可以强制分布参数在两个过程中匹配,然后比较拟合统计量以查看它们的差异程度。

我会建议,如果可能,您只使用其中一种程序,并选择最适合您的输出需求的程序。

关于sas - 用于拟合连续(正支持)分布的 Proc 单变量和 Proc 严重性之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28978654/

相关文章:

mysql - SAS/PROC-SQL 从具有唯一键的表转换为具有相同键的多行表

file - 导出行记录长度大于32767个字符的txt文件?

merge - 如果在多对多 SAS 合并中没有匹配项,如何将保留值设置为缺失值?

SAS宏: loop to create variables [macro/quoting problem]

r - 使用 fitdistrplus 拟合 Gumbel 分布

r - 在 r 中拟合模型时, "~."和 "~1"之间有什么区别?

r - 使用 ggplot2 和facet_wrap 绘制估计值,无需重新拟合模型

python - Python Kolmogorov-Smirnov 拟合优度检验中的 p 值非常低

r - R 中的卡方拟合优度检验

python - Python : way too low p-values, 中的卡方拟合优度检验但拟合函数正确