A explicação na página referenciada é
Sob a hipótese nula, a probabilidade é exatamente k / n sim quando são consideradas a aleatoriedade nos dados e a aleatoriedade na simulação.Pr(P≤k/nsim)k/nsim
Para entender isso, precisamos examinar o código, cujas linhas-chave (consideravelmente abreviadas) são
fred <- function(x) {ks.test(...)$statistic} # Apply a statistical test to an array
d.hat <- fred(x) # Apply the test to the data
d.star <- apply(matrix(rnorm(n*nsim), n, nsim),
2, fred) # Apply the test to nsim simulated datasets
pval <- (sum(d.star > d.hat) + 1) / (nsim + 1)# Estimate a simulation p-value
O principal problema é que o código não corresponde à cotação. Como podemos reconciliá-los? Uma tentativa começa com a última metade da cotação. Podemos interpretar o procedimento como compreendendo as seguintes etapas:
Recolha de dados distribuídos de forma independente e identicamente de acordo com uma lei de probabilidade L . Aplique um procedimento de teste t (implementado no código as ) para produzir o número T 0 = t ( X 1 , … , X n ) .X1, X2, … , XnGtfred
T0=t(X1,…,Xn)
Gerar via computador conjuntos de dados comparáveis, cada um de tamanho n , de acordo com uma hipótese nula com a lei probabilidade F . Aplicar t para cada tal conjunto de dados para produzir N números T 1 , T 2 , ... , T N .N=nsimnFtNT1,T2,…,TN
Calcular
P=(∑i=1NI(Ti>T0)+1)/(N+1).
Id.star > d.hat
T0Ti
F=Gα0<α<1N+11P≤αα(N+1)α−1TiT0T0(N+1)αN+1T0TiF⌊(N+1)α⌋
Pr(P≤α)=⌊(N+1)α⌋N+1≈α
(N+1)αkα=k/(N+1)
[0,1]N+1αk/(N+1)=k/(nsim+1)Pa caixa de diálogo que publiquei sobre o valor de p. )
nsim+1nsim