определение интервала полигона для затенения под нормальной кривой - PullRequest
0 голосов
/ 27 июня 2018

Я использую довольно простой код для создания следующего изображения:

mean=1000
sd=200
Score <- round ((seq(-3,3,length=120)*sd + mean), -1)
y <- dnorm(Score,mean,sd)
data <- data.frame
plot(Score, y, type="l")
polygon(c( Score[Score>=1250], 1250 ),  c(y[Score>=1250],0 ), col="skyblue")
percentile <- round(pnorm((Score-mean)/sd)*100,2)

enter image description here

Моя проблема в том, что многоугольник перекошен. Я знаю, что моя ошибка в том, как я определил свой многоугольник, но я не знаю, как определить его площадь как интервал между 1250-1600, а не просто больше или равным 1250 (даже если 1600 - максимальный показатель с код у меня есть).

Кроме того, я попытался перевести этот код в ggplot2 и потерпел неудачу. Любая помощь в этом также будет оценена.

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Я бы предпочел, чтобы вы добавили дополнительную точку, чтобы показать правильную высоту выше нуля.

plot(Score, y, type="l")
polygon(c( Score[Score>=1250], max(Score), 1250 ), 
        c(y[Score>=1250],0, 0 ), col="skyblue")

Area under curve

0 голосов
/ 27 июня 2018

Я заменяю 0 на min(y[Score>=1250]). Теперь выглядит хорошо.

mean=1000
sd=200
Score <- round ((seq(-3,3,length=120)*sd + mean), -1)
y <- dnorm(Score,mean,sd)
plot(Score, y, type="l")
polygon(c( Score[Score>=1250], 1250 ),  c(y[Score>=1250], min(y[Score>=1250])), col="skyblue")
percentile <- round(pnorm((Score-mean)/sd)*100,2)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...