R:尝试为Weibull分布创建一个Q-Q图,得到错误"由Coersion"引入的NAs;

时间:2015-12-08 22:09:38

标签: r weibull

我正在尝试创建一个Q-Q图来测试我的数据是否可以通过Weibull分布使用命令建模

select      RRTGotAlert         = case RRTGotAlert when 0 then 'N' when 1 then 'Y' end
            ,TZ_OnPilotUnit_N   = sum(TZ_OnPilotUnit_N)
            ,TZ_OnPilotUnit_Y   = sum(TZ_OnPilotUnit_Y)
from        (select     RRTGotAlert
                        ,TZ_OnPilotUnit_N = [0]
                        ,TZ_OnPilotUnit_Y = [1]
            from        #analysis
            pivot       (count(Encounter) for TZ_OnPilotUnit in ([0],[1])) pvt) got_alert
group by    case RRTGotAlert when 0 then 'N' when 1 then 'Y' end
order by    case RRTGotAlert when 0 then 'N' when 1 then 'Y' end

使用

中的数据
qqplot(x,'weibull')   

我不断收到错误

x =c(3.367, 0.769,0.8,1,1.2)

并无法弄清楚原因。这是否意味着我不能将Weibull分布拟合到我的数据中?如果有人能帮我指出为什么这不起作用,我将非常感激。

2 个答案:

答案 0 :(得分:1)

制作qqplot需要一些分发来比较您的数据。您需要首先建立一些Weibull分布,然后创建绘图。例如:

x =sort(c(3.367, 0.769,0.8,1,1.2))
dist = rweibull(5, 2, 1)
qqplot(dist, x)

您是否考虑过威布尔分布的参数?有关详细信息,请参阅?rweibull,但它似乎需要n,形状参数和比例参数。

答案 1 :(得分:0)

您可以使用qualityTools包和qqPlot()功能。 如果您需要估算参数,可以使用fitdistrplus包。

   fit.weibull <- fitdist(x, "weibull")
   qqplot(qweibull(ppoints(length(x), shape = fit.weibull$estimate[1], 
           scale = fit.weibull$estimate[2]), x)