1

私はRを初めて使用するので、何か間違っている可能性がありますが、同じことを行うさまざまな方法を検索しましたが、それでも同じ結果が得られます。次のデータがあります (15 の測定値、3 つの因子、それぞれに 5 つの測定値): 測定値:

##factors: 1, 2, 3

         Y    Z
1     43.0    1
2     40.5    1
3     39.6    1
4     44.9    1
5     37.2    1
6     44.4    2
7     40.5    2
8     40.1    2
9     43.3    2
10    36.1    2
11    41.1    3
12    39.2    3
13    36.4    3
14    37.2    3
15    36.7    3

> を使用して R で一元配置分散分析を実行すると、anova(lm(Y~Z, data=data))F=2.7934、p=0.1185、Df=1 が得られます。aov および AOVModel 関数を使用しても同じ結果が得られます。

ただし、Excel と手動計算 (および実際には Minitab) の両方で、自由度 2 で F=1.728 と p=0.219 が得られます。私はこれを理解できません - 私は何を間違っていますか?

ありがとう

4

1 に答える 1

5

これは、 をdata$Z数値変数として持っているためです。上記の Dason のコメントを参照してください。dataしたがって、Z を係数に変換する必要があります (dataの名前を R ベース オブジェクトの名前であるdat に変更しました)。方法は次のとおりです。

dat$Z <- as.factor(dat$Z)

収量:

> anova(lm(Y~Z, data=dat))
Analysis of Variance Table

Response: Y
          Df Sum Sq Mean Sq F value Pr(>F)
Z          2 26.949 13.4747  1.7281  0.219
Residuals 12 93.568  7.7973  

補足説明を使用strして、変数がどのように格納されているかを確認してください。これは、最もよく使用される R 関数の 1 つです。

そう...

str(dat)あなたに言ったでしょう:

> str(dat)
'data.frame':   15 obs. of  2 variables:
 $ Y: num  43 40.5 39.6 44.9 37.2 44.4 40.5 40.1 43.3 36.1 ...
 $ Z: int  1 1 1 1 1 2 2 2 2 2 ...

因数変換後:

> str(dat)
'data.frame':   15 obs. of  2 variables:
 $ Y: num  43 40.5 39.6 44.9 37.2 44.4 40.5 40.1 43.3 36.1 ...
 $ Z: Factor w/ 3 levels "1","2","3": 1 1 1 1 1 2 2 2 2 2 ...
于 2013-11-05T18:20:37.177 に答える