1 votos

¿dhsic.test devuelve diferentes valores p?

Estoy usando dhsic.test en R, y tengo esta duda:

Para este ejemplo de datos claramente no correlacionados obtengo diferentes valores de p:

ug=matrix(nrow=N,c(0.5,0,0,0.5))
r=mvrnorm(n=500,rep(0,N),ug)
dhsic.test(split(r,col(r)))$p.value

Si vuelvo a correr solo la última línea (solo la prueba) obtengo valores diferentes como .44, .37 ,.36

¿No debería obtener siempre el mismo valor de p?

2voto

Alan Puntos 7273

Su código no se ejecuta: faltan los paquetes y el valor de N; sin embargo, la razón subyacente es que la prueba (al menos usando los métodos permutación o bootstrap, posiblemente eigenvalue, donde permutación es el predeterminado) toma un enfoque de Monte Carlo. Por lo tanto, si desea resultados idénticos de pruebas repetidas de los mismos datos utilizando el mismo método, entonces necesita usar una semilla explícita cada vez.

Aquí hay algo de código R para ilustrar su punto y el mío. La semilla arbitraria de 2020 debería hacer que su máquina produzca los mismos números que la mía, mientras que las semillas arbitrarias pero repetidas de 1 producen las mismas respuestas para el uso repetido del mismo método:

set.seed(2020)
library(dHSIC)
library(MASS)
N = 2
ug = matrix(nrow=N, c(0.5,0,0,0.5))
r = mvrnorm(n=500, rep(0,N), ug)
dhsic.test(split(r,col(r)))$p.value
# 0.1208791
dhsic.test(split(r,col(r)))$p.value
# 0.1348651
dhsic.test(split(r,col(r)), method="gamma")$p.value
# 0.1352237
dhsic.test(split(r,col(r)), method="gamma")$p.value
# 0.1352237
dhsic.test(split(r,col(r)), method="permutation")$p.value
# 0.1348651
dhsic.test(split(r,col(r)), method="permutation")$p.value
# 0.1298701
dhsic.test(split(r,col(r)), method="bootstrap")$p.value
# 0.1128871
dhsic.test(split(r,col(r)), method="bootstrap")$p.value
# 0.1398601
dhsic.test(split(r,col(r)), method="eigenvalue")$p.value
# 0.1214
dhsic.test(split(r,col(r)), method="eigenvalue")$p.value
# 0.1244
set.seed(1)
dhsic.test(split(r,col(r)))$p.value
# 0.1258741
set.seed(1)
dhsic.test(split(r,col(r)))$p.value
# 0.1258741
set.seed(1)
dhsic.test(split(r,col(r)), method="gamma")$p.value
# 0.1352237
set.seed(1)
dhsic.test(split(r,col(r)), method="gamma")$p.value
# 0.1352237
set.seed(1)
dhsic.test(split(r,col(r)), method="permutation")$p.value
# 0.1258741
set.seed(1)
dhsic.test(split(r,col(r)), method="permutation")$p.value
# 0.1258741
set.seed(1)
dhsic.test(split(r,col(r)), method="bootstrap")$p.value
# 0.1178821
set.seed(1)
dhsic.test(split(r,col(r)), method="bootstrap")$p.value
# 0.1178821
set.seed(1)
dhsic.test(split(r,col(r)), method="eigenvalue")$p.value
# 0.1268
set.seed(1)
dhsic.test(split(r,col(r)), method="eigenvalue")$p.value
# 0.1268

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X