2.2.5. Feladatok megoldása kétmintás t-próbára

8.13. feladat megoldása. Sovány és túlsúlyos nők napi energiafelhasználása

A kérdés megválaszolása előtt vizsgáljuk meg az adattábla szerkezetét:

data(energy, package = "ISwR")
str(energy)
'data.frame':   22 obs. of  2 variables:
 $ expend : num  9.21 7.53 7.48 8.08 8.09 ...
 $ stature: Factor w/ 2 levels "lean","obese": 2 1 1 1 1 1 1 1 1 1 ...

A fenti outputból látható, hogy az alkat (stature) változó kétszintű faktor, az energia-felhasználás értékeit két csoportra osztja. A kétmintás t-próba végrehajtása előtt ebben a formában kell tárolni az adatainkat, így a szokásos formula argumentumot adhatjuk a függvényeinknek (pl. t.test(), wilcox.test()).

A kétmintás t-próba végrehajtása a fentiek alapján:

t.test(expend ~ stature, data = energy)

    Welch Two Sample t-test

data:  expend by stature
t = -3.856, df = 15.92, p-value = 0.001411
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -3.459 -1.004
sample estimates:
 mean in group lean mean in group obese 
              8.066              10.298 

Láthatjuk, hogy a t.test() alapértelmezett hívása a Welch-próba végrehajtását jelenti. Amennyiben a varianciák a két csoportban megegyeznek, akkor a t-próba végrehajtása is kezdeményezhető:

t.test(expend ~ stature, data = energy, var.equal = T)

    Two Sample t-test

data:  expend by stature
t = -3.946, df = 20, p-value = 0.000799
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -3.411 -1.052
sample estimates:
 mean in group lean mean in group obese 
              8.066              10.298 
t.test(x = energy$expend[energy$stature == "lean"], y = energy$expend[energy$stature == 
    "obese"], data = energy, var.equal = T)

    Two Sample t-test

data:  energy$expend[energy$stature == "lean"] and energy$expend[energy$stature == "obese"]
t = -3.946, df = 20, p-value = 0.000799
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -3.411 -1.052
sample estimates:
mean of x mean of y 
    8.066    10.298 
8.14. feladat megoldása. Kétmintás t-próba eredményének kézi számítása

Először oldjuk meg a feldatot a t.test() függvénnyel.

magan <- c(13600, 13495, 16590, 17300, 23400, 12500)
allami <- c(7050, 9000, 6450, 9758, 7050, 7871, 16100)
t.test(x = magan, y = allami, var.equal = T)

    Two Sample t-test

data:  magan and allami
t = 3.491, df = 11, p-value = 0.005049
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
  2627 11589
sample estimates:
mean of x mean of y 
    16148      9040 

Mintaátlagok kiszámítása:

(mean.x <- mean(magan))
[1] 16148
(mean.y <- mean(allami))
[1] 9040

Szabadsági fokok száma:

(df <- length(magan) - 1 + length(allami) - 1)
[1] 11

A standard hiba és a t próbastatisztika értéke:

var.e <- ((length(magan) - 1) * var(magan) + (length(allami) - 1) * var(allami))/(length(magan) + 
    length(allami) - 2)
(se <- sqrt((var.e/length(magan)) + (var.e/length(allami))))
[1] 2036
(t.stat <- (mean.x - mean.y)/se)
[1] 3.491

A p-érték jelen kétoldali próba esetén:

2 * (1 - pt(q = t.stat, df = df))
[1] 0.005049

A 95%-os konfidencia-intervallum jelen kétoldali próba esetén:

(mean.x - mean.y) + c(-1, +1) * (qt(p = 1 - 0.05/2, df = df) * se)
[1]  2627 11589

Most oldjuk meg a feladatot Welch-féle d-próbával!

magan <- c(13600, 13495, 16590, 17300, 23400, 12500)
allami <- c(7050, 9000, 6450, 9758, 7050, 7871, 16100)
t.test(x = magan, y = allami, var.equal = F)

    Welch Two Sample t-test

