★ 独立でない2つの平均の差の検定 ★

6925. 独立でない2つの平均の差の検定 トウワ 2005/06/14 (火) 01:11
└6929. Re: 独立でない2つの平均の差の検定 青木繁伸 2005/06/14 (火) 07:25
 └6949. Re^2: 独立でない2つの平均の差の検定 マスオ 2005/06/14 (火) 22:36
  └6952. Re^3: 独立でない2つの平均の差の検定 青木繁伸 2005/06/14 (火) 23:07
   └6954. Re^4: 独立でない2つの平均の差の検定 マスオ 2005/06/14 (火) 23:56
    └6956. Re^5: 独立でない2つの平均の差の検定 マスオ 2005/06/15 (水) 00:33
     └6992. Re^6: 独立でない2つの平均の差の検定 マスオ 2005/06/16 (木) 23:42


6925. 独立でない2つの平均の差の検定 トウワ  2005/06/14 (火) 01:11
こういうことをしている例をあまり見たことがないのですが,
全体の平均値と,全体に含まれるあるカテゴリの平均値の差の検定についてお聞きします。

例えば以下のような集計データで,

  全体 カテゴリ1 カテゴリ2
--------------------------------
   N  300  200  100
     --------------------------------
  製品1 4.2   4.4   4.0
  製品2 3.3 3.2  3.5
(データは5点尺度評価の平均値)

全体(N=300)の製品1に対する評価の平均点4.2と,
カテゴリ1(N=200)の製品1に対する評価の平均点4.4の間に
有意な差があるかを知りたい場合です。

このような場合,「対応のある平均値の差の検定」をして良いものかどうかわかりません。

また,何か別の検定方法があれば,教えていただけますと幸いです。

よろしくお願いします。




     [このページのトップへ]


6929. Re: 独立でない2つの平均の差の検定 青木繁伸  2005/06/14 (火) 07:25
http://aoki2.si.gunma-u.ac.jp/lecture/mb-arc/arc001/047.html
が参考になりますか・・・

どうしてもやりたければ,全体における平均値を母平均の推定値と見て(ほんとうにそのように考えて良いかどうか。。。),母平均の検定を行うというのもありかな?

5点尺度評価の平均値を計算することの妥当性も問題でしょうね。

> このような場合,「対応のある平均値の差の検定」をして良いものかどうかわかりません。

そもそも,対応さえないでしょう?
対応のある平均値の差の検定を再度チェックすべきですね。

     [このページのトップへ]


6949. Re^2: 独立でない2つの平均の差の検定 マスオ  2005/06/14 (火) 22:36
対応のない2群の平均の差の検定と同じことではありませんか?
分散分析の線形モデルを考えれば,各カテゴリーの偏回帰係数は総平均との差を表しており,これが0でないことを検定すればよいのでしょう.これは2水準であれば2群の差のt検定と同じ.

y1 <- rnorm(200)
y1 <- y1-mean(y1)+4.4 #平均4.4に調整
y2 <- rnorm(100)
y2 <- y2-mean(y2)+4.0
y <- c(y1,y2)
x <- c(rep(1,200),rep(-1,100))
summary(lm(y~x))$coeff
  Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.2 0.06160211 68.179479 7.699365e-184
x 0.2 0.06160211 3.246642 1.300912e-03

t.test(y1,y2,var.equal=TRUE)$p.value
[1] 0.001300912

ただ,アンバランスな場合,総平均を重み付き平均(4.4*200+4.0*100)/300=4.27 と考えると,どうなるのかよくわかりません.

     [このページのトップへ]


6952. Re^3: 独立でない2つの平均の差の検定 青木繁伸  2005/06/14 (火) 23:07
「カテゴリ1」+「カテゴリ2」=「全体」
という構成だというのです。
カテゴリというかサブ・サンプルといった方が良いと思いますが。

カテゴリ1とカテゴリ2なら,普通の独立2標本の平均値の差の検定ですが,カテゴリ1と全体の比較では,独立2標本ではありません。
y1 <- rnorm(200)
y2 <- rnorm(100, mean=0.3)
y3 <- c(y1, y2)
で,
t.test(y1, y3) # !!! t.test(y1, y2) ではなくて!!
をするというのですよ。それはちょっと無理でしょう。

なにも考えずに計算式に従って,プールした分散の自由度は200+300-2=498 ですよ。全体でデータ数が300しかないのに。この単純なことを考えても,おかしいのは誰にも分かると思いますが。要するに,データが独立ではないからです。

     [このページのトップへ]


