Co właściwie budujemy: skalę, test czy indeks?
W psychometrii obserwujemy odpowiedzi na pozycje, lecz zwykle chcemy wnioskować o cesze, której nie da się zmierzyć bezpośrednio: samoregulacji, lęku, satysfakcji, postawie albo jakości życia. Tę nieobserwowalną właściwość nazywa się zmienną latentną. Wynik skali jest estymatą pozycji osoby na tym konstrukcie, a nie samym konstruktem i nie jego bezbłędnym odczytem.
Przed napisaniem pierwszej pozycji trzeba ustalić model pomiaru. W skali refleksyjnej konstrukt ma wyjaśniać współzmienność pozycji: osoba wytrwała częściej zgadza się z kilkoma różnymi stwierdzeniami będącymi przejawami wytrwałości. W indeksie formatywnym składniki tworzą wynik: liczba chorób, dochód i warunki mieszkaniowe mogą wspólnie definiować indeks obciążenia, chociaż nie muszą być do siebie podobne. Wysoka spójność wewnętrzna jest oczekiwana w jednowymiarowej skali refleksyjnej, ale nie jest obowiązkiem indeksu. Szersze wyjaśnienie zawiera poradnik model refleksyjny czy formatywny.
Minimalna specyfikacja nowego pomiaru powinna zawierać cztery elementy: konstrukt, populację, kontekst i zamierzone użycie wyniku. Skala wypalenia używana do opisu grupy studentów nie jest automatycznie narzędziem diagnostycznym dla pojedynczego lekarza. Trafność dotyczy interpretacji i zastosowania wyniku, dlatego dowody trzeba odnosić do konkretnego celu.
Etap 1: zdefiniuj konstrukt i jego granice
Definicja konstruktu powinna mówić, czym zjawisko jest, jakie ma składniki, czego nie obejmuje i dlaczego różni się od najbliższych pojęć. Dla „samoregulacji uczenia się” nie wystarczy zdanie „zdolność do samoregulacji”. Trzeba określić, czy chodzi o planowanie, monitorowanie postępu i zmianę strategii podczas nauki, czy również o motywację, wytrwałość i zarządzanie emocjami. Każde rozszerzenie zmienia dziedzinę treści, spodziewaną strukturę i interpretację wyniku.
Praktycznym narzędziem jest mapa konstruktu. W wierszach umieść wymiary i ich definicje, w kolumnach sytuacje, poziomy nasilenia i typy zachowania. Przy każdej planowanej pozycji zaznacz, którą komórkę reprezentuje. Taka macierz ujawnia dwie wady niewidoczne w alfie: niedoreprezentowanie dziedziny oraz nadmiar niemal identycznych pozycji z jednego obszaru.
| Wymiar | Definicja operacyjna | Przejaw niskiego poziomu | Przejaw wysokiego poziomu | Pojęcie sąsiednie |
|---|---|---|---|---|
| Planowanie | Ustalanie celu i sekwencji działań przed rozpoczęciem nauki. | Rozpoczynanie bez celu i kolejności. | Dobór etapów do terminu i trudności. | Sumienność. |
| Monitorowanie | Śledzenie zrozumienia i postępu w trakcie zadania. | Brak kontroli, czy materiał został zrozumiany. | Regularne sprawdzanie luk. | Metapoznanie. |
| Adaptacja strategii | Zmiana sposobu działania po wykryciu nieskuteczności. | Powtarzanie tej samej nieskutecznej metody. | Dobór nowej strategii do przyczyny problemu. | Elastyczność poznawcza. |
Już tutaj zapisz hipotezy trafności teoretycznej: samoregulacja powinna dodatnio wiązać się z wytrwałością i wynikiem nauki, ujemnie z prokrastynacją, umiarkowanie z motywacją, a słabiej z niepowiązaną potrzebą aprobaty. Hipotezy dotyczą nie tylko kierunku, lecz także względnej siły związków. Dzięki temu późniejsza analiza nie polega na wybieraniu dowolnych korelacji, które okazały się istotne.
Etap 2: sprawdź istniejące narzędzia i zbuduj szeroką pulę pozycji
Nowa skala wymaga uzasadnienia. Jeżeli istnieje dobrze przebadane narzędzie zgodne z definicją, populacją, językiem i celem, adaptacja może być lepsza niż tworzenie kolejnego krótkiego kwestionariusza. Adaptacja nie oznacza jednak samego tłumaczenia: trzeba ponownie zbadać rozumienie pozycji, strukturę, rzetelność, trafność i porównywalność wersji.
Pulę pozycji warto tworzyć jednocześnie dedukcyjnie i indukcyjnie. Ścieżka dedukcyjna korzysta z teorii, badań i istniejących miar. Ścieżka indukcyjna czerpie z wywiadów, grup fokusowych, obserwacji i języka grupy docelowej. Boateng i współautorzy (2018) oraz Artino i współautorzy (2014) wskazują, że połączenie obu źródeł ogranicza ryzyko, iż skala będzie elegancka statystycznie, ale ominie doświadczenia ważne dla badanych.
Jak pisać pozycje?
- Jedna pozycja powinna pytać o jedną treść. „Planuję naukę i zawsze dotrzymuję planu” łączy planowanie z realizacją.
- Używaj słów rozumianych w populacji docelowej. Termin poprawny naukowo może być złym sformułowaniem dla respondenta.
- Określ ramę czasu, jeżeli konstrukt jest stanem lub zachowaniem: „w ciągu ostatnich dwóch tygodni” daje inną informację niż „zwykle”.
- Unikaj absolutów („zawsze”, „nigdy”), jeżeli nie są częścią definicji, oraz zdań wymagających kilku negacji.
- Nie twórz sztucznej równowagi przez mechaniczne odwracanie połowy pozycji. Pozycje odwrócone mogą tworzyć czynnik metody i zwiększać liczbę pomyłek.
- Zaprojektuj opcje odpowiedzi pod pytanie. Częstotliwość, stopień zgody i intensywność nie są zamienne.
- Nie skracaj puli za wcześnie. Początkowa nadreprezentacja treści daje przestrzeń do usuwania słabych pozycji bez utraty całego wymiaru.
Etap 3: trafność treściowa — eksperci i osoby z grupy docelowej
Ocena treści powinna objąć trafność każdej pozycji dla konstruktu, kompletność całego zestawu oraz zrozumiałość instrukcji, pozycji i odpowiedzi. Ekspert teoretyczny może ocenić pokrycie dziedziny, ale tylko osoba z populacji docelowej pokaże, czy pytanie jest rozumiane zgodnie z intencją. COSMIN traktuje te trzy właściwości jako rdzeń trafności treściowej.
Jedną z ilościowych pomocy jest indeks trafności treściowej pozycji:
Ai oznacza liczbę ekspertów oceniających pozycję i jako trafną, a Ne — liczbę wszystkich ekspertów. Jeżeli sześć osób ocenia trafność na skali 1–4, a cztery wybierają 3 lub 4, I-CVI wynosi 4/6 = .67. W przykładowej ocenie pozycja powinna wrócić do dyskusji: trzeba przeczytać uzasadnienia, ustalić, czy problem dotyczy niedopasowania do definicji, niejasnego słowa czy brakującego kontekstu, a dopiero potem poprawić lub usunąć pozycję. Próg nie podejmuje decyzji za zespół.
Średnia z I-CVI daje S-CVI/Ave dla całej puli, ale wysoka średnia może ukryć jedną bardzo słabą pozycję lub pominięty wymiar. Dlatego raport powinien podawać skład panelu, kryteria doboru, instrukcję oceny, rozkład ocen, komentarze i zmiany dokonane po rundzie. Yusoff (2019) opisuje obliczenie CVI, natomiast Terwee i współautorzy (2018) podkreślają, że ilościowy indeks nie zastępuje jakościowego dowodu kompletności i zrozumiałości.
Etap 4: wywiady poznawcze i pilotaż
Respondent może zaznaczyć odpowiedź bez zawahania, a mimo to odpowiadać na inne pytanie niż zamierzał autor. Wywiad poznawczy bada proces odpowiedzi: jak osoba rozumie treść, przywołuje informacje, formułuje ocenę i dopasowuje ją do kategorii odpowiedzi. Stosuje się głośne myślenie oraz pytania sondujące, np. „Co dla Ciebie znaczy strategia nauki?”, „O jakim okresie pomyślałeś?” albo „Dlaczego wybrałeś raczej tak niż zdecydowanie tak?”.
Boness i Sher (2020) pokazują, że wywiad poznawczy może ujawnić źródła błędu, których nie widać w korelacjach pozycji. Badanie prowadzi się iteracyjnie: niewielka, zróżnicowana grupa odpowiada na wersję pierwszą, zespół poprawia pozycje, a kolejna grupa sprawdza wersję zmienioną. Liczy się nasycenie problemów i pokrycie ważnych podgrup, nie magiczna liczba wywiadów.
W pilotażu sprawdź braki odpowiedzi, czas wypełniania, użycie wszystkich kategorii, rozkłady, efekty podłogi i sufitu, działanie filtrów oraz komentarze uczestników. Nie usuwaj pozycji wyłącznie dlatego, że ma skośny rozkład: dla rzadkiego, ale ważnego objawu taki rozkład może być oczekiwany. Problemem jest niedopasowanie pozycji do celu, nie sama nie-normalność.
Etap 5: EFA i redukcja pozycji
Eksploracyjna analiza czynnikowa (EFA) pomaga ustalić, ile wspólnych wymiarów potrzeba do opisania zależności między pozycjami i które pozycje są ich wskaźnikami. Nie należy mylić EFA z PCA: analiza głównych składowych redukuje obserwowane zmienne, a model czynnikowy próbuje oddzielić wariancję wspólną od swoistej i błędu.
Dla odpowiedzi porządkowych z kilkoma kategoriami rozważ korelacje polichoryczne. Liczbę czynników oceniaj łącznie na podstawie teorii, analizy równoległej, wykresu osypiska, stabilności i interpretowalności. Rotacja ukośna jest zwykle rozsądna, gdy konstrukty psychologiczne mogą się korelować. Podział pozycji według najwyższego ładunku nie wystarczy: trzeba przejrzeć ładunki krzyżowe, wspólności, reszty, treść i pokrycie mapy konstruktu.
Jeżeli EFA i CFA wykonuje się na tej samej próbie po wielu modyfikacjach, CFA nie jest niezależnym potwierdzeniem. Użyj oddzielnych prób albo losowego podziału dostatecznie dużego zbioru, a następnie zaplanuj późniejszą replikację. Reguły „10 osób na pozycję” nie uwzględniają liczby czynników, wielkości ładunków, liczby kategorii, braków ani złożoności modelu. Liczebność planuj pod kątem precyzji i mocy dla konkretnego modelu, najlepiej za pomocą symulacji.
Etap 6: CFA — test modelu pomiarowego
W konfirmacyjnej analizie czynnikowej (CFA) badacz przed estymacją wskazuje, które pozycje mierzą które czynniki. Dla pozycji porządkowych często stosuje się estymator WLSMV i progi odpowiedzi; traktowanie kategorii 1–5 jak dokładnie równych odległości wymaga uzasadnienia. Przy zmiennych ciągłych i odchyleniach od normalności można rozważyć odporną estymację ML.
CFA trzeba czytać na kilku poziomach:
- dopasowanie globalne (np. χ², CFI, TLI, RMSEA z przedziałem ufności, SRMR) mówi, jak model jako całość odtwarza zależności;
- ładunki i progi pokazują, jak pozycje wiążą się z czynnikiem i jak działają kategorie odpowiedzi;
- reszty i lokalne niedopasowanie ujawniają pary pozycji, których zależności model nie wyjaśnia;
- korelacje czynników pozwalają ocenić, czy zaplanowane wymiary są empirycznie rozróżnialne;
- modele alternatywne sprawdzają, czy model jednoczynnikowy, skorelowane czynniki, bifaktor lub czynnik drugiego rzędu lepiej odpowiadają teorii.
Indeksy modyfikacji są wskazówką diagnostyczną, nie automatem do dopisywania korelacji reszt. Wspólna reszta może wynikać z niemal identycznego brzmienia, wspólnego bodźca albo odwróconego kodowania. Modyfikację należy zinterpretować treściowo i sprawdzić w nowej próbie. Dobre CFI i RMSEA nie dowodzą, że skala mierzy deklarowany konstrukt; model może dobrze odtwarzać dane i nadal być treściowo błędny.
Spójność wewnętrzna i rzetelność wyniku
Spójność wewnętrzna opisuje, w jakim stopniu odpowiedzi na pozycje zachowują się jak wskaźniki tego samego wyniku. Jej interpretacja ma sens dopiero po wykazaniu wystarczającej jednowymiarowości danej podskali. Nie wolno liczyć jednej alfy dla kilku odrębnych czynników tylko dlatego, że wszystkie pozycje są w jednym kwestionariuszu.
Alfa Cronbacha może być zapisana jako:
k to liczba pozycji, σ²i — wariancja i-tej pozycji, a σ²X — wariancja sumy. Alfa rośnie wraz z liczbą i podobieństwem pozycji. Nie jest dowodem jednowymiarowości, nie mówi o trafności i opiera interpretację rzetelności na założeniach, które często nie są spełnione przy nierównych ładunkach. Trizano-Hermosilla i Alvarado (2016) pokazują, że przy pomiarze kongenerycznym i asymetrii odpowiedzi alternatywy oparte na modelu, takie jak omega, mogą działać lepiej.
Dla jednoczynnikowego rozwiązania ze standaryzowanymi pozycjami modelową rzetelność kompozytową można przedstawić jako:
λi oznacza standaryzowany ładunek, a θi wariancję błędu pozycji. Współczynnik zależy od poprawności modelu; nie „naprawia” złej CFA. Dla danych porządkowych trzeba podać, czy wynik obliczono na podstawie korelacji polichorycznych i modelu progowego. Warto raportować oszacowanie z przedziałem ufności, a nie samą etykietę „akceptowalne”.
Rzetelność jest szersza niż spójność wewnętrzna. Jeżeli wynik ma być stabilną cechą, potrzebny może być test–retest. Jeżeli oceniają go sędziowie — zgodność między oceniającymi. W badaniu zmian ważny jest błąd pomiaru i czułość na zmianę. Wysoka omega w jednym pomiarze nie odpowiada na te pytania.
Trafność teoretyczna: jeden argument, wiele rodzajów dowodu
Trafność nie jest trwałą pieczęcią nadaną skali. Jest stopniem uzasadnienia interpretacji wyników w określonym zastosowaniu. Określenie trafność teoretyczna lub trafność konstruktu obejmuje cały argument łączący wynik z teorią. Treść, proces odpowiedzi, struktura wewnętrzna i relacje z innymi zmiennymi powinny tworzyć spójny obraz. Flake i Fried (2020) zwracają uwagę, że użycie popularnej miary bez definicji konstruktu i uzasadnienia modyfikacji jest problemem pomiarowym, nawet gdy późniejsza analiza wygląda poprawnie.
| Dowód | Pytanie | Przykład dla samoregulacji |
|---|---|---|
| Treść | Czy pozycje są trafne, kompletne i zrozumiałe? | Mapa obejmuje planowanie, monitorowanie i adaptację, a studenci rozumieją terminy zgodnie z definicją. |
| Proces odpowiedzi | Czy ludzie wykonują zadanie poznawcze, które zakłada autor? | Przy odpowiedzi odnoszą się do własnego uczenia, a nie do narzuconego planu zajęć. |
| Struktura wewnętrzna | Czy zależności pozycji są zgodne z modelem? | Trzy podskale są odrębne, lecz powiązane, a ładunki są stabilne w nowej próbie. |
| Relacje z innymi zmiennymi | Czy wynik zachowuje się zgodnie z wcześniejszymi hipotezami? | Dodatni związek z wytrwałością, ujemny z prokrastynacją i słabszy z aprobatą społeczną. |
| Konsekwencje użycia | Co wynika z zastosowania wyniku i czy nie powstaje systematyczna szkoda? | Próg kierujący studentów do wsparcia nie pomija jednej grupy z powodu odmiennego działania pozycji. |
Trafność zbieżna
Trafność zbieżna jest wspierana, gdy wynik wiąże się zgodnie z teorią z innymi miarami tego samego lub bardzo podobnego zjawiska. W CFA pomocniczo używa się średniej wyjaśnionej wariancji:
AVE odpowiada na pytanie o udział wariancji standaryzowanych wskaźników przypisany czynnikowi w danym modelu. Nie zastępuje związku z niezależną metodą ani kryterium. Wysokie AVE może powstać z kilku prawie identycznych pozycji, co zwiększa jednorodność, lecz zawęża treść.
Trafność różnicowa
Trafność różnicowa dotyczy pytania, czy wynik można odróżnić od wyników mierzących pojęcia sąsiednie. Dla samoregulacji właściwym wyzwaniem jest odróżnienie jej od motywacji, sumienności i metapoznania, a nie wykazanie niskiej korelacji z losowym, odległym konstruktem.
W modelu latentnym analizuj korelacje czynników wraz z niepewnością, modele łączące dwa czynniki, ładunki krzyżowe i uzasadnione miary pomocnicze, np. HTMT. Wartość HTMT poniżej popularnego progu nie dowodzi odrębności definicji, a wartość wysoka nie wskazuje automatycznie, którą skalę usunąć. Najpierw wróć do treści: być może konstrukty faktycznie nakładają się, pozycje używają tych samych zachowań albo jeden czynnik jest węższym przypadkiem drugiego.
Trafność kryterialna, przyrostowa i nomologiczna
Jeżeli istnieje sensowne kryterium, można ocenić relację równoczesną lub predykcyjną. „Złoty standard” jest w psychologii rzadki; korelacja z innym samoopisem współdzieli błąd metody i nie jest niezależnym potwierdzeniem. Trafność przyrostowa pyta, czy nowa skala wnosi informację ponad krótsze, tańsze lub dobrze ugruntowane miary. Trafność nomologiczna sprawdza cały układ przewidywanych relacji w modelu równań strukturalnych, lecz dobrze dopasowany SEM nie zastępuje dowodów treściowych.
Czy skala mierzy to samo w grupach i w czasie?
Porównanie średnich kobiet i mężczyzn, wersji językowych albo fal badania zakłada, że jednostka pomiaru i punkt odniesienia są porównywalne. Analiza niezmienniczości rozpoczyna się zwykle od tego samego układu czynników (niezmienniczość konfiguralna), następnie ogranicza ładunki (metryczna), progi lub wyrazy wolne (skalarna), a w uzasadnionych sytuacjach reszty. Putnick i Bornstein (2016) pokazują, że poziom wymaganej niezmienniczości zależy od planowanego porównania.
Brak pełnej niezmienniczości nie oznacza automatycznie zakazu wszelkich analiz. Można badać niezmienniczość częściową, przybliżoną lub różnicowe funkcjonowanie pozycji, ale trzeba ujawnić, które parametry się różnią i jak wpływa to na wniosek. Mechaniczne porównanie surowych sum bez takiej kontroli może pomylić różnicę konstruktu z różnicą sposobu rozumienia pozycji.
Zmienne latentne wyższego rzędu i CFA
Jeżeli skala ma kilka dobrze zdefiniowanych wymiarów, teoria może przewidywać bardziej ogólny czynnik. Przykładowo planowanie, monitorowanie i adaptacja mogą być przejawami samoregulacji wyższego rzędu. W CFA czynnik drugiego rzędu wyjaśnia wtedy korelacje czynników pierwszego rzędu. To dodatkowa hipoteza, a nie wygodny sposób uzyskania jednej sumy.
Najpierw trzeba obronić pomiar każdego wymiaru, jego trafność treściową i odrębność. Dopiero potem porównuje się model skorelowanych czynników, model drugiego rzędu i — jeśli teoria to uzasadnia — bifaktor. Wynik ogólny może ukrywać odmienne relacje podskal z kryterium. Czynnik wyższego rzędu nie naprawia słabych pozycji ani wysokich ładunków krzyżowych. Szczegółowe zasady zawiera poradnik modelowanie konstruktów wyższego rzędu.
Przykład pełnego procesu: skala samoregulacji uczenia się
Załóżmy, że zespół definiuje samoregulację jako zdolność planowania, monitorowania i korygowania własnego uczenia się. Po przeglądzie literatury oraz wywiadach ze studentami powstaje 30 pozycji. Panel psychometrysty, badacza edukacji i nauczycieli ocenia zgodność z mapą konstruktu, a studenci — zrozumiałość. Dwie rundy wywiadów poznawczych ujawniają, że „kontroluję swój postęp” część osób rozumie jako ocenę wystawianą przez prowadzącego, więc pozycja zostaje doprecyzowana.
W pierwszej próbie EFA oparta na korelacjach polichorycznych i analizie równoległej wskazuje trzy czynniki. Pozycje z dużymi ładunkami krzyżowymi są analizowane treściowo; zespół pozostawia jedną pozycję o umiarkowanym ładunku, ponieważ jako jedyna reprezentuje zmianę strategii po niepowodzeniu. W niezależnej próbie CFA porównuje model trzech skorelowanych czynników z modelem jednoczynnikowym. Dopiero po potwierdzeniu struktury obliczane są wyniki podskal i oceniana rzetelność.
Do testu hipotez teoretycznych zespół zbiera miary motywacji, wytrwałości, prokrastynacji i obiektywny wynik zaliczenia. Oczekuje silniejszego związku samoregulacji z wytrwałością niż z ogólną aprobatą społeczną, ujemnego związku z prokrastynacją i dodatniego, ale nie doskonałego związku z wynikiem. W kolejnej próbie sprawdza niezmienniczość między kierunkami studiów i stabilność w odstępie sześciu tygodni. Wniosek dotyczy zatem dokładnie badanego zastosowania, a nie „trafności skali w ogóle”.
Przetestowany przykład liczbowy
Do kodu utworzono 800 syntetycznych obserwacji i 14 porządkowych pozycji mierzących samoregulację, motywację i przeciążenie. Dane podzielono losowo na dwie równe części. W pierwszej analizie równoległej i EFA uzyskano trzy zaplanowane czynniki; główne ładunki wynosiły od .62 do .85. W drugiej części oszacowano CFA metodą WLSMV.
Przykład całościowej interpretacji w standardzie APA 7
Konfirmacyjny model trzech skorelowanych czynników oszacowano metodą WLSMV na niezależnej części syntetycznej próby (N = 400), traktując odpowiedzi 1–5 jako uporządkowane kategorie. Dopasowanie modelu było zgodne z zaplanowaną strukturą, χ²(74) = 91.54, p = .082, CFI = .995, TLI = .994, RMSEA = .024, 90% CI [.000, .039], SRMR = .036. Standaryzowane ładunki wynosiły od .65 do .84. Rzetelność kompozytowa wyniosła .87 dla samoregulacji, .83 dla motywacji i .88 dla przeciążenia, a AVE odpowiednio .53, .55 i .65. Największa wartość HTMT wyniosła .36, co w tych danych było zgodne z rozróżnialnością trzech czynników. Zgodnie z hipotezami latentna samoregulacja dodatnio przewidywała wytrwałość, β = .59, 95% CI dla współczynnika niestandaryzowanego [0.47, 0.66], p < .001, oraz ujemnie przewidywała prokrastynację, β = −.57, 95% CI [−0.63, −0.44], p < .001. Wyniki pokazują spójność struktury i zaplanowanych relacji w danych wygenerowanych zgodnie z tym modelem; nie stanowią walidacji rzeczywistego narzędzia ani dowodu trafności treściowej.
Ostatnie zdanie jest niezbędne: dane zostały wygenerowane tak, aby zawierały określoną strukturę. Przykład uczy raportowania, ale nie może służyć jako empiryczny argument na rzecz nowej skali.
Kod w R, Pythonie i IBM SPSS Statistics
Skrypt R generuje dane, dzieli próbę, wykonuje EFA z korelacjami polichorycznymi, CFA WLSMV, oblicza ρC, AVE i HTMT oraz testuje hipotezy trafności teoretycznej. Skrypt Python odtwarza model w semopy i liczy CVI. Ponieważ semopy traktuje tu kategorie 1–5 numerycznie, służy jako kontrola kierunku wyników, a nie równoważny zamiennik modelu progowego WLSMV. Podstawowy SPSS wykonuje audyt pozycji, EFA i korelacje; do CFA potrzebny jest moduł lub osobne oprogramowanie SEM.
R: EFA, CFA, rzetelność i trafność teoretyczna
R — kompletny, przetestowany przykład
library(MASS)
library(psych)
library(lavaan)
library(semTools)
set.seed(20260907)
N <- 800
# Trzy powiązane, ale rozróżnialne konstrukty.
sigma_latent <- matrix(
c(1.00, 0.45, -0.35,
0.45, 1.00, -0.20,
-0.35, -0.20, 1.00),
nrow = 3,
byrow = TRUE
)
eta <- MASS::mvrnorm(N, mu = c(0, 0, 0), Sigma = sigma_latent)
colnames(eta) <- c("samoregulacja", "motywacja", "przeciazenie")
utworz_pozycje <- function(cecha, prefiks, ladunki) {
wynik <- sapply(seq_along(ladunki), function(i) {
lambda <- ladunki[i]
ciagla <- lambda * cecha + sqrt(1 - lambda^2) * rnorm(N)
as.integer(cut(
ciagla,
breaks = c(-Inf, -1.05, -0.35, 0.35, 1.10, Inf),
labels = FALSE
))
})
colnames(wynik) <- paste0(prefiks, seq_along(ladunki))
wynik
}
dane <- data.frame(
utworz_pozycje(eta[, "samoregulacja"], "s", c(.82, .78, .76, .74, .72, .70)),
utworz_pozycje(eta[, "motywacja"], "m", c(.80, .77, .74, .71)),
utworz_pozycje(eta[, "przeciazenie"], "p", c(.81, .78, .75, .72))
)
# Zmienne zewnętrzne do sprawdzenia hipotez trafności teoretycznej.
dane$wytrwalosc <- 0.60 * eta[, "samoregulacja"] +
0.15 * eta[, "motywacja"] + rnorm(N, sd = 0.72)
dane$prokrastynacja <- -0.55 * eta[, "samoregulacja"] +
0.10 * eta[, "przeciazenie"] + rnorm(N, sd = 0.75)
dane$wynik_nauki <- 0.32 * eta[, "samoregulacja"] +
0.22 * eta[, "motywacja"] + rnorm(N, sd = 0.88)
pozycje <- c(paste0("s", 1:6), paste0("m", 1:4), paste0("p", 1:4))
indeks_efa <- sample(seq_len(N), N / 2)
dane_efa <- dane[indeks_efa, ]
dane_cfa <- dane[-indeks_efa, ]
# EFA na pierwszej połowie próby. Liczby czynników nie wybieramy
# na podstawie samego kryterium wartości własnej > 1.
rho_efa <- psych::polychoric(dane_efa[pozycje])$rho
rownolegla <- psych::fa.parallel(
rho_efa,
n.obs = nrow(dane_efa),
fa = "fa",
fm = "minres",
n.iter = 100,
plot = FALSE
)
print(rownolegla$nfact)
efa <- psych::fa(
r = rho_efa,
nfactors = 3,
n.obs = nrow(dane_efa),
fm = "minres",
rotate = "oblimin"
)
print(efa$loadings, cutoff = .30, sort = TRUE)
# CFA na niezależnej połowie próby.
model_pomiarowy <- '
samoregulacja =~ s1 + s2 + s3 + s4 + s5 + s6
motywacja =~ m1 + m2 + m3 + m4
przeciazenie =~ p1 + p2 + p3 + p4
'
fit_cfa <- cfa(
model_pomiarowy,
data = dane_cfa,
ordered = pozycje,
estimator = "WLSMV",
std.lv = TRUE
)
stopifnot(lavInspect(fit_cfa, "converged"))
print(round(fitMeasures(
fit_cfa,
c(
"chisq.scaled", "df.scaled", "pvalue.scaled",
"cfi.scaled", "tli.scaled", "rmsea.scaled",
"rmsea.ci.lower.scaled", "rmsea.ci.upper.scaled", "srmr"
)
), 3))
print(subset(
standardizedSolution(fit_cfa),
op == "=~",
select = c(lhs, rhs, est.std, se, pvalue)
))
# Rzetelność kompozytowa rho_C i AVE wyprowadzone z całkowicie
# standaryzowanego rozwiązania. Jawny zapis ułatwia sprawdzenie,
# z jakich ładunków i wariancji błędu powstały wyniki.
metryki_pomiaru <- function(fit) {
ladunki <- subset(
standardizedSolution(fit),
op == "=~",
select = c(lhs, rhs, est.std)
)
wynik <- lapply(split(ladunki, ladunki$lhs), function(blok) {
lambda <- blok$est.std
theta <- 1 - lambda^2
data.frame(
rho_C = sum(lambda)^2 / (sum(lambda)^2 + sum(theta)),
AVE = sum(lambda^2) / (sum(lambda^2) + sum(theta))
)
})
round(do.call(rbind, wynik), 3)
}
print(metryki_pomiaru(fit_cfa))
# HTMT dotyczy rozróżnialności par konstruktów. Żadna z tych
# liczb nie zastępuje dowodów treściowych ani relacji z kryteriami.
print(semTools::htmt(
model_pomiarowy,
data = dane_cfa,
ordered = pozycje,
htmt2 = TRUE
))
# Trafność teoretyczna: wcześniej zapisane hipotezy o relacjach
# konstruktu z wytrwałością, prokrastynacją i wynikiem nauki.
model_trafnosci <- paste0(
model_pomiarowy,
'\nwytrwalosc ~ samoregulacja + motywacja',
'\nprokrastynacja ~ samoregulacja + przeciazenie',
'\nwynik_nauki ~ samoregulacja + motywacja'
)
fit_trafnosci <- sem(
model_trafnosci,
data = dane_cfa,
ordered = pozycje,
estimator = "WLSMV",
std.lv = TRUE
)
print(subset(
parameterEstimates(fit_trafnosci, standardized = TRUE, ci = TRUE),
op == "~",
select = c(lhs, rhs, est, se, pvalue, ci.lower, ci.upper, std.all)
))
write.csv(dane, "dane_walidacja_skali.csv", row.names = FALSE)
sessionInfo()
Python: odtworzenie modelu i I-CVI
Python — semopy i pandas
import pandas as pd
from semopy import Model, calc_stats
dane = pd.read_csv("dane_walidacja_skali.csv")
model_opis = """
samoregulacja =~ s1 + s2 + s3 + s4 + s5 + s6
motywacja =~ m1 + m2 + m3 + m4
przeciazenie =~ p1 + p2 + p3 + p4
wytrwalosc ~ samoregulacja + motywacja
prokrastynacja ~ samoregulacja + przeciazenie
wynik_nauki ~ samoregulacja + motywacja
"""
# semopy traktuje tu kategorie 1-5 numerycznie. To kontrola
# odtwarzalności, a nie odpowiednik progowego WLSMV z lavaan.
model = Model(model_opis)
rezultat = model.fit(dane)
if not rezultat.success:
raise RuntimeError(rezultat.message)
parametry = model.inspect(std_est=True)
print(
parametry.loc[
parametry["op"].isin(["~", "=~"]),
["lval", "op", "rval", "Estimate", "Est. Std", "Std. Err", "p-value"],
]
)
print(calc_stats(model)[["chi2", "DoF", "CFI", "TLI", "RMSEA"]])
# Prosty I-CVI: odsetek ekspertów uznających pozycję za trafną.
# Oceny 3 i 4 na skali 1-4 liczymy jako zgodę.
oceny_ekspertow = pd.DataFrame(
{
"s1": [4, 4, 3, 4, 3, 4],
"s2": [4, 3, 3, 4, 4, 4],
"s3": [2, 3, 3, 4, 2, 4],
}
)
i_cvi = oceny_ekspertow.ge(3).mean(axis=0)
s_cvi_ave = i_cvi.mean()
print("I-CVI:\n", i_cvi)
print("S-CVI/Ave:", s_cvi_ave)
IBM SPSS Statistics: audyt pozycji i EFA
SPSS Syntax — zakres dostępny bez AMOS
* Audyt pozycji i eksploracja struktury w podstawowym SPSS.
* Zakładane zmienne: s1-s6, m1-m4, p1-p4.
FREQUENCIES VARIABLES=s1 TO s6 m1 TO m4 p1 TO p4
/STATISTICS=MEAN STDDEV MINIMUM MAXIMUM
/MISSING=INCLUDE.
* EFA: principal axis factoring i rotacja ukośna.
* Liczbę trzech czynników trzeba uzasadnić teorią i analizą równoległą;
* samo kryterium wartości własnej > 1 nie wystarcza.
FACTOR
/VARIABLES=s1 TO s6 m1 TO m4 p1 TO p4
/MISSING=LISTWISE
/ANALYSIS=s1 TO s6 m1 TO m4 p1 TO p4
/PRINT=INITIAL EXTRACTION ROTATION KMO
/FORMAT=SORT BLANK(.30)
/CRITERIA=FACTORS(3) ITERATE(50)
/EXTRACTION=PAF
/ROTATION=OBLIMIN.
* Spójność każdej zaplanowanej podskali, a nie wszystkich pozycji łącznie.
RELIABILITY VARIABLES=s1 TO s6
/SCALE('Samoregulacja') ALL
/MODEL=ALPHA
/STATISTICS=DESCRIPTIVE SCALE CORR.
RELIABILITY VARIABLES=m1 TO m4
/SCALE('Motywacja') ALL
/MODEL=ALPHA
/STATISTICS=DESCRIPTIVE SCALE CORR.
RELIABILITY VARIABLES=p1 TO p4
/SCALE('Przeciazenie') ALL
/MODEL=ALPHA
/STATISTICS=DESCRIPTIVE SCALE CORR.
* Wyniki skal są pomocnicze. CFA należy wykonać w AMOS, lavaan,
* Mplus, semopy albo innym programie obsługującym model latentny.
COMPUTE samoregulacja=MEAN.4(s1 TO s6).
COMPUTE motywacja=MEAN.3(m1 TO m4).
COMPUTE przeciazenie=MEAN.3(p1 TO p4).
EXECUTE.
CORRELATIONS VARIABLES=samoregulacja motywacja przeciazenie
wytrwalosc prokrastynacja wynik_nauki
/PRINT=TWOTAIL SIG
/MISSING=PAIRWISE.
Najczęstsze błędy w budowie i walidacji skal
- Rozpoczęcie od pozycji zamiast od konstruktu. Bez granic pojęcia nie wiadomo, czy dobra korelacja oznacza pomiar właściwej treści.
- Tworzenie nowej skali bez sprawdzenia istniejących. Nowość nie jest zaletą, jeśli narzędzie nie wnosi lepszej treści, trafności lub użyteczności.
- Wyłącznie ekspercka ocena treści. Eksperci znają teorię, ale mogą nie przewidzieć, jak pozycję rozumie użytkownik.
- Jedna próba do EFA, CFA i wszystkich poprawek. Model zostaje dopasowany do przypadkowych właściwości zbioru, a nie niezależnie sprawdzony.
- PCA nazwana analizą czynnikową. Komponent i wspólny czynnik mają inne cele oraz inną interpretację.
- Usuwanie pozycji do momentu maksymalnej alfy. Wynik może stać się jednorodny, lecz treściowo ubogi i pełen parafraz.
- Próg .70 jako certyfikat. Znaczenie rzetelności zależy od zastosowania, modelu, liczby pozycji, niepewności i konsekwencji błędu.
- AVE i HTMT jako kompletna trafność. Są to pomocnicze podsumowania modelu; nie obejmują treści, procesu odpowiedzi ani kryteriów zewnętrznych.
- Korelowanie wszystkiego ze wszystkim po analizie. Trafność teoretyczna wymaga wcześniejszych hipotez, także dotyczących relacji słabych i różnic między korelacjami.
- Uznanie dobrego CFA za koniec pracy. Potrzebne są replikacje, niezmienniczość, stabilność i kontrola działania narzędzia w praktyce.
- Budowa wyniku ogólnego z wielowymiarowej skali bez modelu. Suma może mieszać odmienne wymiary i ukrywać ich przeciwstawne relacje.
Lista kontrolna przed użyciem nowej skali
- Konstrukt, jego granice, populacja i zastosowanie wyniku są zapisane przed analizą.
- Sprawdzono istniejące narzędzia i uzasadniono budowę nowego albo adaptację.
- Pula pozycji łączy teorię z językiem oraz doświadczeniami grupy docelowej.
- Mapa treści pokazuje pokrycie każdego wymiaru i poziomu nasilenia.
- Eksperci ocenili trafność, a użytkownicy — kompletność i zrozumiałość.
- Przeprowadzono co najmniej jedną iterację wywiadów poznawczych.
- Decyzje o usuwaniu pozycji oparto na treści, modelu i wynikach, a nie jednej statystyce.
- EFA i CFA wykonano na niezależnych danych lub zaplanowano replikację.
- Estymator i macierz korelacji odpowiadają skali pomiaru pozycji.
- Rzetelność oceniono dla każdego jednowymiarowego wyniku i właściwego źródła błędu.
- Dowody trafności obejmują bliskie konstrukty, kryteria i przewidziane relacje nomologiczne.
- Przed porównaniem grup lub czasu zbadano niezmienniczość pomiaru.
- Raport ujawnia wszystkie modyfikacje, wersje oprogramowania i ograniczenia.
- Instrukcja punktowania, obsługa braków oraz interpretacja wyniku są odtwarzalne.
Budowa skali jest szczególnym przypadkiem szerszego problemu: przejścia od abstrakcyjnego konstruktu do procedury i danych. Różnicę między konceptualizacją, operacjonalizacją i pomiarem omawia poradnik co to jest operacjonalizacja.
Pojęcia i poradniki powiązane
Budowa skali łączy teorię pomiaru, analizę czynnikową i ocenę relacji z kryteriami. Poniższe materiały rozwijają poszczególne etapy.
Poradnik opracowano na podstawie przekazanych publikacji naukowych. Dane i wszystkie wyniki w przykładzie są syntetyczne. Kod uruchomiono od czystej sesji w R 4.5.3 (lavaan 0.7-2, psych 2.6.5, semTools 0.5-8) oraz Pythonie 3 z semopy 2.3.11, pandas 3.0.5 i NumPy 2.5.2.
Budujesz lub walidujesz narzędzie psychometryczne?
Możemy pomóc zaplanować mapę konstruktu, badanie pilotażowe, EFA i CFA, ocenę rzetelności, trafności oraz niezmienniczości, a następnie przygotować odtwarzalny raport i kod analizy.
Analizy dla badaczyOmów badanieBibliografia i dalsza literatura naukowa (APA 7)
- Artino, A. R., Jr., La Rochelle, J. S., Dezee, K. J., & Gehlbach, H. (2014). Developing questionnaires for educational research: AMEE Guide No. 87. Medical Teacher, 36(6), 463–474. https://doi.org/10.3109/0142159X.2014.889814
- Boateng, G. O., Neilands, T. B., Frongillo, E. A., Melgar-Quiñonez, H. R., & Young, S. L. (2018). Best practices for developing and validating scales for health, social, and behavioral research: A primer. Frontiers in Public Health, 6, 149. https://doi.org/10.3389/fpubh.2018.00149
- Boness, C. L., & Sher, K. J. (2020). The case for cognitive interviewing in survey item validation: A useful approach for improving the measurement and assessment of substance use disorders. Journal of Studies on Alcohol and Drugs, 81(4), 401–404. https://doi.org/10.15288/jsad.2020.81.401
- Clark, L. A., & Watson, D. (2019). Constructing validity: New developments in creating objective measuring instruments. Psychological Assessment, 31(12), 1412–1427. https://doi.org/10.1037/pas0000626
- Flake, J. K., & Fried, E. I. (2020). Measurement schmeasurement: Questionable measurement practices and how to avoid them. Advances in Methods and Practices in Psychological Science, 3(4), 456–465. https://doi.org/10.1177/2515245920952393
- Jebb, A. T., Ng, V., & Tay, L. (2021). A review of key Likert scale development advances: 1995–2019. Frontiers in Psychology, 12, 637547. https://doi.org/10.3389/fpsyg.2021.637547
- Kalkbrenner, M. T. (2021). A practical guide to instrument development and score validation in the social sciences: The MEASURE approach. Practical Assessment, Research, and Evaluation, 26, Article 1. https://doi.org/10.7275/svg4-e671
- Knekta, E., Runyon, C., & Eddy, S. (2019). One size doesn’t fit all: Using factor analysis to gather validity evidence when using surveys in your research. CBE—Life Sciences Education, 18(1), rm1. https://doi.org/10.1187/cbe.18-04-0064
- Morgado, F. F. R., Meireles, J. F. F., Neves, C. M., Amaral, A. C. S., & Ferreira, M. E. C. (2017). Scale development: Ten main limitations and recommendations to improve future research practices. Psicologia: Reflexão e Crítica, 30, Article 3. https://doi.org/10.1186/s41155-016-0057-1
- Putnick, D. L., & Bornstein, M. H. (2016). Measurement invariance conventions and reporting: The state of the art and future directions for psychological research. Developmental Review, 41, 71–90. https://doi.org/10.1016/j.dr.2016.06.004
- Stefana, A., Damiani, S., Granziol, U., Provenzani, U., Solmi, M., Youngstrom, E. A., & Fusar-Poli, P. (2024). Psychological, psychiatric, and behavioral sciences measurement scales: Best practice guidelines for their development and validation. Frontiers in Psychology, 15, 1494261. https://doi.org/10.3389/fpsyg.2024.1494261
- Terwee, C. B., Prinsen, C. A. C., Chiarotto, A., Westerman, M. J., Patrick, D. L., Alonso, J., Bouter, L. M., de Vet, H. C. W., & Mokkink, L. B. (2018). COSMIN methodology for evaluating the content validity of patient-reported outcome measures: A Delphi study. Quality of Life Research, 27, 1159–1170. https://doi.org/10.1007/s11136-018-1829-0
- Trizano-Hermosilla, I., & Alvarado, J. M. (2016). Best alternatives to Cronbach’s alpha reliability in realistic conditions: Congeneric and asymmetrical measurements. Frontiers in Psychology, 7, 769. https://doi.org/10.3389/fpsyg.2016.00769
- Tsang, S., Royse, C. F., & Terkawi, A. S. (2017). Guidelines for developing, translating, and validating a questionnaire in perioperative and pain medicine. Saudi Journal of Anaesthesia, 11(Suppl. 1), S80–S89. https://doi.org/10.4103/sja.SJA_203_17
- Yusoff, M. S. B. (2019). ABC of content validation and content validity index calculation. Education in Medicine Journal, 11(2), 49–54. https://doi.org/10.21315/eimj2019.11.2.6
Oprogramowanie wykorzystane w przykładzie
- Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., Wieser, E., Taylor, J., Berg, S., Smith, N. J., Kern, R., Picus, M., Hoyer, S., van Kerkwijk, M. H., Brett, M., Haldane, A., del Río, J. F., Wiebe, M., Peterson, P., … Oliphant, T. E. (2020). Array programming with NumPy. Nature, 585, 357–362. https://doi.org/10.1038/s41586-020-2649-2
- Igolkina, A. A., & Meshcheryakov, G. (2020). semopy: A Python package for structural equation modeling. Structural Equation Modeling: A Multidisciplinary Journal, 27(6), 952–963. https://doi.org/10.1080/10705511.2019.1704289
- Jorgensen, T. D., Pornprasertmanit, S., Schoemann, A. M., & Rosseel, Y. (2026). semTools: Useful tools for structural equation modeling (R package version 0.5-8). https://CRAN.R-project.org/package=semTools
- McKinney, W. (2010). Data structures for statistical computing in Python. In S. van der Walt & J. Millman (Eds.), Proceedings of the 9th Python in Science Conference (pp. 56–61). https://doi.org/10.25080/Majora-92bf1922-00a
- R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3). R Foundation for Statistical Computing. https://www.R-project.org/
- Revelle, W. (2026). psych: Procedures for psychological, psychometric, and personality research (R package version 2.6.5). Northwestern University. https://CRAN.R-project.org/package=psych
- Rosseel, Y. (2012). lavaan: An R package for structural equation modeling. Journal of Statistical Software, 48(2), 1–36. https://doi.org/10.18637/jss.v048.i02
- Venables, W. N., & Ripley, B. D. (2002). Modern applied statistics with S (4th ed.). Springer. https://doi.org/10.1007/978-0-387-21706-2
Cytowania BibTeX
@article{artino2014questionnaires, author={Artino, Anthony R. and La Rochelle, Jeffrey S. and Dezee, Kent J. and Gehlbach, Hunter}, title={Developing Questionnaires for Educational Research: AMEE Guide No. 87}, journal={Medical Teacher}, year={2014}, volume={36}, number={6}, pages={463--474}, doi={10.3109/0142159X.2014.889814}}
@article{boateng2018scales, author={Boateng, Godfred O. and Neilands, Torsten B. and Frongillo, Edward A. and Melgar-Quinonez, Hugo R. and Young, Sera L.}, title={Best Practices for Developing and Validating Scales for Health, Social, and Behavioral Research: A Primer}, journal={Frontiers in Public Health}, year={2018}, volume={6}, pages={149}, doi={10.3389/fpubh.2018.00149}}
@article{boness2020cognitive, author={Boness, Cassandra L. and Sher, Kenneth J.}, title={The Case for Cognitive Interviewing in Survey Item Validation}, journal={Journal of Studies on Alcohol and Drugs}, year={2020}, volume={81}, number={4}, pages={401--404}, doi={10.15288/jsad.2020.81.401}}
@article{clark2019constructing, author={Clark, Lee Anna and Watson, David}, title={Constructing Validity: New Developments in Creating Objective Measuring Instruments}, journal={Psychological Assessment}, year={2019}, volume={31}, number={12}, pages={1412--1427}, doi={10.1037/pas0000626}}
@article{flake2020measurement, author={Flake, Jessica Kay and Fried, Eiko I.}, title={Measurement Schmeasurement: Questionable Measurement Practices and How to Avoid Them}, journal={Advances in Methods and Practices in Psychological Science}, year={2020}, volume={3}, number={4}, pages={456--465}, doi={10.1177/2515245920952393}}
@article{jebb2021likert, author={Jebb, Andrew T. and Ng, Vincent and Tay, Louis}, title={A Review of Key Likert Scale Development Advances: 1995--2019}, journal={Frontiers in Psychology}, year={2021}, volume={12}, pages={637547}, doi={10.3389/fpsyg.2021.637547}}
@article{kalkbrenner2021measure, author={Kalkbrenner, Michael T.}, title={A Practical Guide to Instrument Development and Score Validation in the Social Sciences: The MEASURE Approach}, journal={Practical Assessment, Research, and Evaluation}, year={2021}, volume={26}, number={1}, pages={1}, doi={10.7275/svg4-e671}}
@article{knekta2019factor, author={Knekta, Eva and Runyon, Chester and Eddy, Sarah}, title={One Size Doesn't Fit All: Using Factor Analysis to Gather Validity Evidence When Using Surveys in Your Research}, journal={CBE---Life Sciences Education}, year={2019}, volume={18}, number={1}, pages={rm1}, doi={10.1187/cbe.18-04-0064}}
@article{morgado2017scale, author={Morgado, Fabiane F. R. and Meireles, Juliana F. F. and Neves, Clara M. and Amaral, Ana C. S. and Ferreira, Maria E. C.}, title={Scale Development: Ten Main Limitations and Recommendations to Improve Future Research Practices}, journal={Psicologia: Reflexao e Critica}, year={2017}, volume={30}, pages={3}, doi={10.1186/s41155-016-0057-1}}
@article{putnick2016invariance, author={Putnick, Diane L. and Bornstein, Marc H.}, title={Measurement Invariance Conventions and Reporting}, journal={Developmental Review}, year={2016}, volume={41}, pages={71--90}, doi={10.1016/j.dr.2016.06.004}}
@article{stefana2024scales, author={Stefana, Alberto and Damiani, Sara and Granziol, Umberto and Provenzani, Umberto and Solmi, Marco and Youngstrom, Eric A. and Fusar-Poli, Paolo}, title={Psychological, Psychiatric, and Behavioral Sciences Measurement Scales: Best Practice Guidelines for Their Development and Validation}, journal={Frontiers in Psychology}, year={2024}, volume={15}, pages={1494261}, doi={10.3389/fpsyg.2024.1494261}}
@article{terwee2018content, author={Terwee, Caroline B. and Prinsen, Cecilia A. C. and Chiarotto, Alessandro and Westerman, Marjan J. and Patrick, Donald L. and Alonso, Jordi and Bouter, Lex M. and de Vet, Henrica C. W. and Mokkink, Lidwine B.}, title={COSMIN Methodology for Evaluating the Content Validity of Patient-Reported Outcome Measures: A Delphi Study}, journal={Quality of Life Research}, year={2018}, volume={27}, pages={1159--1170}, doi={10.1007/s11136-018-1829-0}}
@article{trizano2016alpha, author={Trizano-Hermosilla, Italo and Alvarado, Jesus M.}, title={Best Alternatives to Cronbach's Alpha Reliability in Realistic Conditions}, journal={Frontiers in Psychology}, year={2016}, volume={7}, pages={769}, doi={10.3389/fpsyg.2016.00769}}
@article{tsang2017questionnaire, author={Tsang, Siny and Royse, Colin F. and Terkawi, Abdullah S.}, title={Guidelines for Developing, Translating, and Validating a Questionnaire in Perioperative and Pain Medicine}, journal={Saudi Journal of Anaesthesia}, year={2017}, volume={11}, number={Suppl 1}, pages={S80--S89}, doi={10.4103/sja.SJA_203_17}}
@article{yusoff2019cvi, author={Yusoff, Muhamad Saiful Bahri}, title={ABC of Content Validation and Content Validity Index Calculation}, journal={Education in Medicine Journal}, year={2019}, volume={11}, number={2}, pages={49--54}, doi={10.21315/eimj2019.11.2.6}}
@article{harris2020numpy, author={Harris, Charles R. and Millman, K. Jarrod and van der Walt, Stefan J. and others}, title={Array Programming with NumPy}, journal={Nature}, year={2020}, volume={585}, pages={357--362}, doi={10.1038/s41586-020-2649-2}}
@article{igolkina2020semopy, author={Igolkina, Anna A. and Meshcheryakov, Georgy}, title={semopy: A Python Package for Structural Equation Modeling}, journal={Structural Equation Modeling: A Multidisciplinary Journal}, year={2020}, volume={27}, number={6}, pages={952--963}, doi={10.1080/10705511.2019.1704289}}
@manual{jorgensen2026semtools, author={Jorgensen, Terrence D. and Pornprasertmanit, Sunthud and Schoemann, Alexander M. and Rosseel, Yves}, title={semTools: Useful Tools for Structural Equation Modeling}, year={2026}, note={R package version 0.5-8}, url={https://CRAN.R-project.org/package=semTools}}
@inproceedings{mckinney2010pandas, author={McKinney, Wes}, title={Data Structures for Statistical Computing in Python}, booktitle={Proceedings of the 9th Python in Science Conference}, year={2010}, pages={56--61}, doi={10.25080/Majora-92bf1922-00a}}
@manual{r2026, author={{R Core Team}}, title={R: A Language and Environment for Statistical Computing}, organization={R Foundation for Statistical Computing}, year={2026}, note={Version 4.5.3}, url={https://www.R-project.org/}}
@manual{revelle2026psych, author={Revelle, William}, title={psych: Procedures for Psychological, Psychometric, and Personality Research}, year={2026}, note={R package version 2.6.5}, organization={Northwestern University}, url={https://CRAN.R-project.org/package=psych}}
@article{rosseel2012lavaan, author={Rosseel, Yves}, title={lavaan: An R Package for Structural Equation Modeling}, journal={Journal of Statistical Software}, year={2012}, volume={48}, number={2}, pages={1--36}, doi={10.18637/jss.v048.i02}}
@book{venables2002mass, author={Venables, William N. and Ripley, Brian D.}, title={Modern Applied Statistics with S}, edition={4}, publisher={Springer}, year={2002}, doi={10.1007/978-0-387-21706-2}}