Seite 1 von 1

Fehlermeldung "Indices in Blocks outside..." PLSPM

Verfasst: Sa Jan 11, 2020 11:09 pm
von alicag
Hallo zusammen,

ich verzweifle leider seit mehreren Stunden an einer Fehlermeldung im PLSPM-Modul. Ich habe eine Untersuchung zur Untersuchung der Auswirkungen des Führungsverhaltens auf die Arbeitszufriedenheit durchgeführt und seitens meines Professors besteht die Vorgabe, die Analyse der Wirkungen mit PLSPM vorzunehmen.

Ich habe folgenden Code benutzt:

Code: Alles auswählen

library(plspm)
 
# Teilmenge bilden
# Hier wird auf die für die Modellierung relevanten Variablen eingeschränkt.
# Zuerst kommen die Kontrollvariablen, dann die unabhängigen Variablen,
# dann den Mediator, und zum Schluss die Zielgröße. Bitte auf die Reihenfolge achten!
pls <- Daten[,c("DD02" , "DD04", "DD06", "DE01", "DE02_01",  #  Kontrollvariablen: Berufstätigkeit
                "EF02_01", "EF02_02", "EF02_03", "EF02_04","EF02_05", # unabhängige Variable: EF
                "EF02_06","EF02_07","EF02_08","EF02_09","EF02_10",
                "V001_01", "V001_02", "V001_03", "V001_04", # Mediator
                "AZ02_01" , "AZ02_02" , "AZ02_03" , "AZ02_04", "AZ02_05")] # Zielgröße: Arbeitszufriedenheit)] # Zielgröße: normatives Commitment                )]
dim(pls)
 
#################################################################
# Definition des inneren Strukturmodells
#################################################################
# Zeilen der Matrix
# Kontrollvariablen
Berufstätigkeit = c(0,0,0,0,0,0,0,1) # DD02 Kontrollvariablen: Berufstätigkeit, ...
Führung = c(0,0,0,0,0,0,0,1) # DD04 Führungsverantwortung
Geschlecht_FK = c(0,0,0,0,0,0,0,1) # "DD06" Geschlecht der Führungskraft
Geschlecht = c(0,0,0,0,0,0,0,1) # "DE01" Geschlecht
Alter = c(0,0,0,0,0,0,0,1) # "DE02_01" Alter
 
# Unabhängige Variable
EthischeFuehrung = c(0,0,0,0,0,0,1,1) # EF02_01-EF02_10
 
# Mediator
Vertrauen = c(0,0,0,0,0,0,0,1) # V001_01-V001_04
 
# Zielgröße
Arbeitszufriedenheit = c(0,0,0,0,0,0,0,0,0,0,0,0) # AZ02_02-AZ02_05
 
# Gesamtmodell
pfad <- cbind(Berufstätigkeit, Führung, Geschlecht_FK, Geschlecht, Alter,
              EthischeFuehrung,Vertrauen,Arbeitszufriedenheit)
innerplot(pfad, box.size = 0.12)
 
 
#############################################################################
# Definition des äußeren Modells (Messmodell)
#############################################################################
# Zuordnung der Indikatoren zu den latenten Konstrukten (äußeres Modell)
colnames(pls)
pfad_blocks = list(3, 5, 7, 48, 49, # Kontrollvariablen: Berufstätigkeit, Führung, Geschlecht FK, Geschlecht, Alter
                   9:18, # unabhängige Variable: ethische Führung
                   19:22, # Mediator: Vertrauen
                   33:37) # Zielgröße: Arbeitszufriedenheit
 
pfad_blocks
 
#############################################################################
# Reflexives oder formatives Messmodell.
# Für jede Variable im inneren Strukturmodell ist anzugeben, ob sie reflexiv oder
# formativ gemessen wird. Dabei werden Variablen, die mit einem Indikator gemessen
# werden, als formativ angegeben.
# (A - reflexiv, B - formativ)
pfad_modes = c("B","B","B","B","B","A","A","A")
pfad_modes
 
