EinfĂŒhrung

Uns interessiert, wie Daten entstanden sind. Wir können Daten deskriptiv beschreiben. Aber auch da haben wir bereits ein Vorstellung vom Prozess, der die Daten generiert hat. Das Ziel ist es, von den Daten zu lernen, sie zu beschreiben, vorherzusagen und zu erklÀren. Das folgende Beispiel basiert auf diesem Buch.

Planetare Bewegung

Beobachtung/Daten:

  • Position der Planeten am Himmel ĂŒber die Zeit
  • Einige Planeten Ă€nderen plötzlich ihre Richtung
  • Nach einiger Zeit nehmen sie ihren ursprĂŒnglichen Weg wieder auf

Geozentrisches Modell

Heliozentrisches Modell

👉 Die Daten lassen sich nur mit einem Modell des zugrunde liegenden Prozesses erklĂ€ren

👉 Modelle an sich können nicht beobachtet werden

👉 Es gibt fast immer mehrere Modelle, welche die Daten erklĂ€ren können

Daten generierender Prozess

Im Beispiel oben versuchen wir anhand der Daten heraus zu finden, wie das Universum aufgebaut ist. Wir verwenden ein Modell um Informationen aus den Daten zu gewinnen. Wechseln wir nun zu einem etwas einfacheren Beispiel. Stellen Sie sich vor wir werfen einen Stein. Die Endposition des Steins hÀngt von den KrÀften ab, die auf den Stein wirken.

Verbales Modell

Beginnen wir mit einem verbalen Modell von diesem Prozess. Die Endposition des Steins hĂ€ngt von der Kraft und der Richtung (Input) des Wurfs ab. Faktoren wie z.B. der Luftwiderstand oder die Gravitationskraft berĂŒcksichtigen wir vorerst nicht in unserem Modell, da sie konstant sind.

flowchart TD
  i((Input)):::A --> p((Position)):::B
  
  classDef A fill:#ffffff, r:40px
  classDef B fill:#e5e4e4

Hands-on: Simulation verbales DAG

Den Prozess, der durch das verbale DAG beschrieben wird, wiederholen wir 10 Mal. Der Input bleibt konstant. Bei jeder DurchfĂŒhrung notieren wir die Endposition des Steins.

  1. Überlegen Sie sich, wie diese Daten aussehen.

  2. Simulieren (generieren) Sie diese Daten in R.

  3. Machen Sie eine sinnvolle Abbildung der simulierten Daten.

Statistisches Modell

BerĂŒcksichtigen wir nun, dass der Stein von einer Person geworfen wird. Die Person zielt immer auf die gleiche Stelle (ÎŒ). Es ist aber unmöglich den Stein jedes Mal exakt gleich zu werfen. Es gibt also eine gewisse Variation der beobachteten Endpositionen (σ).

flowchart TD
  mu((Ό)):::a --> i((Input)):::A
  s((σ)):::a --> i
  i(("Input \n N(ÎŒ,σ)")):::A --> p((Position)):::B

  classDef a fill:#ffffff, r:20px
  classDef A fill:#ffffff, r:40px
  classDef B fill:#e5e4e4

Hands-on: Simulation

Den Prozess, der durch das (statistische) DAG beschrieben wird, wiederholen wir 10 Mal. Der Input ist nun normal verteilt. Bei jeder DurchfĂŒhrung notieren wir die Endposition des Steins.

  1. Überlegen Sie sich, wie diese Daten aussehen.

  2. Simulieren (generieren) Sie diese Daten in R.

  3. Machen Sie eine sinnvolle Abbildung der simulierten Daten.

Simulation vs. Inferenz

mu = 5
sigma = 0.2
sim_data = tibble(
    pos = rnorm(n = 10, mu, sigma)
    )

head(sim_data)
head(d)
fit = lm(x ~ 1,
         data = d)

coef(fit)["(Intercept)"]
sigma(fit)

Simulation

Wir wĂ€hlen Werte fĂŒr die Modell-Parameter:

Damit können wir Daten simulieren:

# A tibble: 6 × 1
    pos
  <dbl>
1  5.24
2  4.84
3  5.23
4  5.07
5  5.16
6  5.00

Inferenz (ParameterschÀtzung)

Wir beginnen mit Daten. Die Modell parameter sind uns nicht bekannt.

# A tibble: 6 × 1
      x
  <dbl>
1  4.31
2  4.26
3  4.23
4  4.44
5  4.38
6  4.12

Basierend auf dem DAG formulieren wir ein lineares Modell. In diesem Fall schÀtzen wir nur den Intercept. Mit der Funktion lm() können wir die Parameter von diesem Modell schÀtzen (frequentistisch).

(Intercept) 
    4.29956 
[1] 0.07045796

Kategorialer PrÀdiktor - Planet

flowchart TD
  g((Gravitation)):::A --> p((Position)):::B
  i((Input)):::A --> p
  
  classDef A fill:#ffffff, r:40px
  classDef B fill:#e5e4e4

In diesem Fall haben wir die Endposition auf der Erde und auf dem Mond gemessen.

# A tibble: 6 × 2
  planet   pos
  <chr>  <dbl>
1 erde    5.19
2 erde    5.10
3 erde    5.14
4 mond    7.26
5 mond    6.87
6 mond    6.80

Hier fĂŒgen wir dem linearen Modell einen kategorialen PrĂ€diktor hinzu und schĂ€tzen die Parameter mit der Funktion lm().

lm(pos ~ 1 + planet,
   data = d_cat)

Call:
lm(formula = pos ~ 1 + planet, data = d_cat)

Coefficients:
(Intercept)   planetmond  
      5.000        2.058  

Kontinuierlicher PrÀdiktor - Körpergrösse

flowchart TD
  g((Körpergrösse)):::A --> p((Position)):::B
  i((Input)):::A --> p
  
  classDef A fill:#ffffff, r:40px
  classDef B fill:#e5e4e4

Hier interessiert uns der Einfluss der Körpergrösse auf die Endposition eines geworfenen Steins.

# A tibble: 6 × 2
  grösse   pos
   <dbl> <dbl>
1    165  5.06
2    165  5.11
3    165  5.08
4    170  6.04
5    170  6.19
6    170  5.87

Hier fĂŒgen wir dem linearen Modell einen kontinuierlichen PrĂ€diktor hinzu und schĂ€tzen die Parameter mit der Funktion lm().

lm(pos ~ 1 + grösse,
   data = d_cont)

Call:
lm(formula = pos ~ 1 + grösse, data = d_cont)

Coefficients:
(Intercept)       grösse  
   -30.1772       0.2122  
Hands-on: Parameter Recovery

Mit parameter recovery kann ĂŒberprĂŒft werden, wie gut die Parameter des Modells geschĂ€tzt werden können. Dazu werden zu erst Daten simuliert. In der anschliessenden Analyse der Daten sieht man wie nahe die geschĂ€tzten Parameter den wahren (in der Simulation verwendeten) sind.

  1. Entscheiden Sie sich fĂŒr ein Modell mit einem kategorialen oder einem kontinuierlichen PrĂ€diktor.

  2. Simulieren (generieren) Sie die entsprechenden Daten in R.

  3. Analysieren Sie die Simulierten Daten mit dem entsprechenden Modell.

    • Wie nahe ist die SchĂ€tzung an den wahren Parametern?
    • Von welchen Faktoren könnte das abhĂ€ngen?

Reuse

Citation

BibTeX citation:
@online{fitze,
  author = {Fitze, Daniel and Wyssen, Gerda},
  title = {EinfĂŒhrung},
  url = {https://kogpsy.github.io/neuroscicomplabFS24//pages/chapters/Modeling_1.html},
  langid = {en}
}
For attribution, please cite this work as:
Fitze, Daniel, and Gerda Wyssen. n.d. “EinfĂŒhrung.” https://kogpsy.github.io/neuroscicomplabFS24//pages/chapters/Modeling_1.html.