Summary: Una guida rapida alla sperimentazione con soggetti e all'analisi statistica dei dati, nel contesto del design di oggetti interattivi.
Note: Your browser may not currently support MathML. See our browser support page for additional details. You can always view the correct math in the PDF version.
Per la valutazione di interfacce e sistemi interattivi esiste una pletora di paradigmi e tecniche, le quali forniscono per lo più informazioni di tipo qualitativo, oppure informazioni quantitative ma di incerta affidabilità statistica. Invece, se l'elemento di interfaccia da analizzare non è troppo complesso e se si possiedono sufficienti risorse, è possibile adattare alla valutazione di interfacce le tecniche usate nella psicologia sperimentale. In altre parole, si può cercare di fare sperimentazione scientifica con soggetti umani.
La velocità di lettura di un testo su un display è diversa per il font Helvetica rispetto al font Times.
Il ricercatore manipola le variabili indipendenti (es. font) e misura le variabili dipendenti (es. tempo di lettura).
Effetto sull'efficienza di svolgimento di un task dell'introduzione di una nuova versione di software su soggetti esperti e soggetti inesperti.
Esperimento teso a trovare il compromesso ottimo breadth vs. depth negli hyperlink del web. (Larson and Czerwinski, Microsoft, 1998) .
| Condizioni | |||
|---|---|---|---|
| Risultati | 1 | 2 | 3 |
| Media | 58 | 36 | 46 |
| SD | 23 | 16 | 26 |
Se, per via sperimentale, si accerta che la probabilità associata agli eventi è troppo bassa, l'ipotesi nulla viene respinta e si dimostra l'efficacia del trattamento, o l'esistenza di un effetto della variabile dipendente su quella indipendente.
| Situazione Effettiva | ||
|---|---|---|
| Ipotesi Nulla | vera | falsa |
| accetta | corretto | tipo II |
| respingi | tipo I | corretto |
Se prendiamo un campione di 10 programmatori e, di questi, 2
sono donne, cosa possiamo concludere? La probabilità di
ottenere il caso osservato e tutti quelli altrettanto o
più sfavorevoli all'ipotesi nulla è pari a probabilità
di tutte le sequenze con 2 femmine + probabilità di tutte le
sequenze con 1 femmina + probabilità di tutte le sequenze
con 0 femmine. La prima di queste tre probabilità, ad
esempio, si trova come
Si supponga di avere un campione di numerosità
Dati due campioni di
Due software didattici (A e B) vengono confrontati esaminando i voti dei test di due classi di studenti. Ci si chiede se i due software siano diversamente efficaci.
Usiamo il software libero R per analizzare i risultati dei test e rispondere alla domanda. La sequenza di istruzioni
> classeA
[1] 3 4 4 3 2 3 1 3 5 2
> classeB
[1] 5 5 6 7 4 4 3 5 6 5
> profitto <- c(classeA, classeB)
> label <- factor(c(rep("A", 10), rep("B", 10)))
> boxplot(profitto~label, notch=T, xlab="classi", ylab="profitto")
| Boxplot |
|---|
![]() |
> s2A <- var(classeA)
> s2B <- var(classeB)
> (mean(classeA) - mean(classeB))/sqrt(s2A/10 + s2B/10)
[1] -3.872983
> qt(0.975, 18)
[1] 2.100922
qt(), si
noti come il test vada condotto a due
code, e quindi α divisa per due, perché
non c'è una direzione preferenziale di confronto: ci
interessa solo la diversità tra le due classi e non una
relazione d'ordine. Il secondo parametro è il numero
complessivo di gradi di libertà. Poiché il valore
calcolato è più grande del valore critico l'ipotesi
nulla può essere respinta. Rovesciando il ragionamento,
possiamo attribuire un valore di probabilità
all'osservazione, supponendo che valga l'ipotesi
nulla. Questa probabilità è
> 2*pt(-3.872983, 18)
[1] 0.001114540
R, il t-test si può condurre con
una sola istruzione
> t.test(classeA, classeB)
Welch Two Sample t-test
data: classeA and classeB
t = -3.873, df = 18, p-value = 0.001115
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-3.0849115 -0.9150885
sample estimates:
mean of x mean of y
3 5
Con il software libero Octave, la stessa analisi si svolgerebbe con il comando
octave> classeA = [3 4 4 3 2 3 1 3 5 2];
octave> classeB = [5 5 6 7 4 4 3 5 6 5];
octave> [p, t, df] = t_test_2(classeA, classeB, "<>")
p = 0.0011145
t = -3.8730
df = 18
L'ipotesi fondante per la verifica di ipotesi sulle medie è
che la popolazione sia normale, e di varianza omogenea tra i
campioni. Il metodo è robusto a variazioni dalla
normalità. Però deve valere l'ipotesi di indipendenza tra le
medie, e questo non si può avere con test di tipo "within
subjects". Per ovviare a questo problema si può però
riformulare il test considerando i dati come provenienti da
un unico campione di differenze di punteggi
Si abbiano
Se si hanno
Si studi la relazione tra la prestazione in un test di
apprendimento di un software (variabile
Ecco una sessione in R che produce la
regressione ai minimi quadrati (funzione
lm(), per linear model) e traccia il
grafico di Figura 2.
> risp_corrette
[1] 80 88 89 62 67 37 62 78 62 77 81 41 26 41 37 57 35 58 22 25 46 18 56 26 38 21
> help
[1] 16 25 21 13 17 2 11 14 8 12 17 7 6 16 17 21 14 25 7 12 19 9 17 14 16 6
> esperienza
[1] 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> rce <- split(risp_corrette, esperienza)
> he <- split(help, esperienza)
> plot(help, risp_corrette, type="n", ylab="Risposte corrette",
+ xlab="invocazioni help")
> points(he[[1]], rce[[1]], pch=16)
> points(he[[2]], rce[[2]])
> lm(risp_corrette ~ help + esperienza)
Call:
lm(formula = risp_corrette ~ help + esperienza)
Coefficients:
(Intercept) help esperienza
3.738 2.280 33.962
> abline(3.738, 2.28)
> abline(3.738 + 33.962, 2.28, lty=2)
| Regressione multipla |
|---|
![]() |
Indicata con
sono associabili alla 3 di List 6:
Se si deve verificare l'ipotesi nulla
Supponiamo di avere un modello con
Maggiore è l'incremento di errore
dovuto alla esclusione di
La Equazione 12 può anche essere scritta in termini di coefficiente di determinazione:
Si studi la relazione tra lo sviluppo di capacità
logiche nella adolescenza (misurate con un test
logictest) e il tempo speso settimanalmente
ai videogame (vg) o alla televisione
(tv). Lo studio è affrontato molto
semplicemente in R.
> vg
[1] 12 7 23 8 19 24 5 31 9 21 24 17 19 6 16 12 12 11 33 14 4 2 21 18 21
> tv
[1] 32 4 12 12 22 21 14 6 9 26 19 18 12 21 18 24 23 23 12 21 26 8 23 12 26
> logictest
[1] 34 12 67 46 43 78 56 69 23 67 89 73 26 41 52 19 83 38 56 43 11 21 54 56 87
> summary(lm(logictest~tv+vg))
Call:
lm(formula = logictest ~ tv + vg)
Residuals:
Min 1Q Median 3Q Max
-28.192 -14.089 1.308 11.183 36.416
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 11.1431 12.4141 0.898 0.379108
tv 0.6083 0.5203 1.169 0.254910
vg 1.7875 0.4592 3.893 0.000783 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 18.45 on 22 degrees of freedom
Multiple R-Squared: 0.4249, Adjusted R-squared: 0.3727
F-statistic: 8.129 on 2 and 22 DF, p-value: 0.002274
Il prospetto fornito da summary(lm()) si
può interpretare come segue
octave lo stesso f-test si svolgerebbe con il comando
octave> [p, f, df_num, df_den] = f_test_regression(logictest',
> [ones(1,25);tv;vg]',[[0 1 0];[0 0 1]])
p = 0.0022740
f = 8.1286
df_num = 2
df_den = 22
Si riprenda lo Esempio 6 e ci si chieda se
è significativo il grado di esperienza. In
R, da una
summary(lm(risp_corrette~help+esperienza))
Multiple R-Squared: 0.9051, Adjusted R-squared: 0.8969
> cor(risp_corrette, help) ^ 2
[1] 0.3099675
> summary(lm(risp_corrette~help-esperienza))
...
Multiple R-Squared: 0.31, Adjusted R-squared: 0.2812
Inoltre, possiamo effettuare il t-test per verificare se l'help-on-line è efficace per entrambi i gruppi. Anche tale informazione si può estrarre dal prospetto di
summary(lm(risp_corrette~help+esperienza))
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.7382 3.9736 0.941 0.357
help 2.2797 0.2448 9.312 2.89e-09 ***
esperienza 33.9622 2.8275 12.011 2.17e-11 ***
In octave, f-test e t-test si conducono con le due chiamate
octave> [p, f, dfn, dfd] = f_test_regression(risp_corrette,
> [ones(1,26); esperienza; help]', [0, 1, 0])
p = 2.1692e-11
f = 144.27
dfn = 1
dfd = 23
octave> [p, t, dfn] = t_test_regression(risp_corrette,
> [ones(1,26); esperienza; help]', [0, 0, 1], 0, ">")
p = 1.4428e-09
t = 9.3115
dfn = 23
esperienza e
help. Ciò si fa con un altro f-test,
aggiungendo il prodotto esperienza.*help, e
usando i coefficienti di determinazione con e senza il
prodotto delle due variabili. In Octave:
octave> [p, f, dfn, dfd] = f_test_regression(risp_corrette,
> [ones(1,26); esperienza; help; esperienza.*help]', [0, 0, 0, 1])
p = 0.66901
f = 0.18776
dfn = 1
dfd = 22
R, si fa
> summary(lm(risp_corrette ~ help + esperienza + help:esperienza))
Multiple R-Squared: 0.9059, Adjusted R-squared: 0.8931
> 2*pf(0.19, 1, 22)
[1] 0.6656723
esperienza e help e quindi i
loro effetti si possono studiare
separatamente. Viceversa, la presenza di interazione
significherebbe che gli effetti di ciascuna variabile
mutano a seconda dei valori assunti dall'altra.
Con il termine ANOVA si indica usualmente una analisi della regressione multipla in cui tutte le variabili indipendenti sono qualitative. Lo scopo è quello di stabilire se esistono differenze statisticamente significative tra i gruppi corrispondenti alle variabili indipendenti.
| Group 1 | 1 | 0 | ... | 0 |
| Group 2 | 0 | 1 | ... | 0 |
| ... | ... | ... | ... | ... |
| Group m-1 | 0 | 0 | ... | 1 |
| Group m | 0 | 0 | ... | 0 |
Con questa codifica la matrice
Il test si effettua sulla statistica
Si misuri mediante un test il profitto di tre gruppi di studenti precedentemente sottoposti a tre programmi di addestramento. Si intende verificare se il tipo di addestramento è ininfluente sul risultato del test.
In R l'ANOVA si esegue nel seguente modo:
> test <- c(9, 16, 12, 10, 8, 14, 8, 11, 7, 9, 20, 19, 14, 17, 12)
> addestramento <- c("A", "A", "A", "A", "A", "B", "B", "B", "B", "B",
+ "C", "C", "C", "C", "C")
> summary(aov(test~factor(addestramento)))
Df Sum Sq Mean Sq F value Pr(>F)
factor(addestramento) 2 123.600 61.800 6.3931 0.01288 *
Residuals 12 116.000 9.667
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Octave la stessa analisi si svolge con
octave> y1 = [9 16 12 10 8 14 8 11 7 9 20 19 14 17 12];
octave> g = [1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3];
octave> anova(y1, g)
One-way ANOVA Table:
Source of Variation Sum of Squares df Empirical Var
*********************************************************
Between Groups 123.6000 2 61.8000
Within Groups 116.0000 12 9.6667
---------------------------------------------------------
Total 239.6000 14
Test Statistic f 6.3931
p-value 0.0129
ans = 0.012877
Nell'analisi ANOVA l'ipotesi nulla