2011-01-11 13 views
0

私はここで新鮮な目を持つ誰かが私を助けることができると思っています!私は実験の力を発見しようとしていますので、次のことを行っている:Rパワーと信号強度コード

height <- seq(0, 151) 
social <- rpois(length(height), 9 + 0.2 * (height)) 
m2 <- glm(score ~ height, family = poisson) 
summary(m2) 
m3 <- update(m2, ~. - height) 
anova(m2, m3, test = "Chi") 
test.results <- anova(m2, m3, test = "Chi") 
names(test.results) 
test.results$"P(>|Chi|)" 
test.results$"P(>|Chi|)"[2] 
get.p.value <- function(slope) { 
    social <- rpois(length(height), 9 + slope * (height)) 
    m2 <- glm(score ~ height, family = poisson) 
    m3 <- update(m2, ~. - r.hand) 
    anova(m2, m3, test = "Chi")$"P(>|Chi|)"[2] 
} 
p.vals <- numeric(1000) 
for (i in 1000) { 
    p.vals[-0.5] <- get.p.value(-0.5) 
} 
p.vals 
power.of.test <- length(p.vals[p.vals < 0.05])/length(p.vals) 
power.of.test 
slope.line <- seq(-0.2, -1.1, -0.1) 
p.vals <- numeric(100) 
power.of.test <- numeric(10) 
for (j in 1:10) { 
    for (i in 1:100) p.vals[i] <- get.p.value(slope.line[j]) 
    power.of.test[j] <- length(p.vals[p.vals < 0.05])/length(p.vals) 
} 
plot(slope.line, power.of.test) 

しかし、これは生産:

In rpois(length(height), 9 + slope * (height)) : NAs produced 

を私は明らかにどこかに愚かなミスを犯してきたし、一日を過ごしてきました私は括弧などが欠けていないことを確認するためにそれを再入力するが、すべてが整然としているようだ。私はそれがglmから得た9と勾配の値と関係があると感じていますが、これは間違っている可能性がありますか?前もって感謝します。

+0

あなたのコードを字下げしてコメントしてください。 –

+1

あなたのポアソン率(ラムダ)は0より小さくなることはできません。 –

+0

インデントしないことについて申し訳ありません。私は本当にポアソン率を理解していない、あなたはさらに説明できますか?私が0の下で見ることができる唯一のものは-0.5ですが、私はそれらを私のメモから直接コピーしました。私はむしろRには絶望的です、申し訳ありません。 – Gemsie

答えて

0

これを試してみてください:右browser()for (j in 1:10) {プットの後に...そして、コマンドラインタイプでコードを提出する前に:options(warn=2)

ですから、エラーや警告(I私が何を考えてそのメッセージを取得するときis)、あなたは現在の値を取得するために変数のいずれかを検査することができます。 warnのデフォルト値は1です。完了したらwarnを戻す必要があります。 ( - -

(私は、あなたが9ことがわかりますことを、あなたと一緒に、疑う。some_slope)* some_heightがrpoisコールの負の値を与える(をrpoisする期待値が右、陽性であることがを必要とするのか? )

1

ご指摘のエラーがget.p.value(-0.5)に含まれています。関数の内部で探し引数として負の数を取ることができない、あなたはrpoisに、この(-0.5)値を与えていることを示しています。

私は本当に何を知りません代わりにget.p.value(0.5)を使用してコードを実行することがあります。

幸運を祈る!

0

いくつかの観察:あなたは「スコア」を持っているglm機能で

それが定義されていません。あなたは "社会的"を意味しますか? forループにはfor(i in 1000)があります。for(i in 1:1000)と思っています。また

p.vals[-0.5] <- get.p.value(-0.5) 

iを反復しないとp.vals[]はあなたがp.valsの-.5th要素について話しているときに意味がありませんインデックスを...示しています。

最後の行

test.results$"P(>|Chi|)"[2] 

は私が私ならば、あなたのコードが」求めていると思うので、これは私には理にかなって0に本当の本物に近い3.16 * 10^-107の結果を与えますモデルからすべての情報を削除すると、情報を持つ価値は何ですか?」

私はここでオフになる可能性があります...しかしうまくいけば、これはあなたを助けます!

+0

ありがとう!私はついにそれを働かせましたが、私のスロープとパワーグラフはとても奇妙です。 – Gemsie

関連する問題