#############################################################################
# Skalenniveau
# Für jede Variable im äußeren Messmodell ist das Skalenniveau (num - nummerisch oder
# nom - nominal) anzugeben.
str(pls) # hilft bei der Festlegung der Skalenniveaus
pfad_scaling = list("num",
                    "num",
                    "num",
                    "num",
                    "num",
                    c("num", "num", "num","num","num","num",
                      "num","num","num","num"), # 1 unabh. Variable, 10 Indikatoren
                    c("num","num","num","num"), # 1 Mediator, 4 Indikatoren
                    c("num","num","num","num","num")) # Zielgröße Arbeitszufriedenheit, 5 Indikatoren
pfad_scaling
 
#############################################################################
# Pfadanalyse durchführen
pfad_pls = plspm(na.omit(pls), path=pfad, blocks=pfad_blocks, scaling=pfad_scaling, modes = pfad_modes)
summary(pfad_pls) 
Wenn ich den Code ausführe erhalte ich folgende Fehlermeldung:

Fehler in check_blocks(blocks, Data): Indices in "blocks" outside the number of columns in "Data"

Ich habe alles mehrfach geprüft, aber sehe scheinbar den Wald vor lauter Bäumen nicht..

Danke im Voraus für die Antworten!

Viele Grüße
Alica

Re: Fehlermeldung "Indices in Blocks outside..." PLSPM

Verfasst: So Jan 12, 2020 11:00 am
von jogo
Hallo Alica,

willkommen im Forum!
Wie wäre es mit:

Code: Alles auswählen

pfad_scaling = list("num",
                    "num",
                    "num",
                    "num",
                    "num",
                    "num", "num", "num","num","num","num",
                      "num","num","num","num", # 1 unabh. Variable, 10 Indikatoren
                    "num","num","num","num", # 1 Mediator, 4 Indikatoren
                    "num","num","num","num","num") # Zielgröße Arbeitszufriedenheit, 5 Indikatoren
oder

Code: Alles auswählen

pfad_scaling = c("num",
                    "num",
                    "num",
                    "num",
                    "num",
                    "num", "num", "num","num","num","num",
                      "num","num","num","num", # 1 unabh. Variable, 10 Indikatoren
                    "num","num","num","num", # 1 Mediator, 4 Indikatoren
                    "num","num","num","num","num") # Zielgröße Arbeitszufriedenheit, 5 Indikatoren
:?:

Gruß, Jörg

Re: Fehlermeldung "Indices in Blocks outside..." PLSPM

Verfasst: So Jan 12, 2020 6:28 pm
von alicag
Hallo Jörg,

vielen Dank für deine schnelle Antwort. Der erste Code funktioniert bei mir leider nicht, weil R die Daten im Befehl pfad_scaling als Liste formatiert haben möchte. Ich habe festgestellt, dass die ursprüngliche Fehlermeldung entsteht, wenn in dem pfad_blocks Befehl die Spalten nicht durchgängig nummeriert sind, also wie in meinem Beispiel hier:

19:22, # Mediator: Vertrauen
33:37 # Zielgröße: Arbeitszufriedenheit


Ich habe nun separate Excel-Dateien erstellt, um das Problem zu umgehen und weil ich keinen Nerv mehr hatte..

Viele Grüße
Alica

Re: Fehlermeldung "Indices in Blocks outside..." PLSPM

Verfasst: Mo Jan 13, 2020 8:40 am
von jogo
Hallo Alica,

das Zusammenstellen der Spalten hätte man auch elegant in R bewerkstelligen können, z.B.

Code: Alles auswählen

Daten_neu <- Daten[c(3, 5, 7, 48, 49, # Kontrollvariablen: Berufstätigkeit, Führung, Geschlecht FK, Geschlecht, Alter
                   9:18, # unabhängige Variable: ethische Führung
                   19:22, # Mediator: Vertrauen
                   33:37) # Zielgröße: Arbeitszufriedenheit
]
Aber wenn Deine Lösung jetzt funktioniert, ist das prima.

Gruß, Jörg