6954. Re^4: 独立でない2つの平均の差の検定 マスオ  2005/06/14 (火) 23:56
> t.test(y1, y3) # !!! t.test(y1, y2) ではなくて!!
> をするというのですよ。それはちょっと無理でしょう。

↑これは無理ですね.意味ないです.

私が読み取ったのは,トウワさんはカテゴリ1の平均4.4と全体の平均4.2との差0.2の有意性を検定したいのではないかと思ったのですが.
それは結局,カテゴリ1とカテゴリ2の平均の差の検定と同じことになるということを言いたかったのです.

     [このページのトップへ]


6956. Re^5: 独立でない2つの平均の差の検定 マスオ  2005/06/15 (水) 00:33
結局,どこを基準にしても有意確率は同じですね.

y1 <- rnorm(200)
y1 <- y1-mean(y1)+4.4
y2 <- rnorm(100)
y2 <- y2-mean(y2)+4.0
y <- c(y1,y2)

# mean(y2)=4.0 を基準
x <- c(rep(1,200),rep(0,100))
summary(lm(y~x))$coeff
      Estimate Std. Error  t value   Pr(>|t|)
(Intercept)   4.0 0.09833804 40.676020 1.145640e-123
x        0.4 0.12043901 3.321183 1.007943e-03

# mean(c(mean(y1),mean(y2)))=4.2 を基準
x <- c(rep(1,200),rep(-1,100))
summary(lm(y~x))$coeff
      Estimate Std. Error  t value   Pr(>|t|)
(Intercept)   4.2 0.0602195 69.744845 1.322290e-186
x        0.2 0.0602195 3.321183 1.007943e-03

# mean(y)=4.2666... を基準
x <- c(rep(1,200),rep(-2,100))
summary(lm(y~x))$coeff
       Estimate Std. Error  t value   Pr(>|t|)
(Intercept) 4.2666667 0.05677549 75.149795 9.545573e-196
x      0.1333333 0.04014634 3.321183 1.007943e-03

     [このページのトップへ]


6992. Re^6: 独立でない2つの平均の差の検定 マスオ  2005/06/16 (木) 23:42
対比で考えた方が早かったようです.

2水準のとき,その母平均をμ1,μ2として,c1=(1,-1)と c2=(1/2,-1/2)の対比をとると,それぞれ μ1 - μ2 と μ1/2 - μ2/2 = μ1 - (μ1+μ2)/2.μ1とμ2の差が0である確率と,μ1と全体の平均(μ1+μ2)/2の差が0である確率は等しくなります.
同様に,3水準であれば,c3=(2/3,-1/3,-1/3)の対比をとれば,μ1 - (μ1+μ2+μ3)/3 = 0 について検定できます.

これも結局,線形モデルでの偏回帰係数の検定と同じです.

library(gmodels)
n1 <- 200; n2 <- 100; n3 <- 150
y1 <- rnorm(n1); y1 <- y1-mean(y1)+4.4
y2 <- rnorm(n2); y2 <- y2-mean(y2)+4.0
y3 <- rnorm(n3); y3 <- y3-mean(y3)+3.8
y <- c(y1,y2,y3)

x <- factor(rep(1:3,c(n1,n2,n3)))
contrast <- matrix(c(2/3,-1/3,-1/3,-1/3,2/3,-1/3),ncol=3,byrow=TRUE)
fit.contrast(aov(y~x),x,contrast)
             Estimate Std. Error  t value   Pr(>|t|)
x c=(0.67,-0.33,-0.33) 0.33333333 0.06616735 5.0377313 6.849627e-07
x c=(-0.33,0.67,-0.33) -0.06666667 0.07854404 -0.8487807 3.964576e-01

z1 <- rep(c(1,0,-1),c(n1,n2,n3))
z2 <- rep(c(0,1,-1),c(n1,n2,n3))
summary(lm(y~z1+z2))$coeff
        Estimate Std. Error  t value   Pr(>|t|)
(Intercept) 4.06666667 0.05086325 79.9529500 6.416628e-267
z1      0.33333333 0.06616735 5.0377313 6.849627e-07
z2     -0.06666667 0.07854404 -0.8487807 3.964576e-01

#fit.contrast関数やっとこさで見つけました.RはGoogleで検索しにくいのがつらい(涙)

     [このページのトップへ]


● 「統計学関連なんでもあり」の過去ログ--- 034 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る