Publikacje naukowe · Doktorat

Badanie podłużne w doktoracie: liczba pomiarów, odstępy, odpadanie i wybór modelu

Jak zaplanować i przeanalizować badanie podłużne w rozprawie doktorskiej: pytanie o zmianę, liczba i rozmieszczenie pomiarów, rzetelność nachyleń i moc w symulacji, rekrutacja z zapasem na odpadanie, model mieszany i krzywa wzrostu w R oraz wzór opisu wyników.

Strona główna / Blog / Badanie podłużne w doktoracie
W skrócie: Badanie podłużne ma sens, gdy pytanie dotyczy zmiany: jej tempa, różnic między osobami i powiązań zmian w czasie. Plan zacznij od pytania o zmianę, a liczbę i odstępy pomiarów dobierz do tempa procesu. Rzetelność indywidualnych nachyleń rośnie bardziej z czasem trwania niż z liczbą pomiarów. Rekrutuj z zapasem na odpadanie, koduj czas w prawdziwych odstępach i analizuj wszystkie dostępne dane modelem mieszanym albo krzywą wzrostu.

Kiedy doktorat potrzebuje badania podłużnego

Badanie podłużne to w doktoracie poważna decyzja. Wiąże harmonogram na kilka semestrów, wymaga utrzymania kontaktu z uczestnikami i zmienia sposób analizy danych. Warto ją podjąć, gdy pytanie dotyczy zmiany: jak zmienia się zmienna, czy ludzie różnią się tempem tej zmiany, co ją przewiduje i czy zmiany dwóch zmiennych są ze sobą powiązane w czasie.

Przewagę schematu podłużnego nad przekrojowym dobrze opisują Curran i Bauer (2011). Pomiary powtarzane dają większą moc, ustalają kolejność zdarzeń w czasie i przede wszystkim pozwalają oddzielić efekty wewnątrzosobowe od międzyosobowych. Badanie przekrojowe tego nie potrafi. Maxwell i Cole (2007) pokazali, że przekrojowe analizy mediacji procesów rozwijających się w czasie dają zwykle wyraźnie obciążone oszacowania, nawet w idealnych warunkach.

Collins (2006) ujmuje dobre badanie podłużne jako połączenie trzech elementów: teoretycznego modelu zmiany, planu czasowego, który pozwala ten proces zobaczyć, i modelu statystycznego, który jest operacjonalizacją teorii. W doktoracie najczęściej zawodzi środkowy element. Liczbę pomiarów i odstępy dobiera się do kalendarza grantu, a nie do tempa badanego procesu. Ten wpis prowadzi przez kolejne decyzje: pytanie o zmianę, liczbę i rozmieszczenie pomiarów, moc, odpadanie i wybór modelu. Na końcu znajdziesz pełny przykład w R.

Pytanie o zmianę wyznacza model i minimalną liczbę pomiarów

Zanim zaplanujesz pomiary, zapisz pytanie w kategoriach zmiany. Ployhart i Vandenberg (2010) proponują listy kontrolne zagadnień, które trzeba rozważyć przy teoretyzowaniu i planowaniu takich badań. Omawiają też kompromisy między ANOVA z powtarzanymi pomiarami, modelami ze współczynnikami losowymi i modelami krzywej latentnej. Tabela 1 łączy typowe pytania doktoratów z modelami.

Pytania o zmianę, odpowiadające im modele i minimalna liczba pomiarów
PytanieModelMinimum pomiarówGdzie szczegóły
Czy grupa po interwencji różni się od kontrolnej (przed–po)?ANCOVA z pomiarem wyjściowym2ANCOVA przed i po
Jak zmienia się średnia w kilku stałych punktach czasu?ANOVA z powtarzanymi pomiarami albo model mieszany z czasem jako czynnikiem3ANOVA czy model mieszany
Jakie jest średnie tempo zmiany i czy ludzie różnią się tempem?Model mieszany z losowym nachyleniem albo krzywa wzrostu (LGM)3 dla trajektorii liniowej, 4+ dla krzywoliniowejkrzywe wzrostu (LGM)
Czy wzrost X u danej osoby poprzedza wzrost Y u tej samej osoby?RI-CLPM3 (więcej daje stabilniejsze oszacowania)modele cross-lagged
Czy w tygodniach z gorszym snem stres jest wyższy niż zwykle u tej samej osoby?Model wielopoziomowy z rozdzieleniem efektów wewnątrz- i międzyosobowychkilka pomiarów na osobę, zwykle więcej niż 3model wielopoziomowy

Dwa pomiary to wciąż badanie podłużne, ale bardzo ubogie. Nie da się na nich oddzielić prawdziwej zmiany od błędu pomiaru ani sprawdzić kształtu trajektorii. Trzy pomiary to minimum do linii prostej z różnicami indywidualnymi w nachyleniu. Jeśli teoria przewiduje przyspieszenie, spowolnienie albo powrót do poziomu wyjściowego, zaplanuj co najmniej cztery.

Jeśli pytasz o wpływy wzajemne dwóch zmiennych, nie poprzestawaj na klasycznym modelu krzyżowo-opóźnionym (CLPM). Gdy część stabilności konstruktów ma charakter stałej cechy, jego parametry nie opisują zależności wewnątrzosobowych i mogą prowadzić do błędnych wniosków o kierunku i znaku wpływów (Hamaker i in., 2015). Logikę, założenia i kod RI-CLPM omawiamy we wpisie CLPM i RI-CLPM. Tutaj zajmujemy się planem, który taki model w ogóle umożliwi.

Ile pomiarów? Rzetelność nachyleń zależy bardziej od czasu trwania

Gdy pytasz o różnice indywidualne w tempie zmiany, kluczowa jest rzetelność tempa wzrostu (growth rate reliability, GRR). To odsetek zmienności indywidualnych nachyleń, który odzwierciedla prawdziwe różnice między osobami, a nie błąd. Rast i Hofer (2014) pokazali w symulacjach opartych na rzeczywistych badaniach, że od GRR silnie i nieliniowo zależy liczebność potrzebna do wykrycia wariancji i kowariancji tempa zmian.

GRR = τ11 / (τ11 + σ2 / SSTczas)

τ11 to wariancja nachyleń, σ2 – wariancja reszt, a SSTczas – suma kwadratów odchyleń momentów pomiaru od ich średniej. Ostatni składnik rośnie szybko, gdy wydłużasz badanie, i wolno, gdy dokładasz pomiary w tym samym okresie. Rysunek 1A pokazuje to dla skali stresu 1–5 przy odchyleniu standardowym nachyleń 0.03 punktu na miesiąc i odchyleniu standardowym reszt 0.35 punktu.

Dwa panele. A: rzetelność indywidualnych nachyleń rośnie z liczbą pomiarów, ale znacznie silniej z czasem trwania badania: przy 8 pomiarach wynosi .18 dla 6 miesięcy, .48 dla 12 miesięcy i .78 dla 24 miesięcy. B: moc testu różnicy nachyleń rośnie z .58 do .68 przy 50 osobach na grupę i z .86 do .93 przy 100 osobach na grupę, gdy liczba pomiarów w roku rośnie z 3 do 6
Rysunek 1. Plan badania a precyzja. A: rzetelność indywidualnych nachyleń (GRR) dla 3–8 pomiarów w równych odstępach i trzech okresów obserwacji. B: moc testu interakcji grupa × czas w modelu mieszanym (500 symulacji na wariant, do końca roku zostaje średnio 75% osób); linia przerywana – moc .80. Obliczenia: R (dane symulowane).

