Ошибка в собственном значении (S, симметричное = TRUE): бесконечные или отсутствующие значения в ‘x’

#r #r-lavaan

#r #r-lavaan

Вопрос:

Я пытаюсь выполнить подтверждающий факторный анализ в R, используя lavaan, но я продолжаю получать эту ошибку: Error in eigen(S, symmetric = TRUE) : infinite or missing values in 'x' Я проверил данные на наличие пустых переменных или переменных без изменчивости, и ни то, ни другое не относится к этому набору данных. Все двенадцать переменных в модели имеют сотни уникальных точек данных. Кроме того, CFA были успешно проведены на этой модели с другими наборами данных. Вот код, который я использую, который выдает ошибку:

 > Combined.model <- 'Re =~ re1   re2
  Pu =~ pu1   pu2
  Rea =~ rea1   rea2
  Res =~ res1   res2
  St =~ st1   st2
  In_Contam =~ in1   in2'
> fit <- cfa(Combined.model, data = Master_file, std.lv = TRUE, missing = "fiml")
Error in eigen(S, symmetric = TRUE) : infinite or missing values in 'x'
In addition: Warning message:
In lav_data_full(data = data, group = group, cluster = cluster,  :
  lavaan WARNING: some cases are empty and will be ignored:
  2397 2398 2401 2402 2403 2404 2405 2406 2410 2416 2420 2421 2422 2423 2424 2425 2426 2432 2435 2440 2441 2443 2450 2453 2454 2458 2459 2465 2467 2469 2473 2475 2477 2478 2485 2487 2488 2489 2491 2494 2496 2498 2502 2506 2509 2510 2512 2513 2515 2516 2518 2519 2523 2526 2528 2529 2532 2534 2538 2539 2541 2543 2548 2550 2558 2559 2561 2564 2566 2569 2570 2571 2572 2575 2576 2578 2579 2580 2586 2587 2588 2592 2593 2595 2596 2599 2600 2602 2603 2605 2606 2607 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148  [... truncated]
> options(knitr.kable.NA = '')
> summary(fit, fit.measures=TRUE, standardized=TRUE)
  

Заранее благодарю за помощь!

Комментарии:

1. Не могли бы вы протестировать any(is.inf(Master_file))) и any(is.na(Master_file)) , просто чтобы убедиться? Кроме того, что такое class(Master_file) ?

2. Я получаю «TRUE» для обоих.infinite и is.na (последнее из которых я ожидал, но у меня создалось впечатление, что FIML имеет дело со значениями NA (эти значения не были проблемой для меня в прошлом). Для класса я получаю ` [1] «tbl_df» «tbl» «data.frame» `

3. Итак, класс должен быть в порядке, но вам нужно разобраться с Inf s и NA s перед установкой вашей модели… вы можете удалить наблюдения или приписать их

4. Спасибо! Есть ли способ легко искать и заменять Inf и NAS?

5. Да, is.na найдет индексы, где наблюдения равны NA, и is.infinite найдет наблюдения, где они бесконечны … затем просто используйте индексы для подмножества матрицы и замените на то, что вы хотите (медианное вменение или knn или что-то еще)