2014-01-13 55 views
0

以下代碼對我創建的自定義分佈生成10000個t檢驗。模擬R中t檢驗的顯着性水平

> x <- replicate(10000,{ 
    t.test(rcn(20,.25,25), mu=0, alternative="greater") 
    }) 

我構建意義的經驗水平,所以我對的測試統計量是比相應的t分佈的臨界值,這是1.729(對於t分佈greather數有19個自由度)。

如何在這裏選擇(並計數)這些測試統計?他們的數量超過10000的比例,模擬的總數,將給我我的經驗水平的意義。

+0

請您例如可重複給予rcn'的'定義。 – Beasterfield

+0

@Beasterfield我的問題代表任何分配。我如何選擇數千個具有相同特徵的t檢驗?謝謝。 – JohnK

+1

我明白了,但是你可以從'stats'中選擇一個分配函數,讓人們有機會複製你的代碼。請參閱[如何使一個偉大的R可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。 – Beasterfield

回答

1

您可以直接訪問replicate中的每個t.test的測試統計信息。例如:

x <- replicate(10000, { 
t.test(rcn(20,.25,25), mu=0, alternative="greater")$statistic 
}) 

這將返回一個t值向量。

你可以用你的臨界值進行比較並計算TRUE S:

crit <- 1.729 
sum(x > crit) 
+0

不錯!這是美元符號嗎?它改進了功能? – JohnK

+0

@JohnK'$'用於訪問元素。在這種情況下't.test'返回一個列表。 '$'符號提取名稱爲「statistic」的元素。 –

+0

好吧。非常感謝你。 – JohnK