W ciągu 12 miesięcy GRR rośnie z .346 przy trzech pomiarach do .476 przy ośmiu. Wydłużenie obserwacji do 24 miesięcy przy tych samych trzech pomiarach daje .679, czyli więcej niż pięć dodatkowych pomiarów w ciągu roku. Przy sześciu miesiącach obserwacji nawet osiem pomiarów daje tylko .185. Jeśli doktorat pyta o różnice w tempie zmiany, najpierw walcz o czas trwania, a dopiero potem o liczbę pomiarów.

Ma znaczenie także rozmieszczenie pomiarów. Przy czterech pomiarach w ciągu roku GRR wynosi .370 przy równych odstępach (0, 4, 8, 12 miesięcy) i .405, gdy trzy pomiary skupisz na początku (0, 1, 2, 12). Spada do .352, gdy dwa środkowe przesuniesz do połowy roku (0, 5, 7, 12). Skupianie pomiarów na krańcach poprawia precyzję nachylenia liniowego, ale uniemożliwia sprawdzenie, czy zmiana jest liniowa. Timmons i Preacher (2015) pokazali, że przy trajektoriach nieliniowych najlepiej zagęścić pomiary tam, gdzie krzywizna jest największa. Dlatego rozmieszczenie wynika z teorii, a nie tylko z rachunku precyzji.

Odstępy między pomiarami: tempo procesu, kalendarz i powtarzanie testu

Odstęp jest częścią hipotezy, nawet jeśli nie pada w niej wprost. Współczynniki krzyżowo-opóźnione zależą od odstępu między pomiarami. Dormann i Griffin (2015) pokazali, że optymalny odstęp zależy od stabilności badanych zmiennych i bywa krótszy, niż zakłada wiele badań panelowych. Wynik „brak efektu krzyżowego po roku” nie oznacza więc braku efektu po miesiącu.

Przy planowaniu odstępów odpowiedz na cztery pytania:

  1. Jak szybko zachodzi proces? Adaptacja do studiów trwa tygodnie, zmiana postaw zawodowych – lata. Gdy nie wiesz, sięgnij po badania pilotażowe albo przegląd literatury o podobnych procesach.
  2. Jakie zdarzenia kalendarzowe wpływają na wynik? Sesja egzaminacyjna, wakacje i okres rozliczeń w pracy mogą wytworzyć „zmianę”, która jest tylko efektem terminu. Zapisz daty pomiarów w harmonogramie i uzasadnij każdy termin.
  3. Czy powtarzanie testu zmienia wynik? Przy testach wykonaniowych i pamięciowych pojawia się efekt uczenia się. Zbyt krótki odstęp go wzmacnia i udaje poprawę.
  4. Czy narzędzie mierzy to samo w każdym pomiarze? Wnioski o zmianie są mocniejsze, gdy inwariancja czynnikowa w czasie została sprawdzona i wyniki latentne leżą na tej samej metryce (Widaman i in., 2010). Procedurę opisujemy we wpisie inwariancja pomiaru krok po kroku.

Nie standaryzuj wyników osobno w każdym pomiarze. Standaryzacja z zeruje średnią w każdej fali, więc „znika” dokładnie ta zmiana, którą chcesz badać, a porównania grup stają się trudne (Moeller, 2015). Do porównań między falami używaj wyników surowych albo przekształceń, które zachowują metrykę skali, np. odsetka maksymalnego możliwego wyniku (POMP).

Moc: liczba osób zwykle waży więcej niż liczba pomiarów

Gdy hipoteza dotyczy różnicy średniego tempa zmiany między grupami (np. programem wsparcia a grupą kontrolną), moc zależy od liczebności, różnicy nachyleń, wariancji nachyleń i liczby pomiarów. Najprościej sprawdzić ją symulacją. Wygeneruj wiele badań o zakładanych parametrach, dopasuj do każdego model, który zamierzasz raportować, i policz odsetek istotnych wyników.

W symulacji z rysunku 1B prawdziwa różnica nachyleń wynosi −0.025 punktu na miesiąc, czyli −0.3 punktu w ciągu roku. Odchylenie standardowe poziomu wyjściowego to 0.50, a do końca roku zostaje średnio 75% osób. Przy 50 osobach w grupie moc rośnie z .576 (3 pomiary) przez .604 (4 pomiary) do .684 (6 pomiarów). Przy 100 osobach w grupie odpowiednie wartości to .864, .902 i .930. Podwojenie liczebności daje znacznie więcej niż podwojenie liczby pomiarów.

Dodatkowe pomiary mają jednak inne zalety. Pozwalają sprawdzić kształt trajektorii, poprawiają oszacowanie różnic indywidualnych i chronią przed utratą informacji, gdy ktoś opuści jeden termin. Symulację przygotuj dla własnych parametrów zaczerpniętych z pilotażu albo literatury i dołącz ją do planu analiz. Jak opisać ją we wniosku, pokazujemy we wpisie plan analiz do wniosku grantowego. Ogólne zasady analizy mocy a priori obowiązują i tutaj, ale prostego kalkulatora dla modelu mieszanego z odpadaniem nie znajdziesz – potrzebna jest symulacja.

Odpadanie: zaplanuj je, zanim się wydarzy

Utrata uczestników jest w badaniu podłużnym pewna. Niepewna jest tylko jej skala. Policz więc liczebność od końca. Jeśli w ostatnim, czwartym pomiarze potrzebujesz 150 osób, a między kolejnymi pomiarami spodziewasz się retencji 85%, zrekrutuj 245 osób (208 w drugim i 177 w trzecim pomiarze). Przy retencji 80% potrzebujesz 293 osób, przy 90% – 206. Formuły do własnych założeń znajdziesz w pliku planer badania podłużnego (xlsx), razem z arkuszem harmonogramu i dziennikiem odpadania.

Sama liczebność nie wystarczy. Liczy się mechanizm odpadania (zob. braki danych MCAR, MAR i MNAR). Jeśli z badania częściej odchodzą osoby z wysokim stresem, średnie obserwowane w ostatnich pomiarach będą zaniżone. Metody największej wiarygodności i imputacja wielokrotna dają poprawne wyniki przy założeniu MAR, czyli gdy odpadanie zależy od zmierzonych zmiennych. Graham (2009) podkreśla przy tym rolę zmiennych pomocniczych: zmniejszają obciążenie i zwiększają moc. Zaplanuj je od początku. Mogą to być np. deklarowana chęć udziału w kolejnych pomiarach, odległość od miejsca badania albo ocena obciążenia czasowego.

W protokole zaplanuj też działania, które zmniejszają odpadanie:

  • kilka kanałów kontaktu (e-mail, telefon, osoba kontaktowa) zebranych za zgodą uczestnika;
  • przypomnienia przed każdym pomiarem i krótkie podziękowanie po nim;
  • kwestionariusze tak krótkie, jak pozwala pytanie badawcze;
  • gratyfikacje rozłożone na kolejne pomiary, jeśli dopuszcza je komisja etyczna i budżet;
  • dziennik odpadania z przyczyną (rezygnacja, brak kontaktu, wykluczenie), prowadzony na bieżąco.

Raportowanie utraty jest obowiązkiem, a nie dodatkiem. W badaniach z randomizacją większość publikacji nie podaje informacji wystarczających, by ocenić możliwy wpływ utraty na wyniki (Dumville i in., 2006). Podaj liczebność w każdym pomiarze, przyczyny odpadania i porównanie osób, które zostały, z tymi, które odpadły. Jak radzić sobie z brakami w analizie, opisujemy we wpisie braki danych i imputacja wielokrotna. Symulację porównującą ANOVA na kompletnych przypadkach z modelem mieszanym przy odpadaniu typu MAR znajdziesz we wpisie ANOVA z powtarzanymi pomiarami czy model mieszany.

