Notizen
Bildschirmpräsentation
Gliederung
1
SPM2 Statistik
von A. Ischebeck
Anja.Ischebeck@uklibk.ac.at
2
Übersicht
  • Grundidee
  • Modell schätzen
  • Kontraste berechnen
  • FFX vs. RFX
  • Bunte Bilder in SPM2
  • Nicht: Bayes, PPI (hrf deconvolution), DCM
3
Grundidee
  • voxel (=3d pixel) – basierte Statistik
  • AV: Zeitreihe der Aktivationswerte pro Voxel
  • UV: Modellzeitreihen der Prädiktoren (Experimentelle Bedingungen & Confounds)
  • Test = Korrelation zw. Meß- und Modellzeitreihe <> 0?


4
Analyse der Voxelzeitreihe
5
Modellschätzung - Formeln
6
Kontraste - Formeln
7
Modellschätzung
  • Formel: b = (Xτ X)-1 Xτ Y
  • input:
    • data nach Prepro: swar*.img/.hdr
    • design matrix: X
  • Output: beta_0001.img/.hdr
  • Prädiktoren:
    • Exp. Bedingungen
    • Moco Params
    • Filterfunktionen
  • Soviele Bilder wie Prädiktoren


8
Modellschätzung
  • Angaben (pro VP & Session) machen
    • nur einmal
      • Anzahl scans, TR in secs (mit Dezimalstellen)
    • pro Session
      • Anzahl und Namen der exp. Bedingungen
      • Onsets der Trials pro Bed. (in secs oder scans)
      • duration of trials in secs (0 für event-related)
    • Modellierung
      • events oder epochs
      • Art der hrf-Modellierung
      • zusätzliche Covariate (z.B. moco)
      • weitere optionen (Volterra, AR(1), HP Filter, global scaling)
9
Modellschätzung
  • Modell Spezifizieren
    • Design
    • Daten
  • Modell Schätzen (= rechnen lassen)
10
Spezifikation des Designs
  • Hier: Menü (realistischer über Skript)
11
Spezifikation des Designs
  • pro Session & Bedingung:
12
Spezifikation der Daten
  • ergänzt SPM-mat
    • um Daten (func Bilder)
    • weitere Modellparameter


13
Event oder Block-Design?
  • Block: z.B. Duration = 30
  • Spez. als Blockdesign Vorteil:
    • weniger onsets, weniger Arbeit
  • Spez. als Blockdesign Nachteil:
    • besser wenn als einzelne Events modelliert
      • Fehler können aus der Analyse raus
      • statistisch sensitiver als Blockanalyse!
14
Variabilität
  • Einmal pro Modellschätzung
    • TR, hrf, Volterra
  • Einmal pro Session
    • Anzahl der Bedingungen, Anzahl der Scans
  • Einmal pro Bedingung
    • Onsets
    • Anzahl / Art der Parameter
    • Duration (0=event-related, x=Blockdesign)



