编程包括不等式(R)

Programming include inequality (R)

这就是我所做的,给定 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

希望大家能明白我想问的是什么.. 感谢您的帮助..=]]

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 值。