Fehlermeldung CFA

Varianzanalyse, Diskriminanzanalyse, Kontingenzanalyse, Faktorenanalyse, Clusteranalyse, MDS, ....

Moderator: EDi

Antworten
R-Studi
Beiträge: 4
Registriert: Di Apr 14, 2020 3:20 pm

Fehlermeldung CFA

Beitrag von R-Studi »

Hallo!

Ich bin ganz neu bei R und versuche, eine Cfa mit den Ergebnissen eines bereits etablierten Fragebogens zu erstellen.
Nachdem ich das Modell mit seinen sechs latenten Variablen bzw. der unterschiedlichen Anzahl von Indikatoren spezifiziert hatte, wollte ich es anpassen und erhielt die folgende Fehlerwarnung:
Da ich keine fehlenden Werte im Datensatz habe und die Indikatorennamen überprüft habe, bin ich ratlos, worauf sich das bezieht. Über Hinweise bin ich sehr dankbar!

Fehler in lav_data_full(data = data, group = group, cluster = cluster, :
lavaan ERROR: missing observed variables in dataset: HH_SIN01 HH_FAI01 HH_FAI02 HH_GRE02 HH_SIN03 HH_FAI04 HH_GRE04 HH_MOD03 HH_MOD04 E_ANX02 E_DEP02 E_SENT03 EX_SB01 EX_SSE02 EX_LIV02 EX_SSE03 A_GENT01 A_FLEX01 A_PAT01 A_FORG03 A_FLEX03 A_FORG04 A_FLEX04 A_PAT04 C_PERF01 C_PRU01 C_ORG02 C_DIL02 C_PRU02 C_PRU03 O_AES01 O_UNC01 O_INQ02 O_CREA03 O_UNC03
bigben
Beiträge: 2777
Registriert: Mi Okt 12, 2016 9:09 am

Re: Fehlermeldung CFA

Beitrag von bigben »

Hallo R-Studi,

jede Fehlermeldung ist das Produkt eines Funktionsaufrufs in Verbindung mit Daten. Ohne Daten und ohne Befehlsaufruf wird es schwer, den Fehler zu definieren. Bitte bastel ein reproduzierbares Minimalbeispiel und wenn Du dabei den Fehler nicht schon selbst findest, poste das hier.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
R-Studi
Beiträge: 4
Registriert: Di Apr 14, 2020 3:20 pm

Re: Fehlermeldung CFA

Beitrag von R-Studi »

Datenbeispiel.csv
(36.55 KiB) 65-mal heruntergeladen
Danke für den Hinweis - ich habe mich an einem Minimalbeispiel versucht und hoffe es passend gestaltet zu haben.
Leider hat sich das Problem dabei noch nicht gelöst...


Skript:


Daten <- read.csv2(Datenbeispiel.csv")

#Pakete neu laden
library("dplyr")
library("naniar")
library("psych")
library("ggformula")
library("ggplot2")
library("ggstance")
library("mosaic")
library("readxl")
library("pwr")
library("QuantPsyc")
library("tidyverse")
library("car")
library("lavaan")

#Variablen umpolen für SJTS

SJTS$SJ01_A1_03 <- 7 - SJTS$SJ01_A1_03r
SJTS$SJ01_A1_04 <- 7 - SJTS$SJ01_A1_04r
SJTS$SJ05_A2_03 <- 7 - SJTS$SJ05_A2_03r
SJTS$SJ05_A2_04 <- 7 - SJTS$SJ05_A2_04r
SJTS$SJ09_A3_03 <- 7 - SJTS$SJ09_A3_03r
SJTS$SJ09_A3_04 <- 7 - SJTS$SJ09_A3_04r
SJTS$SJ13_A4_03 <- 7 - SJTS$SJ13_A4_03r
SJTS$SJ13_A4_04 <- 7 - SJTS$SJ13_A4_04r
SJTS$SJ02_F1_03 <- 7 - SJTS$SJ02_F1_03r
SJTS$SJ02_F1_04 <- 7 - SJTS$SJ02_F1_04r
SJTS$SJ06_F2_03 <- 7 - SJTS$SJ06_F2_03r
SJTS$SJ06_F2_04 <- 7 - SJTS$SJ06_F2_04r
SJTS$SJ10_F3_03 <- 7 - SJTS$SJ10_F3_03r
SJTS$SJ10_F3_04 <- 7 - SJTS$SJ10_F3_04r
SJTS$SJ14_F4_03 <- 7 - SJTS$SJ14_F4_03r
SJTS$SJ14_F4_04 <- 7 - SJTS$SJ14_F4_04r
SJTS$SJ03_G1_03 <- 7 - SJTS$SJ03_G1_03r
SJTS$SJ03_G1_04 <- 7 - SJTS$SJ03_G1_04r
SJTS$SJ07_G2_03 <- 7 - SJTS$SJ07_G2_03r
SJTS$SJ07_G2_04 <- 7 - SJTS$SJ07_G2_04r
SJTS$SJ11_G3_03 <- 7 - SJTS$SJ11_G3_03r
SJTS$SJ11_G3_04 <- 7 - SJTS$SJ11_G3_04r
SJTS$SJ15_G4_03 <- 7 - SJTS$SJ15_G4_03r
SJTS$SJ15_G4_04 <- 7 - SJTS$SJ15_G4_04r
SJTS$SJ04_S1_03 <- 7 - SJTS$SJ04_S1_03r
SJTS$SJ04_S1_04 <- 7 - SJTS$SJ04_S1_04r
SJTS$SJ08_S2_03 <- 7 - SJTS$SJ08_S2_03r
SJTS$SJ08_S2_04 <- 7 - SJTS$SJ01_A1_03r
SJTS$SJ12_S3_03 <- 7 - SJTS$SJ12_S3_03r
SJTS$SJ12_S3_04 <- 7 - SJTS$SJ12_S3_04r
SJTS$SJ16_S4_03 <- 7 - SJTS$SJ16_S4_03r
SJTS$SJ16_S4_04 <- 7 - SJTS$SJ16_S4_04r


#Variablen umpolen für HEXACO und D
SJTS$O_AES01 <- 6 - SJTS$O_AES01r
SJTS$HH_SIN01 <- 6 - SJTS$HH_SIN01r
SJTS$A_GENT01 <- 6 - SJTS$A_GENT01r
SJTS$EX_SB01 <- 6 - SJTS$EX_SB01r
SJTS$HH_FAI01 <- 6 - SJTS$HH_FAI01r
SJTS$C_PERF01 <- 6 - SJTS$C_PERF01r
SJTS$A_FLEX01 <- 6 - SJTS$A_FLEX01r
SJTS$O_UNC01 <- 6 - SJTS$O_UNC01r
SJTS$C_PRU01 <- 6 - SJTS$C_PRU01r
SJTS$A_PAT01 <- 6 - SJTS$A_PAT01r
SJTS$C_ORG02 <- 6 - SJTS$C_ORG02r
SJTS$EX_SSE02 <- 6 - SJTS$EX_SSE02r
SJTS$O_INQ02 <- 6 - SJTS$O_INQ02r
SJTS$C_DIL02 <- 6 - SJTS$C_DIL02r
SJTS$E_ANX02 <- 6 - SJTS$E_ANX02r
SJTS$HH_FAI02 <- 6 - SJTS$HH_FAI02r
SJTS$HH_GRE02 <- 6 - SJTS$HH_GRE02r
SJTS$E_DEP02 <- 6 - SJTS$E_DEP02r
SJTS$HH_GRE03 <- 6 - SJTS$HH_GRE03r
SJTS$C_PRU02 <- 6 - SJTS$C_PRU02r
SJTS$EX_LIV02 <- 6 - SJTS$EX_LIV02r
SJTS$O_CREA03 <- 6 - SJTS$O_CREA03r
SJTS$A_FORG03 <- 6 - SJTS$A_FORG03r
SJTS$EX_SSE03 <- 6 - SJTS$EX_SSE03r
SJTS$HH_SIN03 <- 6 - SJTS$HH_SIN03r
SJTS$O_UNC03 <- 6 - SJTS$O_UNC03r
SJTS$C_PRU03 <- 6 - SJTS$C_PRU03r
SJTS$A_FLEX03 <- 6 - SJTS$A_FLEX03r
SJTS$E_SENT03 <- 6 - SJTS$E_SENT03r
SJTS$HH_FAI04 <- 6 - SJTS$HH_FAI04r
SJTS$HH_GRE04 <- 6 - SJTS$HH_GRE04r
SJTS$HH_MOD03 <- 6 - SJTS$HH_MOD03r
SJTS$HH_MOD04 <- 6 - SJTS$HH_MOD04r
SJTS$A_FORG04 <- 6 - SJTS$A_FORG04r
SJTS$A_FLEX04 <- 6 - SJTS$A_FLEX04r
SJTS$A_PAT04 <- 6 - SJTS$A_PAT04r
SJTS$D_CRUD01 <- 6 - SJTS$D_CRUD01r
SJTS$D_EGO03 <- 6 - SJTS$D_EGO03r
SJTS$D_SAD01 <- 6 - SJTS$D_SAD01r
SJTS$D_SAD02<- 6 - SJTS$D_SAD02r
SJTS$D_SCTR01 <- 6 - SJTS$D_SCTR01r
SJTS$D_MACH02 <- 6 - SJTS$D_MACH02r
SJTS$D_PATHY03 <- 6 - SJTS$D_PATHY03r
SJTS$D_SAD03 <- 6 - SJTS$D_SAD03r


head(Daten, 2)

Modell <- 'HH =~ HH_SIN01 + HH_FAI01 + HH_GRE01 + HH_MOD01
E =~ E_FEAR01 + E_ANX01 + E_DEP01 + E_FEAR02'
fit <- cfa(Modell, data=Datenbeispiel)

sessionInfo()

Fehlermeldung:

Fehler in lav_data_full(data = data, group = group, cluster = cluster, :
lavaan ERROR: missing observed variables in dataset: EX_SB01

Session Info:

R version 3.6.2 (2019-12-12)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18362)

Matrix products: default

locale:
[1] LC_COLLATE=German_Germany.1252 LC_CTYPE=German_Germany.1252 LC_MONETARY=German_Germany.1252
[4] LC_NUMERIC=C LC_TIME=German_Germany.1252

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] MVN_5.8 lavaan_0.6-5 car_3.0-7 carData_3.0-3 forcats_0.5.0 stringr_1.4.0
[7] purrr_0.3.3 readr_1.3.1 tidyr_1.0.2 tibble_3.0.0 tidyverse_1.3.0 QuantPsyc_1.5
[13] MASS_7.3-51.4 boot_1.3-23 pwr_1.3-0 readxl_1.3.1 mosaic_1.6.0 Matrix_1.2-18
[19] mosaicData_0.17.0 lattice_0.20-38 ggformula_0.9.4 ggstance_0.3.4 ggplot2_3.3.0 psych_1.9.12.31
[25] naniar_0.5.0 dplyr_0.8.5

loaded via a namespace (and not attached):
[1] backports_1.1.6 plyr_1.8.6 lazyeval_0.2.2 sp_1.4-1
[5] splines_3.6.2 crosstalk_1.1.0.1 leaflet_2.0.3 digest_0.6.25
[9] htmltools_0.4.0 fansi_0.4.1 magrittr_1.5 cluster_2.1.0
[13] mosaicCore_0.6.0 openxlsx_4.1.4 modelr_0.1.6 colorspace_1.4-1
[17] rvest_0.3.5 rrcov_1.5-2 ggrepel_0.8.2 haven_2.2.0
[21] xfun_0.12 crayon_1.3.4 jsonlite_1.6.1 survival_3.1-8
[25] zoo_1.8-7 glue_1.4.0 kableExtra_1.1.0 polyclip_1.10-0
[29] gtable_0.3.0 webshot_0.5.2 kernlab_0.9-29 prabclus_2.3-2
[33] DEoptimR_1.0-8 abind_1.4-5 VIM_5.1.1 scales_1.1.0
[37] sgeostat_1.0-27 mvtnorm_1.1-0 DBI_1.1.0 GGally_1.5.0
[41] sROC_0.1-2 Rcpp_1.0.4.6 viridisLite_0.3.0 laeken_0.5.1
[45] foreign_0.8-72 mclust_5.4.6 stats4_3.6.2 truncnorm_1.0-8
[49] vcd_1.4-7 htmlwidgets_1.5.1 httr_1.4.1 RColorBrewer_1.1-2
[53] fpc_2.2-5 modeltools_0.2-23 ellipsis_0.3.0 NADA_1.6-1.1
[57] pkgconfig_2.0.3 reshape_0.8.8 flexmix_2.3-15 farver_2.0.3
[61] nnet_7.3-12 dbplyr_1.4.2 tidyselect_1.0.0 rlang_0.4.5
[65] munsell_0.5.0 cellranger_1.1.0 tools_3.6.2 cli_2.0.2
[69] generics_0.0.2 moments_0.14 ranger_0.12.1 pls_2.7-2
[73] broom_0.5.5 evaluate_0.14 cvTools_0.3.2 ggdendro_0.1-20
[77] knitr_1.28 fs_1.4.1 zip_2.0.4 robustbase_0.93-6
[81] visdat_0.5.3 nlme_3.1-142 xml2_1.3.1 compiler_3.6.2
[85] rstudioapi_0.11 curl_4.3 e1071_1.7-3 zCompositions_1.3.4
[89] reprex_0.3.0 tweenr_1.0.1 robCompositions_2.2.1 pbivnorm_0.6.0
[93] pcaPP_1.9-73 stringi_1.4.6 vctrs_0.2.4 pillar_1.4.3
[97] lifecycle_0.2.0 lmtest_0.9-37 data.table_1.12.8 R6_2.4.1
[101] gridExtra_2.3 rio_0.5.16 energy_1.7-7 assertthat_0.2.1
[105] nortest_1.0-4 withr_2.1.2 mnormt_1.5-6 diptest_0.75-7
[109] parallel_3.6.2 hms_0.5.3 grid_3.6.2 class_7.3-15
[113] rmarkdown_2.1 mvoutlier_2.0.9 ggforce_0.3.1 lubridate_1.7.8
Zuletzt geändert von R-Studi am Di Apr 14, 2020 8:50 pm, insgesamt 1-mal geändert.
ruppy
Beiträge: 41
Registriert: Mo Nov 04, 2019 10:05 pm

Re: Fehlermeldung CFA

Beitrag von ruppy »

Das wird dir jetzt nicht hilfreich erscheinen, aber trotzdem...

Zunächst du lädst dplyr, ggplot2 und tidyverse. Das ist redundant.
Google doch mal welche Pakete alle geladen werden, wenn man

Code: Alles auswählen

library(tidyverse)
eingibt.

Aber viel bedeutender:

Deine Umcodierungen sind maximal fehleranfällig, da alles Copy&Paste ist.

Bei der ersten Hälfte rechnest du Variable = 6 - Variable und bei der 2. Hälfte Variable = 7 - Variable.
Das ist mir jetzt zu viel Gehuddel, aber da wird ja wohl ein Muster zugrunde liegen bspw. alle Variablen, die auf XYZ enden, werden "so" umcodiert und die übrigen "so". Schau z.B. mal nach

Code: Alles auswählen

mutate_if
um kompakteren Code zu schreiben.

Dein Modell lautet so:

Code: Alles auswählen

'HH =~ HH_SIN01 + HH_FAI01 + HH_GRE01 + HH_MOD01E =~ E_FEAR01 + E_ANX01 + E_DEP01 + E_FEAR02'
Nehme an, das kann nicht passen.

Eher in der Art:
1. Modell

Code: Alles auswählen

'HH ~ HH_SIN01 + HH_FAI01 + HH_GRE01 + HH_MOD01
2. Modell (?)

Code: Alles auswählen

E ~ E_FEAR01 + E_ANX01 + E_DEP01 + E_FEAR02'
Daneben weist die Fehlermeldung wohl auf ein Problem mit NAs hin in der Variable EX_SB01

Nur ein paar meiner unqualifizierten Gedanken.

BG ruppy
bigben
Beiträge: 2777
Registriert: Mi Okt 12, 2016 9:09 am

Re: Fehlermeldung CFA

Beitrag von bigben »

Hi!
R-Studi hat geschrieben: Di Apr 14, 2020 5:06 pm

Code: Alles auswählen

Daten <- read.csv2(Datenbeispiel.csv")
Da fehlt mindestens ein Anführungszeichen, was ein ziemlich starker Hinweis darauf ist, dass Du diesen Code nicht einmal bei Dir hast laufen lassen, bevor wir ihn bei uns laufen lassen sollen. Inhaltlich ist es wohl egal, oder wird irgendwo weiter Unten auf Daten nochmal zugegriffen?

Code: Alles auswählen

library("dplyr")
library("naniar")
library("psych")
library("ggformula")
library("ggplot2")
library("ggstance")
library("mosaic")
library("readxl")
library("pwr")
library("QuantPsyc")
library("tidyverse")
library("car")
library("lavaan")
Mag sein, dass es tatsächlich Analysen gibt, bei denen man soviele Packages braucht -- zumeist wird das viel zuviel sein und dann verliert man den Überblick. Auf einige Probleme hat ruppy ja schon hingewiesen. Mein Problem ist, dass Du eben kein Minimalbeispiel gemacht hast, sondern einfach alles dringelassen hast. Meine Hoffnung, dass Du das Problem selbst löst, wenn Du ein Minimalbeispiel baust, beruht darauf, dass man auch für sich selbst das Problem deutlich einkreist, wenn man solchen Überbau weglässt.

Code: Alles auswählen

SJTS$SJ01_A1_03 <- 7 - SJTS$SJ01_A1_03r
SJTS$SJ01_A1_04 <- 7 - SJTS$SJ01_A1_04r
SJTS$SJ05_A2_03 <- 7 - SJTS$SJ05_A2_03r
SJTS$SJ05_A2_04 <- 7 - SJTS$SJ05_A2_04r 
SJTS$SJ09_A3_03 <- 7 - SJTS$SJ09_A3_03r 
SJTS$SJ09_A3_04 <- 7 - SJTS$SJ09_A3_04r
SJTS$SJ13_A4_03 <- 7 - SJTS$SJ13_A4_03r 
SJTS$SJ13_A4_04 <- 7 - SJTS$SJ13_A4_04r
SJTS$SJ02_F1_03 <- 7 - SJTS$SJ02_F1_03r
SJTS$SJ02_F1_04 <- 7 - SJTS$SJ02_F1_04r
SJTS$SJ06_F2_03 <- 7 - SJTS$SJ06_F2_03r
SJTS$SJ06_F2_04 <- 7 - SJTS$SJ06_F2_04r
SJTS$SJ10_F3_03 <- 7 - SJTS$SJ10_F3_03r
SJTS$SJ10_F3_04 <- 7 - SJTS$SJ10_F3_04r
SJTS$SJ14_F4_03 <- 7 - SJTS$SJ14_F4_03r
SJTS$SJ14_F4_04 <- 7 - SJTS$SJ14_F4_04r
SJTS$SJ03_G1_03 <- 7 - SJTS$SJ03_G1_03r
SJTS$SJ03_G1_04 <- 7 - SJTS$SJ03_G1_04r
SJTS$SJ07_G2_03 <- 7 - SJTS$SJ07_G2_03r
SJTS$SJ07_G2_04 <- 7 - SJTS$SJ07_G2_04r
SJTS$SJ11_G3_03 <- 7 - SJTS$SJ11_G3_03r
SJTS$SJ11_G3_04 <- 7 - SJTS$SJ11_G3_04r
SJTS$SJ15_G4_03 <- 7 - SJTS$SJ15_G4_03r
SJTS$SJ15_G4_04 <- 7 - SJTS$SJ15_G4_04r
SJTS$SJ04_S1_03 <- 7 - SJTS$SJ04_S1_03r
SJTS$SJ04_S1_04 <- 7 - SJTS$SJ04_S1_04r
SJTS$SJ08_S2_03 <- 7 - SJTS$SJ08_S2_03r
SJTS$SJ08_S2_04 <- 7 - SJTS$SJ01_A1_03r
SJTS$SJ12_S3_03 <- 7 - SJTS$SJ12_S3_03r
SJTS$SJ12_S3_04 <- 7 - SJTS$SJ12_S3_04r
SJTS$SJ16_S4_03 <- 7 - SJTS$SJ16_S4_03r
SJTS$SJ16_S4_04 <- 7 - SJTS$SJ16_S4_04r
Kommt irgendeine dieser SJTS$SJ... Variablen in dem Modell unten vor? Und woher kommt jetzt ein Dataframe SJTS?

Ansonsten hat ruppy natürlich Recht, dass man das bestimmt übersichtlicher machen kann.

Code: Alles auswählen

bsp <- data.frame(a=1:10, b=1:10, c=1:10, d=1:10, e=1:10)
head(bsp)

# Umkodieren der Spalten 3 bis 5:

bsp[,3:5] <- 11 - bsp[,3:5]
head(bsp)

Code: Alles auswählen

Modell <- 'HH =~ HH_SIN01 + HH_FAI01 + HH_GRE01 + HH_MOD01
                  E =~ E_FEAR01 + E_ANX01 + E_DEP01 + E_FEAR02' 
fit <- cfa(Modell, data=Datenbeispiel)
Da steht data=Datenbeispiel aber ich kann nicht sehen, dass Datenbeispiel irgendwo etwas zugewiesen worden wäre. Wir können also mutmaßen, dass Die Fehlermeldung vielleicht mit dem hier angehängten Datensatz auftritt, sie könnte aber auch mit einem anderen Datensatz, den Du früher mal als Datenbeispiel eingelesen hast, auftreten.


Jede Fehlermeldung ist das Produkt eines Funktionsaufrufs in Verbindung mit Daten. Ohne Daten und ohne Befehlsaufruf wird es schwer, den Fehler zu definieren. Bitte bastel ein reproduzierbares Minimalbeispiel und wenn Du dabei den Fehler nicht schon selbst findest, poste das hier.
https://stackoverflow.com/help/minimal- ... le-example

Gruß,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
R-Studi
Beiträge: 4
Registriert: Di Apr 14, 2020 3:20 pm

Re: Fehlermeldung CFA

Beitrag von R-Studi »

Hallo ruppy,

da gibt´s echt noch einiges, was ich lernen kann:-).
Danke für die Hinweise, jetzt klappt´s!

LG R-Studi
R-Studi
Beiträge: 4
Registriert: Di Apr 14, 2020 3:20 pm

Re: Fehlermeldung CFA

Beitrag von R-Studi »

Hallo bigben,

danke auch dir für die Hilfe mit dem Variablen-Umkodieren.

Die Anführungszeichen hatte ich vergessen, da ich die Benennung hier nochmal geändert hatte, nachdem ich das Beispiel bei mir hab laufen lassen. Da hab ich dann die Verwirrung mit Daten und Datenbeispiel reingebracht...

Vielen Dank!
Antworten