-2

t検定を行う際に助けが必要です。単一のデータセットに対して行う方法は知っていますが、2 サンプルの t 検定を行うには助けが必要です。data1 という 1 つのデータセットがあります。

4

2 に答える 2

7

データ:

data1 <- data.frame(n = 15, mean = 14, sd = 8)
data2 <- data.frame(n = c(17, 5, 8), mean = c(19, 17, 11), sd = c(7, 6, 9))

t 検定関数 (観測数、平均値、および標準偏差に基づく):

T.test <- function(n, mean, sd) {
  s <- sum((n - 1) * sd^2) / (sum(n) - 2) # weighted variance
  t <- sqrt(prod(n) / sum(n)) * (diff(mean) / sqrt(s)) # t statistic
  df <- sum(n) - 2  # degrees of freedom
  p <- (1 - pt(abs(t), df)) * 2 # p value
  c(t = t, p = p)
}

関数を のすべての行に適用しますdata2

apply(data2, 1, function(x) T.test(c(x[1], data1$n),
                                   c(x[2], data1$mean), 
                                   c(x[3], data1$sd)))

出力には、 のすべての行の t 値と p 値が表示されますdata2

         [,1]       [,2]      [,3]
t -1.98618371 -0.8215838 0.8730255
p  0.05621594  0.4220631 0.3925227
于 2013-03-20T12:14:14.710 に答える
1

Rにも組み込み関数があります

?t.test

説明 データのベクトルに対して 1 標本および 2 標本の t 検定を実行します。

#just an easy example
a = c(12.9, 13.5, 12.8, 15.6, 17.2, 19.2, 12.6, 15.3, 14.4, 11.3)
b = c(12.7, 13.6, 12.0, 15.2, 16.8, 20.0, 12.0, 15.9, 16.0, 11.1)

t.test(a,b, paired=TRUE)

Paired t-test

data: a and b
t = -0.2133, df = 9, p-value = 0.8358
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-0.5802549 0.4802549
sample estimates:
mean of the differences
-0.05
于 2013-03-20T13:52:38.050 に答える