2011-01-11 6 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)

오류 또는 내가 그 메시지를 생각 경고를 (얻을 때 is)를 사용하면 변수를 검사하여 현재 값을 얻을 수 있습니다. warn의 기본값은 1이며 완료되면 다시 설정해야합니다.

(난 당신이 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) 

ip.vals[] 반복하지 않는 것은 당신이 p.vals의 -.5th 요소에 대해 이야기 할 때 이해가되지 않습니다 색인 ...을 나타냅니다. 내가 경우 코드가 "요구하고있다 생각하기 때문에 마지막 라인

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

는 나에게이 나에게 의미가 0으로 진짜 진짜 가까운 3.16 * 10^-107의 결과를 제공합니다 모델에서 모든 정보를 제거하십시오. 정보를 얻는 것의 가치는 무엇입니까? "

나는 여기에서 벗어날 수 있지만 ... 잘하면이 도움이!

+0

감사합니다! 나는 마침내 그것이 일하게했다. 그러나 나의 경사 대 힘 그래프는 매우 별나다. – Gemsie