Który model wybrać: mapa zamiast jednego przepisu

Model wynika z pytania z tabeli 1, ale kilka zasad dotyczy wszystkich badań podłużnych w doktoracie.

  • Model mieszany zamiast ANOVA z powtarzanymi pomiarami, gdy masz braki, nierówne odstępy albo czas jako zmienną ciągłą. Modele mieszane wykorzystują wszystkie dostępne dane, uwzględniają korelację pomiarów tej samej osoby i elastyczniej modelują czas (Gueorguieva i Krystal, 2004). Szczegóły: efekty stałe i losowe, model wielopoziomowy.
  • Model mieszany i krzywa wzrostu to często ten sam model. W szerokim zakresie warunków podłużne modele wzrostu w ujęciu wielopoziomowym i SEM są analitycznie identyczne (Curran, 2003). Wybór zależy od rozszerzeń, których potrzebujesz. SEM ułatwia zmienne latentne, inwariancję i ocenę dopasowania, model mieszany – nierówne terminy u różnych osób i wiele poziomów zagnieżdżenia. Hasło: krzywa wzrostu (LGM).
  • Zmienne zmieniające się w czasie rozdzielaj na część wewnątrz- i międzyosobową przez centrowanie względem średniej osoby (Curran i Bauer, 2011). Bez tego współczynnik miesza dwa różne pytania.
  • Wynik nieciągły (zliczenia, odpowiedź tak/nie) wymaga uogólnionego modelu mieszanego, a nie modelu liniowego na odsetkach.

Przykład: stres akademicki na pierwszym roku studiów

Doktorantka bada, jak zmienia się stres akademicki osób na pierwszym roku studiów. Pomiary przypadają w październiku (miesiąc 0), listopadzie (1), styczniu w trakcie sesji (3) i czerwcu (8). Wynik to średnia z ośmiu pozycji 1–5. Zrekrutowano 240 osób. Odpadanie zależy od stresu w poprzednim pomiarze, czyli odpowiada mechanizmowi MAR (dane symulowane). Kod znajdziesz w sekcji przykład w R.

Krok 1. Liczebność i odpadanie

W kolejnych pomiarach uczestniczyło 240, 222, 200 i 181 osób. Do czerwca zostało 75.4% próby, a retencja między pomiarami wynosiła od 90.1% do 92.5%. Osoby, które nie dotrwały do końca (n = 59), miały na starcie wyższy stres (M = 3.23) niż osoby, które zostały (M = 2.91), t(98.82) = 3.42, p < .001. To ważna informacja. Średnie obserwowane z późniejszych pomiarów pochodzą od coraz mniej zestresowanej części próby.

Krok 2. Model wzrostu: koduj czas w prawdziwych odstępach

Najczęstszy błąd w takim planie to kodowanie czasu numerem pomiaru (0, 1, 2, 3), choć odstępy wynoszą 1, 2 i 5 miesięcy. Porównaliśmy oba kodowania w modelu mieszanym z losowym wyrazem wolnym i losowym nachyleniem (estymacja ML). Model z czasem w miesiącach pasuje wyraźnie lepiej (AIC = 1163.3 wobec 1186.5). Kodowanie falami zawyża średnią w listopadzie i styczniu (3.07 i 3.20 wobec obserwowanych 2.99 i 3.12), bo zakłada, że między październikiem a listopadem upływa tyle samo czasu, co między styczniem a czerwcem.

Indywidualne trajektorie stresu 45 losowych osób w pomiarach z października, listopada, stycznia i czerwca, z liczebnością 240, 222, 200 i 181; średnie obserwowane 2.99, 2.99, 3.12 i 3.32; linia modelu z czasem w miesiącach rośnie od 2.98 do 3.40, a linia modelu z numerem pomiaru odbiega od średnich w listopadzie i styczniu
Rysunek 2. Trajektorie stresu akademickiego (szare linie, 45 losowych osób), średnie obserwowane (czerwone punkty) i średnie z dwóch modeli mieszanych. Oś pozioma zachowuje prawdziwe odstępy między pomiarami; pod punktami – liczebność w każdym pomiarze. Obliczenia: R (dane symulowane).

Stres rośnie średnio o 0.053 punktu na miesiąc, 95% CI [0.043, 0.062], czyli o 0.42 punktu między październikiem a czerwcem. Odchylenie standardowe indywidualnych nachyleń wynosi 0.034 punktu na miesiąc, więc część osób ma trajektorie płaskie albo malejące. W czerwcu model przewiduje średnią 3.40, a średnia obserwowana wynosi 3.32. Różnica wynika z odpadania osób bardziej zestresowanych. Model wykorzystuje ich wcześniejsze pomiary, a średnia z kompletnych odpowiedzi – nie.

Tabela 2

Liniowy model wzrostu stresu akademickiego na pierwszym roku studiów (czas w miesiącach)

ParametrbSE95% CItdfp
Efekty stałe
Wyraz wolny (październik)2.980.04[2.90, 3.05]78.41239.81< .001
Czas (miesiące)0.0530.005[0.043, 0.062]11.26192.64< .001
Efekty losowe
Wariancja wyrazu wolnego0.287
Wariancja nachylenia0.0011
Korelacja wyrazu wolnego i nachylenia−.03
Wariancja reszt0.112

Uwaga. N = 240 osób, 843 pomiary (240, 222, 200 i 181 w kolejnych terminach). Estymacja ML; stopnie swobody metodą Satterthwaite’a; 95% CI z profilowej funkcji wiarygodności. Model z czasem kodowanym numerem pomiaru: AIC = 1186.5 wobec 1163.3. Dane symulowane.

Krok 3. Ten sam model jako krzywa wzrostu w SEM

Ten sam model można zapisać jako krzywą wzrostu w lavaan. Ładunki czynnika poziomu ustawiamy na 1, ładunki czynnika tempa na 0, 1, 3 i 8, a wariancje reszt ograniczamy do równości. Braki obsługuje FIML. Wyniki pokrywają się z modelem mieszanym: średni poziom 2.979, średnie tempo 0.053, wariancja reszt 0.112 i identyczna wartość logarytmu wiarygodności (−575.64). To ilustracja równoważności opisanej przez Currana (2003). Dopasowanie modelu jest dobre: χ²(8) = 7.26, p = .509, CFI = 1.000, RMSEA = .000, SRMR = .028. W wersji SEM łatwo dodać zmienne latentne w każdym pomiarze, uwolnić wariancje reszt albo sprawdzić kształt trajektorii z wolnymi ładunkami. Te rozszerzenia omawiamy we wpisie krzywe wzrostu (LGM) i modele zmiany.

Stres akademicki mierzono czterokrotnie: w październiku, listopadzie, styczniu (w trakcie sesji) i czerwcu. W kolejnych pomiarach uczestniczyło 240, 222, 200 i 181 osób (75.4% próby wyjściowej w ostatnim pomiarze). Osoby, które nie uczestniczyły w ostatnim pomiarze (n = 59), miały na starcie wyższy stres (M = 3.23) niż osoby, które w nim uczestniczyły (M = 2.91), t(98.82) = 3.42, p < .001. Dlatego zastosowano liniowy model mieszany z losowym wyrazem wolnym i losowym nachyleniem, estymowany metodą największej wiarygodności na wszystkich dostępnych pomiarach, przy założeniu, że braki są losowe pod warunkiem wcześniejszych wyników (MAR). Czas kodowano w miesiącach od pierwszego pomiaru; model ten był lepiej dopasowany niż model z czasem kodowanym numerem pomiaru (AIC = 1163.3 wobec 1186.5). Stres rósł średnio o 0.053 punktu na miesiąc, 95% CI [0.043, 0.062], t(192.64) = 11.26, p < .001, co oznacza wzrost o 0.42 punktu między październikiem a czerwcem. Tempo zmiany różniło się między osobami (SD nachyleń = 0.034 punktu na miesiąc). Równoważny model krzywej wzrostu w SEM (FIML) dał te same oszacowania i był dobrze dopasowany, χ²(8) = 7.26, p = .509, CFI = 1.000, RMSEA = .000, SRMR = .028.

