R Программирование нормального распределения - PullRequest
2 голосов
/ 07 мая 2020

enter image description here

Я пытаюсь создать этот сюжет. Когда я попробовал приведенный ниже код, сюжет не распространяется нормально.

x <- seq(60,140,20)
y <- dnorm(x,0,1)
plot(x,y,type="l",xlab = "x",ylab = "f(x)",main = "The total shades area is equal to 0.05")
x<-seq(60,80)
y<-dnorm(x,0,1)
polygon(c(60,x,80),c(0,y,0),col="red")
x<-seq(120,140,length=100)
y<-dnorm(x,0,1)
polygon(c(120,x,140),c(0,y,0),col="red")

1 Ответ

8 голосов
/ 07 мая 2020

Похоже, самая большая проблема с вашим графиком заключается в том, что на основе вашего изображения вы хотите построить график нормального распределения со средним значением 100 и стандартным отклонением 10, но каждый раз, когда вы вызываете dnorm, вы используете среднее значение 0 и стандартное отклонение 1.

Вторичная проблема заключается в том, что когда вы определяете первую последовательность x, у вас есть аргумент by, равный 20, что означает, что вы используете только 60, 80, 100, 120 и 140 как координаты x для вашей нормальной кривой. Попробуйте вместо этого использовать что-то меньшее, например 1.

Приведенный ниже код должен вернуть график, который вы ищете.

x <- seq(60,140,1)
y <- dnorm(x,100,10)
plot(x,y,type="l",xlab = "x",ylab = "f(x)",
     main = "The total shaded area is equal to 0.05")
x<-seq(60,80)
y<-dnorm(x,100,10)
polygon(c(60,x,80),c(0,y,0),col="red")
x<-seq(120,140,length=100)
y<-dnorm(x,100,10)
polygon(c(120,x,140),c(0,y,0),col="red")
...