15
zusätzliche Covariate
  • ein Wert pro Trial & Bedingung
    (z.B. RT, Wortfreq.)
    • 'other' wählen
    • soviele Werte wie
      onsets eingeben
    • order: 1=linear
  • Achtung!
    • ergibt zusätzliche
      Prädiktoren!
      (2 pro Bed. falls hrf')


16
zusätzlicher Regressor
  • ein Wert pro scan (z.B. moco-params)
17
SPM defaults (menü)
  • Statistik
    • Referenz Schicht (slice time correction) = mittlere Schicht (default)
    • Aber Referenz Schicht für Statistik = 1!
      (default) à Ändern (sampled bin = 8)
    • Wieso diese Diskrepanz ?
      • Effekt (auf Z-Werte) meist eher zum schlechteren
      • (Erbsenzähler vs. crazy scientist)

18
Modell schätzen
19
Modell schätzen
  • Output:
    • beta_00x.img/.hdr
    • Resl_00x.img/.hdr
    • ResMS.img/.hdr
    • mask.img/.hdr
20
Modell schätzen
  • Spezifizieren ist aufwendig
    • ein Fehler => alles von vorn!
    • batch-file schreiben (Skript)
    • onsets in Text-file oder direkt in Skript schreiben
      • cond1 = [1.2 3.45 6.0 15.33 ...];
      • cond2 = [2.5 7.5 12.0 20.34 ...];
      • .....
      • Rest über Menü


21
Modell-Parameter 1
  • Global Scaling ('none')
    • globale Intensität pro voxel korrigieren
    • besser nicht tun, führt zu Artefakten!
    • in SPM integriert: global für gesamtes Bild
  • HP-Filter (in sec)
    • Wichtig! Optimum suchen bei einer VP!
      • gar kein Filter so desatrös wie zu scharfer Filter!
    • Faustregel: 2 mal max. Abstand zwischen 2 Trials einer Bedingung
    • Idealwert hängt ab vom Kontrast! (Baseline vs. between Cond.)
    • Wichtig: Ein Wert für gesamte Anaylse!

22
Modell-Parameter 2
  • AR(1)
    • 'whitening', korrigiert für nicht i.i.d. errors
    • etwas konservativ (SPM99: sehr konservativ)
    • am besten ohne (crazy sientist vs. Erbsenzähler)
  • Volterra
    • Resultate REALLY scary (nur verlangt für ISI < 2s)
  • moco als Regressor
    • verbessert meist die Sensitivität der Statistik
  • Anzahl der Bedingungen
    • zuviele: schlecht! (kleines df)
    • zuwenige: schlecht! (unaufgeklärte Varianz)


23
Exkursion: Basis Set
  •    Modell der BOLD Response für ER-Design:
    Summe von 2 Gamma-Funktionen mit festen Parametern (Peak at 6 s): 'canonical hrf'


24
Problem: Timing
25
Lösung:
26
'Informed basis set'
27
Andere Modellvarianten
28
Evaluation basis functions
  • am effektivsten (weitaus 'beste' Statistik)
    • hrf (evtl. mit hrf', hrf'')
  • also andere nur in Spezialfällen
    • sparse sampling
    • evtl. bei sehr kurzem ISI
  • Caveat:
    • IBS: Timing ist kritisch!
      • Maxima liegen etwas anders bei anderen Werten (z.B. peak bei 4s, 5s, 6s)!
      • Gilt auch für verschiedene Arten slice timing
      • Wichtig für Datenverständnis / Interpretation!

29
Kontraste
  • Kontrastvektor schreiben
  • Konstrast auswählen
  • Schwelle festlegen
  • Resultate ansehen
  • Bunte Bildchen
30
Kontraste
  • für gültigen t-Kontrast (Summe = 0)
  • falls hrf: 1 Prädiktor, '1' pro Bedingung
    mit hrf': '1 0'; mit hrf'': '1 0 0'
  • fehlende Nullen am Ende werden automatisch ergänzt
31
Kontraste
32
Resultate
33
Resultate
34
Exkurs: MNI brain vs. T&T
  • T&T=Atlas von Talairach & Tournoux (Stereotaxic Atlas of the Human Brain, Talairach and Tournoux, 1988)
  • MNI Gehirn weicht von T&T Atlas ab!
  • Konvertierung:
    • (http://www.mrc-cbu.cam.ac.uk/Imaging/mnispace)
    • für z<0: xTT = 0.99x; yTT = 0.9688y + 0.042z;
    •   zTT = -0.0485y + 0.839z
    • für z>0: xTT = 0.99x; yTT = 0.9688y + 0.046z;
    • zTT = -0.0485y + 0.9189z

35
Corrected p-value (FWE)
  • multiple comparison problem (ca. 20.000 voxel insgesamt)


  • Bonferroni ist zu konservativ (Tests sind nicht unabhängig)


  • Random fields Theorie:
  • Gegeben eine Erstschwelle,
  • wieviele 'Blobs' überleben rein zufällig (=Euler characteristic) bei einer gegebenen Körnigkeit (smoothness) des Bildes (Resels = unabhängige Einheiten)?


  • wenn mehr: signifikant




36
Correted p-value (FWE)
  • verschiedene levels
    • voxel level: wieviele cluster?
    • cluster level: berücksichtigt Größe
    • set level: berücksichtigt ganzes Ensemble
  • Achtung:
    • voxel level p–Wert manchmal konservativer als Bonferroni! => SPM verwendet dann (klammheimlich) den weniger konservativen Bonferroni-Wert
37
Corrected p-value (FDR)
  • will Fehler der ersten Art minimieren
  • berücksichtigt nicht die clustergröße
  • hat einen Bias (the rich get richer)
    • falls irgendwo eine starke Aktivierung ist (e.g. visueller Kortex), wird die Schwelle stark erniedrigt (evtl. zu Unrecht)
    • bei insgesamt wenig Aktivierungen: fast konservativer als FWE
38
Publizierbare Schwellen
  • Wenn Daten gut:
    • Erstschwelle: p (FWE) < 0.05
    • Berichten: pcorr(FWE) < 0.05 on clusterlevel
  • Wenn Daten weniger gut:
    • Erstschwelle: puncorr < 0.001 ('none')
    • Berichten: pcorr < 0.05 on clusterlevel
  • Wenn Daten ganz schlecht:
    • Erstschwelle: puncorr < 0.005 ('none')
    • Berichten: pcorr < 0.05 on clusterlevel
  • Wenn Daten grottenschlecht:
    • ROI-Analyse
39
Kontraste definieren
  • 2x2 Design = a1 b1 a2 b2
    • Betas:       ß1 ß2 ß3 ß4


  • Haupteffekte:
    •  a>b = [1 -1 1 -1]; b>a = [-1 1 -1 1]
    •  1>2 = [1 1 -1 -1]; 2>1 = [-1 -1 1 1];
  • Interaktion:
    • [1 -1 -1 1]; [-1 1 1 -1]



40
Kontraste definieren
  • F vs. t
    • t-Kontrast: Vektor mit Zeilensumme 0
    • F-Kontrast: Matrix
  • 2x2 Design (a1 b1 a2 b2)
    • Haupteffekte (zweiseitiger Test):
      • F (ab) = [1 -1 1 -1;-1 1 -1 1]
      • F (12) = [1 1 -1 -1;-1 -1 1 1]
    • Interaktion:
      • F (I)= [1 -1 -1 1; -1 1 1 -1]
  • uninteressante Prädiktoren: 0



41
Kontraste definieren
  • Länge des Kontrastvektors (pro Block!):
    • z.B. 6 Bedingungen (hrf & hrf') = 12
    • mit 6 moco params = 18
    • mit 1 Blockmittelwert = 19
  • Exakte Länge für Skripting wichtig!
  • Prädiktoren werden für jede Session/Run neu geschätzt
    • Verlust an df!
    • Grund: Funktionelle Runs sind sehr unterschiedlich (offset, Varianz, scanner drift) Ausreißer stören die Analyse sehr!
    • Am Besten: Alles in einem Rutsch /Scan


42
Kontraste definieren
  • Also warum t-Tests und nicht F-Tests?
    • hätte man gerne, wenn es ginge
    • Geht: FFX; Geht (noch) nicht: RFX
  • Am besten: Einfache 2x2 Designs!
    • 2x3 Design bereits schwer zu rechnen (viele t-tests, statt F-test mit HE/I)
    • Interpretation nicht immer leicht
    • Platz im Artikel begrenzt



43
Statistik-Output
  • soviele wie Prädiktoren:
    • beta_00x.img/.hdr
  • soviele wie Kontraste:
    • con_00x.img/.hdr
    • SpmT_00x.img/.hdr bzw. SpmF_00x.img/.hdr


44
FFX vs RFX
  • FFX = Bisherige Analyse:
    • FFX = fixed effects model
    • Analyse einer VP mit mehreren Sessions/Runs
    • falls mehrere VPs: Analyse als eine VP mit mehreren Sessions!
    • eine extreme VP kann das Ergebnis dominieren!
  • RFX = Analyse über mehrere VPs
    • RFX = random effects model
    • wird nach FFX über die con-images der einzelnen VPs gerechnet (2nd level analyse)
    • erlaubt Verallgemeinern auf Population


45
RFX
  • 2 Schritte:
    • 1. Schritt FFX:
      • Modell schätzen für einzelne VPs
      • Kontraste rechnen lassen
    • 2. Schritt RFX
      • one-sample t-test rechnen über con_images
      • Pro Kontrast und VP ein Bild
      • bis 10 VPs zu konservativ


46
FFX vs. RFX
  • Sensitivität:
    • unter 10 VPs: Fixed Effects Analyse (FFX)
    • über 10 VPs: Random effects Analyse (RFX)
    • FFX: Eine VP kann Resultat dominieren
    • RFX: erlaubt das Verallgemeinern auf die Population
  • RFX-Analyse - Prinzip:
    • 1 Gruppe VPs: über Bilder eines Kontrastes one-sample t-test rechnen
    • 2 Gruppen (Pat. & Kontr.): über Bilder eines Kontrastes two-sample t-test rechnen
    • Neu (SPM2): RFX auch mit F-Kontrasten!

47
RFX
48
RFX
49
RFX - Resultate
  • Model schätzen lassen (SPM fragt)
  • Kontrast definieren:
    • one-sample t-test: 1
    • two-sample t-test: 1 –1
  • Schwelle angeben
  • Resultate ansehen


50
RFX – weitere Covariate
  • pro VP ein Wert (z.B. IQ, Fehlerrate)
51
Statistik
  • Caveat 1:
      • SPM.mat nicht portabel
      • Pfade zu den Dateien fix kodiert
      • Volumes Toolbox schafft Abhilfe
  • Caveat 2:
      • Vorsicht bei der Def. von Kontrasten
      • Man kriegt sie nur schwer wieder aus SPM.mat raus
  • Caveat 3:
      • Ausreisser (> 3 SD): Anfangsscans, zerstörte Scans
      • altes Tool von Russ Poldrack (SPM99): global_plot.m
      • für SPM2: ai_global_plot.m von mir



52
Visualisierung (SPM2)
  • Render       Sections     Slices






53
Render
54
Render
  • new style old style
55
Render
56
Sections
  • geht nur im Resultate-Menü:
    • Resultate, Kontrast auswählen, Schwelle setzen
57
Sections
58
Slices
  • abhängig von Position des Cursors
  • Werte / Schnittebene fix
  • besser: display_slices.m (nur für SPM99)
59
Visualisierungen SPM2
  • Generell:
    • Umständlich über den Kontrastmanager
    • dauert lange bei großem SPM.mat
  • Ausdrucken:
    • screenshot (Qualität soso)
    • besser: Print option => spm.ps
  • Andere Tools:
    • sections: MRIcro
  • Templates zum Visualisieren:
    • alle normalisierten (Anat)-Bilder (unterschiedliche Auflösung)



60
"Endlich:"
  • Endlich:
  • Das Ende!