Co opisać w rozprawie i artykule

Recenzent badania podłużnego chce zobaczyć plan czasowy tak wyraźnie jak model. W rozdziale metodologicznym albo w sekcji metod podaj:

  • harmonogram z datami lub miesiącami od startu i uzasadnieniem każdego odstępu;
  • liczebność w każdym pomiarze, przyczyny odpadania i porównanie osób, które zostały, z tymi, które odpadły;
  • sposób kodowania czasu i punkt zerowy (co oznacza wyraz wolny);
  • założenie o mechanizmie braków, metodę ich obsługi i zmienne pomocnicze;
  • wyniki sprawdzenia inwariancji pomiaru w czasie, jeśli porównujesz średnie skal;
  • symulację mocy z parametrami i ich źródłem;
  • model z pełną specyfikacją efektów losowych oraz analizę wrażliwości, np. z innym kształtem trajektorii albo z założeniem MNAR.

Opis planu warto napisać jeszcze przed pierwszym pomiarem, np. do prerejestracji albo do projektu rozprawy. Wtedy każda późniejsza zmiana harmonogramu jest widoczna jako odstępstwo, a nie ginie w tekście. Poniższy wzór dotyczy przykładu z tego wpisu. Zastąp liczby własnymi i dopisz źródło parametrów symulacji.

Zaplanowano badanie podłużne z czterema pomiarami stresu akademickiego w ciągu pierwszego roku studiów: w październiku (miesiąc 0, przed pierwszymi zaliczeniami), listopadzie (miesiąc 1, okres adaptacji), styczniu (miesiąc 3, w trakcie sesji) i czerwcu (miesiąc 8, koniec roku). Terminy dobrano tak, aby uchwycić zmianę w okresie adaptacji i w okresie największego obciążenia. Zakładając retencję 85% między kolejnymi pomiarami i potrzebę uzyskania 150 osób w ostatnim pomiarze, zaplanowano rekrutację 245 osób. Hipotezę o wzroście stresu w ciągu roku sprawdzono liniowym modelem mieszanym z czasem kodowanym w miesiącach od pierwszego pomiaru, z losowym wyrazem wolnym i losowym nachyleniem, estymowanym metodą największej wiarygodności na wszystkich dostępnych pomiarach. Przyjęto założenie MAR; jako zmienne pomocnicze zaplanowano deklarowaną chęć udziału w kolejnych pomiarach i ocenę obciążenia czasowego. Przyczyny odpadania rejestrowano na bieżąco, a osoby, które odpadły, porównano z pozostałymi pod względem wyniku wyjściowego.

Jeśli badanie podłużne jest częścią doktoratu z cyklu artykułów, ustal z góry, które pytania trafią do którego artykułu. Pilnuj też spójności kodowania i wykluczeń między nimi (zob. doktorat z cyklu artykułów). Gdy na tym samym zbiorze będą później pracować inni, przyda się dobra dokumentacja i znajomość zasad analizy wtórnej. Opisujemy je we wpisie reanaliza i wtórna analiza cudzych danych. Szerszy kontekst planowania badań w rozprawie znajdziesz we wpisie analiza statystyczna w doktoracie.

Jeśli chcesz, żeby ktoś niezależnie sprawdził plan pomiarów, przygotował symulację mocy dla Twoich parametrów albo dopasował modele do zebranych danych, zajrzyj do naszej oferty analiz statystycznych dla badaczy. Za wybór modelu, interpretację wyników i ich obronę odpowiadasz Ty jako autor(ka) – naszym zadaniem jest przygotować Cię do tego.

Przykład reprodukowalny

Przykład w R: plan, moc i model wzrostu

Kod odtwarza wszystkie liczby z tekstu, tabel i rysunków. Przepisy są niezależne, a każdy ustawia własne ziarno losowania. Symulacja mocy (przepis 2) dopasowuje 3000 modeli i trwa około dwóch minut. Modele mieszane liczy pakiet lme4, stopnie swobody Satterthwaite’a – pakiet lmerTest, a krzywą wzrostu – lavaan. Przepis 4 tworzy plik do pobrania.

1. Liczebność przy odpadaniu i rzetelność nachyleń (GRR)

Dane wejściowe: zakładana liczebność w ostatnim pomiarze (150), retencja 80–90% między pomiarami; SD nachyleń 0.03 pkt/mies., SD reszt 0.35 pkt.

Co odczytać: liczbę osób do zrekrutowania i przewidywane n w kolejnych pomiarach, GRR dla 3–8 pomiarów w 6, 12 i 24 miesiącach oraz GRR przy różnym rozmieszczeniu czterech pomiarów.

R
# B82 – plan badania podłużnego: retencja, rzetelność nachyleń i moc (dane symulowane)
# Uruchomienie z folderu kod/: LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 Rscript uruchom.R

# 1. Ile osób zrekrutować, żeby w ostatnim pomiarze zostało co najmniej 150?
#    Retencja = odsetek osób z pomiaru k, które biorą udział w pomiarze k + 1.
n_koniec <- 150
retencja <- c(.80, .85, .90)
fale <- 4
n_start <- ceiling(n_koniec / retencja^(fale - 1))
plan_n <- sapply(seq_along(retencja), function(i) round(n_start[i] * retencja[i]^(0:(fale - 1))))
dimnames(plan_n) <- list(paste0("T", 1:fale), paste0("retencja_", retencja))
plan_n
n_start

# 2. Rzetelność indywidualnych nachyleń (growth rate reliability, GRR)
#    GRR = tau11 / (tau11 + sigma2 / SST), SST = suma kwadratów odchyleń czasu pomiaru od jego średniej.
#    Skala stresu 1–5: SD nachyleń = 0.03 pkt na miesiąc, SD reszt = 0.35 pkt.
tau11 <- 0.03^2; sigma2 <- 0.35^2
grr <- function(czasy) { sst <- sum((czasy - mean(czasy))^2); tau11 / (tau11 + sigma2 / sst) }
siatka <- expand.grid(liczba_fal = 3:8, czas_trwania = c(6, 12, 24))
siatka$GRR <- mapply(function(k, d) grr(seq(0, d, length.out = k)), siatka$liczba_fal, siatka$czas_trwania)
siatka$GRR <- round(siatka$GRR, 3)
reshape(siatka, idvar = "liczba_fal", timevar = "czas_trwania", direction = "wide")

# Ten sam rok i cztery pomiary, ale inny rozkład w czasie
round(c(rowno_0_4_8_12 = grr(c(0, 4, 8, 12)), skupione_0_1_2_12 = grr(c(0, 1, 2, 12)),
        srodek_0_5_7_12 = grr(c(0, 5, 7, 12)), trzy_0_6_12 = grr(c(0, 6, 12))), 3)
Wynik w R
   retencja_0.8 retencja_0.85 retencja_0.9
T1          293           245          206
T2          234           208          185
T3          188           177          167
T4          150           150          150
[1] 293 245 206
  liczba_fal GRR.6 GRR.12 GRR.24
