这是我所做的,给定h = 5并得到ARL = 2.5的值。
C=[1,5,8,9,7,8,1,2,5,5]
h=5
n=10
ooc=C>h
lenOOC = sum(ooc)
lenOOC
>4
p=lenOOC/n
p
>0.4
ARL=1/p
ARL
>2.5
但现在我需要给出ARL的值并计算h =的值? 例如,使用相同的C数据集。
ARL=1.428571
n=10
lenOOC=n/ARL
lenOOC
>7...
以及如何继续获取h的值?给定ooc=C>h
。
希望大家都明白我想问的是什么.. 谢谢你的帮助.. =]]
答案 0 :(得分:0)
lenOOC=n/ARL
你想要h lenOOC = sum(C>h)
。您希望找到一个数字h
,以便lenOOC
的数字严格大于h
。这与n - lenOOC
小于或等于h
相同,因此您需要n - lenOOC
最大数字。只需在C中对数字进行排序,然后选择n - lenOOC
最大数字。
C=c(1,5,8,9,7,8,1,2,5,5)
ARL=1.428571
n=10
lenOOC=n/ARL
sort(C)[n - round(lenOOC)]
[1] 2
所以h = 2。
但请注意,这不适用于ARL的所有值。如果我们尝试ARL = 10/9 = 1.1111111怎么办? 这会给出
ARL=1.111111
lenOOC=n/ARL
sort(C)[n - round(lenOOC)]
[1] 1
但是h = 1实际上会给出ARL = 1.25 没有数字会给出ARL = 1.111111。上述方法仅适用于ARL的可能值。