es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error en svyttest.default(y ~ x, survey_obj): el grupo debe ser binario -> ¿cómo puedo solucionar este problema?

Tengo algunos problemas con la función svytest del paquete survey. Mi objetivo es realizar una prueba de t de hipótesis simple: Las personas con menor nivel educativo tienen mayores preocupaciones sobre la inmigración de inmigrantes. La variable dependiente está codificada como una variable binaria (0|1), y la independiente como un valor numérico (1 = nivel educativo más bajo, 4 = nivel educativo más alto).


Columnas: 8
$ ID <dbl> 57385, 157633, 169289, 172583, ~
$ weights <dbl> 0.274958, 0.110605, 0.090035, 0~
$ state <chr> "Bayern", "Bayern", "Rheinland-~
$ region <fct> West, West, West, West, East, W~
$ education <dbl> 3, 4, 4, 3, 4, 3, 4, 4, 2, 1, 3~
$ opinion_refugee <dbl> 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0~
$ number_clusters <dbl> 16, 16, 16, 16, 16, 16, 16, 16,~
$ total_resp_state <int> 192, 192, 45, 29, 36, 189, 45, ~

He creado un objeto de svydesign como de costumbre y he ejecutado el siguiente código:


test <- svyttest(opinion_refugee ~ education, refugee_data_obj)
print('Estimación')
test$estimate
print('Intervalo de confianza')
test$conf.int
print('Valor P')
test$p.value

Pero recibo el siguiente error:

Error in svyttest.default(opinion_refugee ~ education, refugee_data_obj) : el grupo debe ser binario

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que la función svyttest requiere una variable de agrupamiento binaria. En este caso, la variable de agrupamiento es el nivel de educación, que es numérica. Para realizar una prueba t con la variable de educación, necesitamos crear grupos binarios basados en el nivel de educación. Una forma de hacer esto sería recodificar la variable de educación para que 1 y 2 representen una educación baja y 3 y 4 representen una educación alta. Podemos hacer esto con el siguiente código:

    refugee_data_obj$edu_group <- ifelse(refugee_data_obj$education <= 2, 0, 1)
    

    Este código crea una nueva variable llamada edu_group que es igual a 0 si el nivel de educación es 1 o 2, y 1 si el nivel de educación es 3 o 4.

    Luego, podemos ejecutar la prueba t utilizando la función svyttest con la variable edu_group como la variable de agrupamiento:

    test <- svyttest(opinion_refugee ~ edu_group, refugee_data_obj)
    print('Estimación')
    test$estimate
    print('Intervalo de Confianza')
    test$conf.int
    print('Valor de P')
    test$p.value
    

    Esto debería proporcionarnos los resultados de la prueba t que necesitamos para la hipótesis.

Comments are closed.