1          3 0.117  0.346  0.679
2          4 0.128  0.370  0.702
3          5 0.142  0.398  0.726
4          6 0.156  0.425  0.748
5          7 0.171  0.451  0.767
6          8 0.185  0.476  0.784
   rowno_0_4_8_12 skupione_0_1_2_12   srodek_0_5_7_12       trzy_0_6_12 
            0.370             0.405             0.352             0.346 

2. Symulacja mocy: grupa × czas przy 3, 4 i 6 pomiarach

Dane wejściowe: dwie grupy po 50 lub 100 osób, 12 miesięcy, różnica nachyleń −0.025 pkt/mies., do końca roku zostaje średnio 75% osób (dane symulowane, set.seed(8202), 500 powtórzeń na wariant).

Co odczytać: moc (moc), odsetek modeli z osobliwym dopasowaniem i średnią liczbę obserwacji w każdym wariancie.

R
# B82 – moc testu różnicy nachyleń (grupa × czas) w modelu mieszanym: 3, 4 albo 6 pomiarów w ciągu roku
# Dane symulowane, set.seed(8202); 500 powtórzeń w każdym wariancie; prawdziwa różnica nachyleń −0.025 pkt/mies.
suppressPackageStartupMessages(library(lmerTest))
sym_badanie <- function(n_grupa, czasy, roznica = -0.025, retencja_koniec = .75) {
  n <- 2 * n_grupa
  grupa <- rep(0:1, each = n_grupa)                       # 0 = kontrolna, 1 = program wsparcia
  u0 <- rnorm(n, 0, 0.50); u1 <- rnorm(n, 0, 0.03)        # różnice indywidualne: poziom i tempo zmiany
  d <- expand.grid(id = 1:n, fala = seq_along(czasy))
  d$mies <- czasy[d$fala]; d$grupa <- grupa[d$id]
  d$stres <- 3.0 + u0[d$id] + (0.020 + roznica * d$grupa + u1[d$id]) * d$mies + rnorm(nrow(d), 0, 0.35)
  # odpadanie monotoniczne (MCAR): do końca roku zostaje średnio 75% osób niezależnie od liczby pomiarów
  retencja <- retencja_koniec^(1 / (length(czasy) - 1))
  ostatnia <- sapply(1:n, function(i) { k <- 1; while (k < length(czasy) && runif(1) < retencja) k <- k + 1; k })
  d[d$fala <= ostatnia[d$id], ]
}
jedno <- function(n_grupa, czasy) {
  d <- sym_badanie(n_grupa, czasy)
  m <- suppressMessages(suppressWarnings(lmer(stres ~ mies * grupa + (mies | id), data = d,
                                              control = lmerControl(calc.derivs = FALSE))))
  c(p = summary(m)$coefficients["mies:grupa", "Pr(>|t|)"], osobliwy = isSingular(m), n_obs = nrow(d))
}
warianty <- expand.grid(n_grupa = c(50, 100), fale = c(3, 4, 6))
set.seed(8202)
R <- 500
wyniki <- t(sapply(seq_len(nrow(warianty)), function(i) {
  czasy <- seq(0, 12, length.out = warianty$fale[i])
  w <- replicate(R, jedno(warianty$n_grupa[i], czasy))
  c(moc = mean(w["p", ] < .05), osobliwe = mean(w["osobliwy", ]), srednio_obserwacji = mean(w["n_obs", ]))
}))
moc_tab <- cbind(warianty, round(wyniki, 3))
moc_tab
Wynik w R
  n_grupa fale   moc osobliwe srednio_obserwacji
1      50    3 0.576    0.030            261.148
2     100    3 0.864    0.010            522.660
3      50    4 0.604    0.030            349.146
4     100    4 0.902    0.000            697.518
5      50    6 0.684    0.006            522.234
6     100    6 0.930    0.002           1042.974

3. Model wzrostu: czas w miesiącach, numer pomiaru i LGM

Dane wejściowe: 240 osób, stres 1–5 w miesiącach 0, 1, 3 i 8, odpadanie zależne od wcześniejszego stresu (dane symulowane, set.seed(8203)); pakiety lmerTest i lavaan.

Co odczytać: liczebność i średnie w pomiarach, retencję, porównanie osób, które zostały i odpadły, efekty stałe obu kodowań czasu, AIC, średnie przewidywane i obserwowane, 95% CI, efekty losowe oraz parametry i dopasowanie LGM z identycznym logarytmem wiarygodności.

R
# B82 – przykład z doktoratu: stres akademicki na pierwszym roku, 4 pomiary w nierównych odstępach
# październik (miesiąc 0), listopad (1), styczeń (3, sesja), czerwiec (8); skala 1–5 (średnia z 8 pozycji).
# 240 osób, odpadanie zależne od wcześniej zmierzonego stresu (MAR). Dane symulowane, set.seed(8203).
suppressPackageStartupMessages({ library(lmerTest); library(lavaan) })
set.seed(8203)
n <- 240; czasy <- c(0, 1, 3, 8)
u0 <- rnorm(n, 0, 0.55); u1 <- rnorm(n, 0, 0.040)
szer <- sapply(czasy, function(t) 2.90 + u0 + (0.060 + u1) * t + rnorm(n, 0, 0.33))
szer[] <- pmin(5, pmax(1, round(szer * 8) / 8))          # średnia z 8 pozycji 1–5
colnames(szer) <- paste0("T", 1:4)
# odpadanie: im wyższy stres w poprzednim pomiarze, tym większa szansa rezygnacji
for (k in 2:4) {
  p_odpad <- plogis(-2.3 + 0.90 * (szer[, k - 1] - 3))
  odpada <- !is.na(szer[, k - 1]) & runif(n) < p_odpad
  szer[odpada | is.na(szer[, k - 1]), k:4] <- NA
}
szer <- data.frame(id = 1:n, szer)
dl <- reshape(szer, direction = "long", varying = paste0("T", 1:4), v.names = "stres",
              timevar = "fala", times = 1:4, idvar = "id")
dl <- dl[!is.na(dl$stres), ]
dl$mies <- czasy[dl$fala]; dl$fala0 <- dl$fala - 1
c(osoby = length(unique(dl$id)), pomiary = nrow(dl))

# 1. Liczebność i średnie w kolejnych pomiarach
opis <- aggregate(stres ~ fala, dl, function(x) c(n = length(x), M = mean(x), SD = sd(x)))
opis <- data.frame(fala = opis$fala, round(opis$stres, 2)); opis
round(c(proc_od_startu = 100 * opis$n / n, retencja_miedzy_pomiarami = 100 * opis$n[-1] / opis$n[-4]), 1)
# 2. Czy osoby, które zostały do końca, różniły się na starcie?
szer$do_konca <- !is.na(szer$T4)
table(szer$do_konca)
t.test(T1 ~ do_konca, data = szer)
round(tapply(szer$T1, szer$do_konca, mean), 2)

# 3. Model wzrostu: czas w miesiącach (prawdziwe odstępy) a czas jako numer fali (0, 1, 2, 3)
m_mies <- lmer(stres ~ mies + (mies | id), data = dl, REML = FALSE)
m_fala <- lmer(stres ~ fala0 + (fala0 | id), data = dl, REML = FALSE)
summary(m_mies)$coefficients
summary(m_fala)$coefficients
round(c(AIC_miesiace = AIC(m_mies), AIC_fale = AIC(m_fala)), 1)
# średnie przewidywane w kolejnych pomiarach w obu kodowaniach a średnie obserwowane
b1 <- fixef(m_mies); b2 <- fixef(m_fala)
round(rbind(obserwowane = opis$M, miesiace = b1[1] + b1[2] * czasy, fale = b2[1] + b2[2] * 0:3), 2)
round(c(zmiana_8_mies = unname(8 * b1[2]), zmiana_3_fale = unname(3 * b2[2])), 2)
confint(m_mies, parm = "beta_", method = "profile")
VarCorr(m_mies)