data:  magan and allami
t = 3.436, df = 9.776, p-value = 0.006584
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
  2485 11731
sample estimates:
mean of x mean of y 
    16148      9040 

Mintaátlagok kiszámítása:

(mean.x <- mean(magan))
[1] 16148
(mean.y <- mean(allami))
[1] 9040

Szabadsági fokok száma:

a <- var(magan)/length(magan)
b <- var(allami)/length(allami)
(df <- (a + b)^2/((a^2/(length(magan) - 1)) + b^2/(length(allami) - 1)))
[1] 9.776

A standard hiba és a t próbastatisztika értéke:

(se <- sqrt((var(magan)/length(magan)) + (var(allami)/length(allami))))
[1] 2068
(t.stat <- (mean.x - mean.y)/se)
[1] 3.436

A p-érték jelen kétoldali próba esetén:

2 * (1 - pt(q = t.stat, df = df))
[1] 0.006584

A 95%-os konfidencia-intervallum jelen kétoldali próba esetén:

(mean.x - mean.y) + c(-1, +1) * (qt(p = 1 - 0.05/2, df = df) * se)
[1]  2485 11731
8.15. feladat megoldása. Egymintás t-próba az lsr csomagból

Először oldjuk meg a feldatot a t.test() függvénnyel, hogy lássuk a klasszikus outputot:

magan <- c(13600, 13495, 16590, 17300, 23400, 12500)
allami <- c(7050, 9000, 6450, 9758, 7050, 7871, 16100)
t.test(x = magan, y = allami, var.equal = T)

    Two Sample t-test

data:  magan and allami
t = 3.491, df = 11, p-value = 0.005049
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
  2627 11589
sample estimates:
mean of x mean of y 
    16148      9040 

Az lsr csomag independentSamplesTTest() függvényének hívása csak a formula argumentumot fogadja, így alakítsuk át a két független adatvektort egy hosszú formátumú adattáblába:

magan <- c(13600, 13495, 16590, 17300, 23400, 12500)
allami <- c(7050, 9000, 6450, 9758, 7050, 7871, 16100)
library(reshape2)
d <- melt(list(magán = magan, állami = allami))
names(d) <- c("tandij", "iskola")
d$iskola <- factor(d$iskola, levels = c("magán", "állami"))
d
   tandij iskola
1   13600  magán
2   13495  magán
3   16590  magán
4   17300  magán
5   23400  magán
6   12500  magán
7    7050 állami
8    9000 állami
9    6450 állami
10   9758 állami
11   7050 állami
12   7871 állami
13  16100 állami

Most elvégezzük a kétmintás t-próbát:

library(lsr)
independentSamplesTTest(formula = tandij ~ iskola, data = d, var.equal = T)

   Student's independent samples t-test 

Outcome variable:   tandij 
Grouping variable:  iskola 

Descriptive statistics: 
                magán   állami
   mean     16147.500 9039.857
   std dev.  4023.744 3325.547

Hypotheses: 
   null:        population means equal for both groups
   alternative: different population means in each group

Test results: 
   t-statistic:  3.491 
   degrees of freedom:  11 
   p-value:  0.005 

Other information: 
   two-sided 95% confidence interval:  [2626.578, 11588.708] 
   estimated effect size (Cohen's d):  1.942 

A feladat megoldása Welch-féle d-próbával:

library(lsr)
independentSamplesTTest(formula = tandij ~ iskola, data = d, var.equal = F)

   Welch's independent samples t-test 

Outcome variable:   tandij 
Grouping variable:  iskola 

Descriptive statistics: 
                magán   állami
   mean     16147.500 9039.857
   std dev.  4023.744 3325.547

Hypotheses: 
   null:        population means equal for both groups
   alternative: different population means in each group

Test results: 
   t-statistic:  3.436 
   degrees of freedom:  9.776 
   p-value:  0.007 

Other information: 
   two-sided 95% confidence interval:  [2484.598, 11730.687] 
   estimated effect size (Cohen's d):  1.926