我正在尝试创建一个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分布拟合到我的数据中?如果有人能帮我指出为什么这不起作用,我将非常感激。
答案 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)