# 4. Ten sam model jako krzywa wzrostu (LGM) w lavaan: ładunki nachylenia = miesiące, FIML
lgm <- '
  poziom =~ 1*T1 + 1*T2 + 1*T3 + 1*T4
  tempo  =~ 0*T1 + 1*T2 + 3*T3 + 8*T4
  T1 ~~ e*T1; T2 ~~ e*T2; T3 ~~ e*T3; T4 ~~ e*T4     # równe wariancje reszt jak w modelu mieszanym
'
f_lgm <- growth(lgm, data = szer, missing = "fiml")
pe <- parameterEstimates(f_lgm)
pe <- pe[(pe$lhs %in% c("poziom", "tempo") & pe$op %in% c("~1", "~~")) | (pe$lhs == "T1" & pe$op == "~~"),
         c("lhs", "op", "rhs", "est", "se", "ci.lower", "ci.upper")]
pe <- as.data.frame(pe); pe[, 4:7] <- round(pe[, 4:7], 4); pe
round(fitMeasures(f_lgm, c("chisq", "df", "pvalue", "cfi", "rmsea", "srmr")), 3)
round(c(logLik_lmer = as.numeric(logLik(m_mies)), logLik_lavaan = as.numeric(logLik(f_lgm))), 2)
Wynik w R
  osoby pomiary 
    240     843 
  fala   n    M   SD
1    1 240 2.99 0.64
2    2 222 2.99 0.63
3    3 200 3.12 0.63
4    4 181 3.32 0.68
           proc_od_startu1            proc_od_startu2            proc_od_startu3 
                     100.0                       92.5                       83.3 
           proc_od_startu4 retencja_miedzy_pomiarami1 retencja_miedzy_pomiarami2 
                      75.4                       92.5                       90.1 
retencja_miedzy_pomiarami3 
                      90.5 

FALSE  TRUE 
   59   181 

	Welch Two Sample t-test

data:  T1 by do_konca
t = 3.4217, df = 98.818, p-value = 0.0009063
alternative hypothesis: true difference in means between group FALSE and group TRUE is not equal to 0
95 percent confidence interval:
 0.1353118 0.5088731
sample estimates:
mean in group FALSE  mean in group TRUE 
           3.230932            2.908840 

FALSE  TRUE 
 3.23  2.91 
              Estimate  Std. Error       df  t value      Pr(>|t|)
(Intercept) 2.97898530 0.037994665 239.8076 78.40536 6.355825e-173
mies        0.05273359 0.004681657 192.6415 11.26387  6.171630e-23
             Estimate Std. Error       df  t value      Pr(>|t|)
(Intercept) 2.9373534 0.03961571 239.6298 74.14618 2.994273e-167
fala0       0.1332871 0.01212838 207.5764 10.98968  1.932994e-22
AIC_miesiace     AIC_fale 
      1163.3       1186.5 
            [,1] [,2] [,3] [,4]
obserwowane 2.99 2.99 3.12 3.32
miesiace    2.98 3.03 3.14 3.40
fale        2.94 3.07 3.20 3.34
zmiana_8_mies zmiana_3_fale 
         0.42          0.40 
Computing profile confidence intervals ...
                 2.5 %     97.5 %
(Intercept) 2.90426429 3.05381840
mies        0.04341269 0.06201239
 Groups   Name        Std.Dev. Corr   
 id       (Intercept) 0.535571        
          mies        0.033633 -0.032 
 Residual             0.334725        
      lhs op    rhs     est     se ci.lower ci.upper
9      T1 ~~     T1  0.1120 0.0077   0.0969   0.1272
13 poziom ~~ poziom  0.2869 0.0319   0.2244   0.3493
14  tempo ~~  tempo  0.0011 0.0005   0.0002   0.0021
15 poziom ~~  tempo -0.0006 0.0029  -0.0064   0.0052
20 poziom ~1         2.9790 0.0380   2.9045   3.0535
21  tempo ~1         0.0527 0.0047   0.0435   0.0620
 chisq     df pvalue    cfi  rmsea   srmr 
 7.260  8.000  0.509  1.000  0.000  0.028 
  logLik_lmer logLik_lavaan 
      -575.64       -575.64 

4. Plik do pobrania: planer badania podłużnego

Dane wejściowe: parametry z przepisu 1 (150 osób, retencja 0.85, 4 pomiary) wpisane jako formuły arkusza; pakiety openxlsx i readxl.

Co odczytać: nazwy arkuszy, harmonogram odczytany z pliku i autora w metadanych pliku.

R
# B82 – plik do pobrania: planer badania podłużnego (xlsx z formułami)
suppressPackageStartupMessages(library(openxlsx))
wb <- createWorkbook(creator = "Metodolog.pl", title = "Planer badania podłużnego")
addWorksheet(wb, "retencja")
writeData(wb, "retencja", data.frame(Parametr = c("Liczba osób potrzebna w ostatnim pomiarze", "Przewidywana retencja między pomiarami (0–1)", "Liczba pomiarów"),
                                     Wartosc = c(150, 0.85, 4)), startRow = 1)
writeData(wb, "retencja", "Liczba osób do zrekrutowania", startCol = 1, startRow = 6)
writeFormula(wb, "retencja", "=ROUNDUP(B2/B3^(B4-1),0)", startCol = 2, startRow = 6)
writeData(wb, "retencja", data.frame(Pomiar = paste0("T", 1:8)), startRow = 8)
for (k in 1:8) writeFormula(wb, "retencja", sprintf('=IF(%d<=$B$4,ROUND($B$6*$B$3^(%d-1),0),"")', k, k), startCol = 2, startRow = 8 + k)
writeData(wb, "retencja", "Przewidywana liczba osób", startCol = 2, startRow = 8)
setColWidths(wb, "retencja", 1:2, c(48, 26))
addWorksheet(wb, "harmonogram")
writeData(wb, "harmonogram", data.frame(
  Pomiar = paste0("T", 1:4), Miesiac_od_startu = c(0, 1, 3, 8), Termin = c("październik", "listopad", "styczeń (sesja)", "czerwiec"),
  Uzasadnienie_odstepu = c("pomiar wyjściowy przed pierwszymi zaliczeniami", "adaptacja do studiów", "szczyt obciążenia w sesji", "koniec roku akademickiego"),
  Narzedzia = "", Przypomnienia = "", Planowana_N = ""))
setColWidths(wb, "harmonogram", 1:7, c(10, 18, 18, 46, 24, 18, 14))
addWorksheet(wb, "dziennik_odpadania")
writeData(wb, "dziennik_odpadania", data.frame(Pomiar = paste0("T", 1:4), Zaproszeni = "", Uczestniczyli = "", Rezygnacja_jawna = "",
                                               Brak_kontaktu = "", Wykluczeni_i_powod = "", Uwagi = ""))
