2012-05-04 5 views
2

私は統計学の学生であり、割り当ての一部としてランダムに生成された正規分布の標本に対して複数の信頼区間を生成しようとするR初心者(年の過小評価)です。正規分布の標本から複数の信頼区間を生成するR

Iは、(二重マトリックス中)N(50、6^2)分布から25個のサイズのサンプルをN = 20を生成する機能を

data <- replicate(25, rnorm(20, 50, 6)) 

を用います。

私の質問は、この配布のサンプルごとに95%の信頼区間を見つける方法です。私はcolMeans(data)とsd(data)を使って各サンプルのサンプル平均値とサンプル標準偏差を見つけることができますが、私はすべてのカラムの信頼区間を生成できる関数を考えようとしていますダブル・マトリックス(データ)内にある。今のところ

、私の(非常に粗)の溶液は、左右の境界の2つのベクトルを生成する機能

left <- function (x,y){x-(qnorm(0.975)*y/sqrt(20))} 
right <- function (x,y){x+(qnorm(0.975)*y/sqrt(20))} 

left(colMeans(data), sd(data) 
right(colMeans(data), sd(data) 

を作成から成ります。私がこれを行うより良い方法があれば教えてください。

+0

一般的なマイナーな編集に加えて、私は先に進んで、あなたのコードのtypoであると仮定して固定して、 'left'と' right'という関数を作りました。私が間違っていると感じたら、転がしても構いません。 – joran

+0

Hmmm、測定平均とS.Dだけに基づくサンプルの信頼区間の一般的な公式がある場合、その式の素敵なベクトル化されたRバージョンを書くことで、すべての解答をすぐに得ることができます。または、私の教授が(インターネットの存在に先立って)一度言ったように、「それを解決しないでください:本のような問題を見つけて、同じことをしてください! :-) –

答えて

3

t.test()機能を使用できるとします。与えられた数のベクトルの平均と95%の信頼区間を返します。あなたのデータを作成した後

# Create your data 
data <- replicate(25, rnorm(20, 50, 6)) 
data <- as.data.frame(data) 

は、あなたがlapply()機能を使用して、すべての列にt.test()機能を適用することができます。

# Apply the t.test function and save the results 
results <- lapply(data, t.test) 

信頼区間または返された平均値のみを表示する場合は、ドル記号演算子を使用して呼び出すことができます。たとえば、元のデータフレームの列1のために、あなたは次のように入力できます。

# Check 95% CI for sample one 
results[[1]]$conf.int[1:2] 

あなたは結果のデータフレームに、これらのデータを保存するのがより説得力のある方法を考え出すことができます。 str()コマンドを使用すると、オブジェクトから取り除くことができる情報の個々のビットをいつでも確認できます。例:

# Example 
example <- t.test(data[,1]) 
str(example) 

これは役立ちます。詳細については、このリンクを試してください:Using R to find Confidence Intervals

関連する問題