2016-08-12 4 views
8

私は簡単な質問があります。私は、t検定と相関の両方について、Rでこの動作を見てきました。Rのt検定関数からの間違ったおよび/または一貫性のない自由度があるのはなぜですか?

私は単純な対のt検定をします(この場合は、長さ100のベクトルが2つあります)。したがって、ペアになったt検定のdfは99でなければなりません。しかし、これはt検定の結果出力に現れるものではありません。

dataforTtest.x <- rnorm(100,3,1) 
dataforTtest.y <- rnorm(100,1,1) 
t.test(dataforTtest.x, dataforTtest.y,paired=TRUE) 

これの出力は次のとおりです。

Paired t-test 

data: dataforTtest.x and dataforTtest.y 
t = 10, df = 100, p-value <2e-16 
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval: 
1.6 2.1 
sample estimates: 
mean of the differences 
       1.8 

しかし、私は実際に結果のオブジェクトに見れば、dfが正しいです。

> t.test(dataforTtest.x, dataforTtest.y,paired=TRUE)[["parameter"]] 

df 
99 

私は何か非常に愚かな行方不明ですか? 私はRバージョン3.3.0(2016-05-03)を実行しています

+2

R 3.3.1ではこの現象はありません。どちらの場合もdfは99です。 – joran

+0

R 3.2.4でこれを再現できません。私は99を取得しています – ytk

+0

@ジョランDitoのR 3.2.3 – AlexR

答えて

0

この問題は、オプション(数字= 2)のようなもので行われるRで丸め数値のグローバル設定が変更されている場合に発生します。 。

注この設定変更前t検定の結果:

Paired t-test 

data: dataforTtest.x and dataforTtest.y 
t = 13.916, df = 99, p-value < 2.2e-16 
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval: 
1.700244 2.265718 
sample estimates: 
mean of the differences 
       1.982981 

およびオプションを設定した後(桁= 2):Rにおいて

Paired t-test 

data: dataforTtest.x and dataforTtest.y 
t = 13.916, df = 100, p-value < 2.2e-16 
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval: 
1.700244 2.265718 
sample estimates: 
mean of the differences 
         2 

は、それが変更に危険であることができますこの理由のグローバル設定。ユーザーの知識なしに統計分析の結果を完全に変更することができます。代わりにround()関数を直接数値に使用することも、テスト結果のためにbroomパッケージと組み合わせて使用​​することもできます。

round(2.949,2) 
[1] 2.95 

#and 

require(broom) 

glance(t.test(dataforTtest.x, dataforTtest.y,paired=TRUE)) 

estimate statistic  p.value parameter cnf.low cnf.high  method alternative 
1.831433 11.31853 1.494257e-19  99 1.51037 2.152496 Paired t-test two.sided 
関連する問題