dati forniti del seguente moduloCome adattare un modello di effetti casuali con Soggetto come casuale in R?
myDat = structure(list(Score = c(1.84, 2.24, 3.8, 2.3, 3.8, 4.55, 1.13,
2.49, 3.74, 2.84, 3.3, 4.82, 1.74, 2.89, 3.39, 2.08, 3.99, 4.07,
1.93, 2.39, 3.63, 2.55, 3.09, 4.76), Subject = c(1L, 1L, 1L,
2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 4L, 5L, 5L, 5L, 6L, 6L, 6L, 7L,
7L, 7L, 8L, 8L, 8L), Condition = c(0L, 0L, 0L, 1L, 1L, 1L, 0L,
0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 1L, 1L,
1L), Time = c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L,
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L)), .Names = c("Score",
"Subject", "Condition", "Time"), class = "data.frame", row.names = c(NA,
-24L))
vorrei modellare punteggio in funzione del soggetto, Stato e Ora. Ogni punteggio del soggetto (umano) è stato misurato tre volte, indicato dalla variabile Tempo, quindi ho ripetuto le misure.
Come posso creare in R un modello di effetti casuali con gli effetti del soggetto montati come casuali?
ADDENDUM: è stato chiesto come ho generato questi dati. Hai indovinato, i dati sono falsi come il giorno è lungo. Il punteggio è il tempo più il rumore casuale e l'essere in Condizione 1 aggiunge un punto a Punteggio. È istruttivo come un tipico setup psicologico. Hai un compito in cui il punteggio delle persone migliora con la pratica (tempo) e un farmaco (condizione == 1) che migliora il punteggio.
Ecco alcuni dati più realistici per gli scopi di questa discussione. Ora i partecipanti simulati hanno un livello di "abilità" casuale che viene aggiunto ai loro punteggi. Inoltre, i fattori sono ora stringhe.
myDat = structure(list(Score = c(1.62, 2.18, 2.3, 3.46, 3.85, 4.7, 1.41,
2.21, 3.32, 2.73, 3.34, 3.27, 2.14, 2.73, 2.74, 3.39, 3.59, 4.01,
1.81, 1.83, 3.22, 3.64, 3.51, 4.26), Subject = structure(c(1L,
1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 4L, 5L, 5L, 5L, 6L, 6L,
6L, 7L, 7L, 7L, 8L, 8L, 8L), .Label = c("A", "B", "C", "D", "E",
"F", "G", "H"), class = "factor"), Condition = structure(c(1L,
1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L,
2L, 1L, 1L, 1L, 2L, 2L, 2L), .Label = c("No", "Yes"), class = "factor"),
Time = structure(c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L,
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), .Label = c("1PM",
"2PM", "3PM"), class = "factor")), .Names = c("Score", "Subject",
"Condition", "Time"), class = "data.frame", row.names = c(NA,
-24L))
Guardalo:
library(ggplot2)
qplot(Time, Score, data = myDat, geom = "line", group = Subject, colour = factor(Condition))
È possibile costruire in modo più conciso un frame di dati utilizzando la funzione 'data.frame': myDat <- data.frame (Punteggio = c (1.84, 2.24, 3.8, 2.3, 3.8, 4.55, 1.13, 2.49, 3.74 , 2.84, 3.3, 4.82, 1.74, 2.89, 3.39, 2.08, 3.99, 4.07, 1.93, 2.39, 3.63, 2.55, 3.09, 4.76), Oggetto = c (1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L), Condizione = c (0L, 0L, 0L, 1L, 1L, 1L , 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L), Tempo = c (1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L)) –
@Chang. La sintassi della struttura è ciò che ottieni quando usi 'dput' in un data.frame. –
@Leoni. Impara qualcosa di nuovo ogni giorno! –