setColWidths(wb, "dziennik_odpadania", 1:7, c(10, 12, 14, 18, 16, 28, 30))
saveWorkbook(wb, "../planer-badania-podluznego.xlsx", overwrite = TRUE)
# kontrola: odczyt pliku i metadane autora
library(readxl)
excel_sheets("../planer-badania-podluznego.xlsx")
read_excel("../planer-badania-podluznego.xlsx", sheet = "harmonogram")[, 1:3]
tmp <- tempfile(); unzip("../planer-badania-podluznego.xlsx", "docProps/core.xml", exdir = tmp)
regmatches(x <- readLines(file.path(tmp, "docProps/core.xml"), warn = FALSE), gregexpr("<dc:creator>[^<]*</dc:creator>|<cp:lastModifiedBy>[^<]*</cp:lastModifiedBy>", x))[[1]]
Wynik w R
[1] "retencja"           "harmonogram"        "dziennik_odpadania"
# A tibble: 4 × 3
  Pomiar Miesiac_od_startu Termin         
  <chr>              <dbl> <chr>          
1 T1                     0 październik    
2 T2                     1 listopad       
3 T3                     3 styczeń (sesja)
4 T4                     8 czerwiec       
[1] "<dc:creator>Metodolog.pl</dc:creator>"              
[2] "<cp:lastModifiedBy>Metodolog.pl</cp:lastModifiedBy>"

Bibliografia oprogramowania

Wyniki na tej stronie pochodzą z uruchomienia pokazanego kodu w R 4.5.3. Modele mieszane dopasowano w pakiecie lme4 (testy efektów stałych w lmerTest), krzywą wzrostu – w pakiecie lavaan, a plik xlsx zapisano w pakiecie openxlsx i sprawdzono w readxl. Rysunki przygotowano w pakietach ggplot2 i patchwork. W pracy podaj wersje faktycznie użytych pakietów (sessionInfo()).

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
  2. lme4 (wersja 2.0-1): Bates, D., Mächler, M., Bolker, B., & Walker, S. (2015). Fitting linear mixed-effects models using lme4. Journal of Statistical Software, 67(1), 1–48. https://doi.org/10.18637/jss.v067.i01
  3. lmerTest (wersja 3.2-1): Kuznetsova, A., Brockhoff, P. B., & Christensen, R. H. B. (2017). lmerTest package: Tests in linear mixed effects models. Journal of Statistical Software, 82(13), 1–26. https://doi.org/10.18637/jss.v082.i13
  4. lavaan (wersja 0.7-2): 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
  5. openxlsx (wersja 4.2.8.1): Schauberger, P., & Walker, A. (2025). openxlsx: Read, write and edit xlsx files (R package version 4.2.8.1) [Computer software]. https://doi.org/10.32614/CRAN.package.openxlsx
  6. readxl (wersja 1.4.5): Wickham, H., & Bryan, J. (2025). readxl: Read Excel files [R package]. https://doi.org/10.32614/CRAN.package.readxl
  7. ggplot2 (wersja 4.0.2): Wickham, H. (2016). ggplot2: Elegant graphics for data analysis. Springer. https://ggplot2.tidyverse.org
  8. patchwork (wersja 1.3.2): Pedersen, T. L. (2025). patchwork: The composer of plots [R package]. https://doi.org/10.32614/CRAN.package.patchwork

Najczęstsze błędy w badaniach podłużnych w doktoracie

  • Odstępy dopasowane do kalendarza grantu, nie do procesu. Pomiar co pół roku nie uchwyci zmiany, która trwa tygodnie, a pomiar tuż po sesji udaje trwały wzrost stresu.
  • Czas kodowany numerem pomiaru przy nierównych odstępach. W przykładzie takie kodowanie dało gorsze dopasowanie i zawyżone średnie w środkowych pomiarach. Koduj czas w jednostkach, które mają znaczenie (tygodnie, miesiące).
  • Liczebność policzona na pierwszy pomiar. Moc dotyczy danych, które zostaną. Licz rekrutację od końca i zaplanuj retencję.
  • Analiza tylko kompletnych przypadków. Gdy odpadają osoby o wyższych wynikach, średnie z kompletnych danych są obciążone. Użyj modelu mieszanego albo FIML z założeniem MAR i opisz wrażliwość na MNAR.
  • Brak porównania osób, które odpadły. Bez niego czytelnik nie oceni, czy wyniki dotyczą całej próby.
  • Standaryzacja osobno w każdym pomiarze. Usuwa zmianę średniej, którą chcesz badać.
  • Klasyczny CLPM jako dowód kierunku wpływu. Bez oddzielenia stałych różnic między osobami współczynniki krzyżowe mogą wprowadzać w błąd. Rozważ RI-CLPM i uzasadnij odstęp.
  • Brak sprawdzenia inwariancji w czasie. Jeśli narzędzie zaczyna mierzyć coś innego, „zmiana” może być zmianą znaczenia pozycji, a nie poziomu cechy.
  • Wnioski przyczynowe z samego następstwa czasowego. Pomiar wcześniejszy nie jest przyczyną późniejszego tylko dlatego, że go poprzedza. Zmienne zakłócające zmieniające się w czasie nadal mogą wyjaśniać związek.

Najczęstsze pytania

Ile pomiarów potrzeba w badaniu podłużnym w doktoracie?

Dwa pomiary pozwalają porównać stan przed i po, ale nie pokażą kształtu zmiany. Do trajektorii liniowej z różnicami indywidualnymi potrzebujesz co najmniej trzech pomiarów, a do zmiany krzywoliniowej – czterech lub więcej. RI-CLPM wymaga co najmniej trzech fal.

Jak dobrać odstępy między pomiarami w badaniu podłużnym?

Dopasuj je do tempa badanego procesu, a nie do kalendarza grantu. Uwzględnij zdarzenia, które mogą wywołać pozorną zmianę (np. sesję), i efekt uczenia się przy powtarzanych testach. Każdy termin uzasadnij w harmonogramie, bo współczynniki krzyżowo-opóźnione zależą od długości odstępu.

Ile osób zrekrutować do badania podłużnego, jeśli część odpadnie?

Licz od końca: liczebność potrzebną w ostatnim pomiarze podziel przez retencję podniesioną do potęgi równej liczbie odstępów. Przy 150 osobach w czwartym pomiarze i retencji 85% między pomiarami potrzebujesz 245 osób na starcie. Dodatkowo zaplanuj działania ograniczające odpadanie i dziennik jego przyczyn.

Jak kodować czas w modelu wzrostu przy nierównych odstępach?

W jednostkach czasu, np. w miesiącach od pierwszego pomiaru (0, 1, 3, 8), a nie numerem pomiaru (0, 1, 2, 3). Kodowanie numerem zakłada równe odstępy i zniekształca kształt trajektorii. Punkt zerowy wybierz tak, żeby wyraz wolny miał sens, np. pomiar wyjściowy.

Czy model mieszany i krzywa wzrostu LGM dają te same wyniki?

W typowym liniowym modelu wzrostu tak: przy równych wariancjach reszt oba ujęcia są równoważne i dają te same oszacowania oraz tę samą wartość wiarygodności. Model mieszany łatwiej radzi sobie z różnymi terminami u różnych osób, a SEM – ze zmiennymi latentnymi, inwariancją i oceną dopasowania.

Powiązane hasła

Przeczytaj też

Planujesz badanie podłużne w doktoracie?

Pomożemy dobrać liczbę i odstępy pomiarów, policzyć moc w symulacji dla Twoich parametrów, przeanalizować dane z odpadaniem i wyjaśnić wyniki tak, żebyś umiał(a) je obronić.

Oferta dla badaczyPorozmawiaj o projekcie

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Collins, L. M. (2006). Analysis of longitudinal data: The integration of theoretical model, temporal design, and statistical model. Annual Review of Psychology, 57(1), 505–528. https://doi.org/10.1146/annurev.psych.57.102904.190146
  2. Curran, P. J. (2003). Have multilevel models been structural equation models all along? Multivariate Behavioral Research, 38(4), 529–569. https://doi.org/10.1207/s15327906mbr3804_5
  3. Curran, P. J., & Bauer, D. J. (2011). The disaggregation of within-person and between-person effects in longitudinal models of change. Annual Review of Psychology, 62(1), 583–619. https://doi.org/10.1146/annurev.psych.093008.100356 ● Otwarty dostęp: pełny tekst
  4. Dormann, C., & Griffin, M. A. (2015). Optimal time lags in panel studies. Psychological Methods, 20(4), 489–505. https://doi.org/10.1037/met0000041
  5. Dumville, J. C., Torgerson, D. J., & Hewitt, C. E. (2006). Reporting attrition in randomised controlled trials. BMJ, 332(7547), 969–971. https://doi.org/10.1136/bmj.332.7547.969 ● Otwarty dostęp: pełny tekst
  6. Graham, J. W. (2009). Missing data analysis: Making it work in the real world. Annual Review of Psychology, 60(1), 549–576. https://doi.org/10.1146/annurev.psych.58.110405.085530
  7. Gueorguieva, R., & Krystal, J. H. (2004). Move over ANOVA: Progress in analyzing repeated-measures data and its reflection in papers published in the Archives of General Psychiatry. Archives of General Psychiatry, 61(3), 310–317. https://doi.org/10.1001/archpsyc.61.3.310
  8. Hamaker, E. L., Kuiper, R. M., & Grasman, R. P. P. P. (2015). A critique of the cross-lagged panel model. Psychological Methods, 20(1), 102–116. https://doi.org/10.1037/a0038889 ● Otwarty dostęp: pełny tekst
  9. Maxwell, S. E., & Cole, D. A. (2007). Bias in cross-sectional analyses of longitudinal mediation. Psychological Methods, 12(1), 23–44. https://doi.org/10.1037/1082-989x.12.1.23
  10. Moeller, J. (2015). A word on standardization in longitudinal studies: Don’t. Frontiers in Psychology, 6, Article 1389. https://doi.org/10.3389/fpsyg.2015.01389 ● Otwarty dostęp
  11. Ployhart, R. E., & Vandenberg, R. J. (2010). Longitudinal research: The theory, design, and analysis of change. Journal of Management, 36(1), 94–120. https://doi.org/10.1177/0149206309352110
  12. Rast, P., & Hofer, S. M. (2014). Longitudinal design considerations to optimize power to detect variances and covariances among rates of change: Simulation results based on actual longitudinal studies. Psychological Methods, 19(1), 133–154. https://doi.org/10.1037/a0034524 ● Otwarty dostęp: pełny tekst
  13. Timmons, A. C., & Preacher, K. J. (2015). The importance of temporal design: How do measurement intervals affect the accuracy and efficiency of parameter estimates in longitudinal research? Multivariate Behavioral Research, 50(1), 41–55. https://doi.org/10.1080/00273171.2014.961056
  14. Widaman, K. F., Ferrer, E., & Conger, R. D. (2010). Factorial invariance within longitudinal structural equation models: Measuring the same construct across time. Child Development Perspectives, 4(1), 10–18. https://doi.org/10.1111/j.1750-8606.2009.00110.x ● Otwarty dostęp: pełny tekst

Cytowania BibTeX

@article{collins2006analysis, author={Collins, Linda M.}, title={{Analysis of longitudinal data: The integration of theoretical model, temporal design, and statistical model}}, journal={Annual Review of Psychology}, year={2006}, volume={57}, number={1}, pages={505--528}, doi={10.1146/annurev.psych.57.102904.190146}}
@article{curran2003have, author={Curran, Patrick J.}, title={{Have multilevel models been structural equation models all along?}}, journal={Multivariate Behavioral Research}, year={2003}, volume={38}, number={4}, pages={529--569}, doi={10.1207/s15327906mbr3804_5}}
@article{curran2011disaggregation, author={Curran, Patrick J. and Bauer, Daniel J.}, title={{The disaggregation of within-person and between-person effects in longitudinal models of change}}, journal={Annual Review of Psychology}, year={2011}, volume={62}, number={1}, pages={583--619}, doi={10.1146/annurev.psych.093008.100356}}
@article{dormann2015optimal, author={Dormann, Christian and Griffin, Mark A.}, title={{Optimal time lags in panel studies}}, journal={Psychological Methods}, year={2015}, volume={20}, number={4}, pages={489--505}, doi={10.1037/met0000041}}
@article{dumville2006reporting, author={Dumville, Jo C. and Torgerson, David J. and Hewitt, Catherine E.}, title={{Reporting attrition in randomised controlled trials}}, journal={BMJ}, year={2006}, volume={332}, number={7547}, pages={969--971}, doi={10.1136/bmj.332.7547.969}}
@article{graham2009missing, author={Graham, John W.}, title={{Missing data analysis: Making it work in the real world}}, journal={Annual Review of Psychology}, year={2009}, volume={60}, number={1}, pages={549--576}, doi={10.1146/annurev.psych.58.110405.085530}}
@article{gueorguieva2004move, author={Gueorguieva, Ralitza and Krystal, John H.}, title={{Move over ANOVA: Progress in analyzing repeated-measures data and its reflection in papers published in the Archives of General Psychiatry}}, journal={Archives of General Psychiatry}, year={2004}, volume={61}, number={3}, pages={310--317}, doi={10.1001/archpsyc.61.3.310}}
@article{hamaker2015critique, author={Hamaker, Ellen L. and Kuiper, Rebecca M. and Grasman, Raoul P. P. P.}, title={{A critique of the cross-lagged panel model}}, journal={Psychological Methods}, year={2015}, volume={20}, number={1}, pages={102--116}, doi={10.1037/a0038889}}
@article{maxwell2007bias, author={Maxwell, Scott E. and Cole, David A.}, title={{Bias in cross-sectional analyses of longitudinal mediation}}, journal={Psychological Methods}, year={2007}, volume={12}, number={1}, pages={23--44}, doi={10.1037/1082-989x.12.1.23}}
@article{moeller2015word, author={Moeller, Julia}, title={{A word on standardization in longitudinal studies: Don’t}}, journal={Frontiers in Psychology}, year={2015}, volume={6}, eid={1389}, doi={10.3389/fpsyg.2015.01389}}
@article{ployhart2010longitudinal, author={Ployhart, Robert E. and Vandenberg, Robert J.}, title={{Longitudinal research: The theory, design, and analysis of change}}, journal={Journal of Management}, year={2010}, volume={36}, number={1}, pages={94--120}, doi={10.1177/0149206309352110}}
@article{rast2014longitudinal, author={Rast, Philippe and Hofer, Scott M.}, title={{Longitudinal design considerations to optimize power to detect variances and covariances among rates of change: Simulation results based on actual longitudinal studies}}, journal={Psychological Methods}, year={2014}, volume={19}, number={1}, pages={133--154}, doi={10.1037/a0034524}}
@article{timmons2015importance, author={Timmons, Adela C. and Preacher, Kristopher J.}, title={{The importance of temporal design: How do measurement intervals affect the accuracy and efficiency of parameter estimates in longitudinal research?}}, journal={Multivariate Behavioral Research}, year={2015}, volume={50}, number={1}, pages={41--55}, doi={10.1080/00273171.2014.961056}}
@article{widaman2010factorial, author={Widaman, Keith F and Ferrer, Emilio and Conger, Rand D}, title={{Factorial invariance within longitudinal structural equation models: Measuring the same construct across time}}, journal={Child Development Perspectives}, year={2010}, volume={4}, number={1}, pages={10--18}, doi={10.1111/j.1750-8606.2009.00110.x}}
R