Как нарисовать кривую колокола SD над гистограммой в R? - PullRequest
1 голос
/ 20 марта 2020

Я пытаюсь понять, как визуализировать стандартное отклонение по гистограмме возраста. В CODE 1 представлена ​​гистограмма возраста по частоте. Обратите внимание, что частота отражает количество людей в гистограмме (т.е. около 550 человек в возрасте от 70 до 75 лет). Однако способ, которым я хочу визуализировать это, предоставлен CODE 2 , но обратите внимание, что гистограмма отображает плотность вместо частоты. Когда я пытаюсь CODE 3 , линия кривой колокола плоская. Кто-нибудь знает, как решить эту проблему?

КОД 1:

#PROVIDE HISTOGRAMS OF AGE AND TOTAL.DAYS.IN.HOSPITAL
hist(
  dataset15$Age, las=1,
  main="Histogram of Age", xlab="AGE", ylab="Number of patients",
  xlim = c(0,100), ylim = c(0,600),
  xaxp = c(0,100,10), yaxp=c(0,600,24)
)

КОД 2:

hist(dataset15$Age, freq=F, breaks=12)
lines(
  seq(10, 100, by=.5), 
  dnorm(seq(10, 100, by=.5),
  mean(dataset15$Age), 
  sd(dataset15$Age)), 
  col="blue"
)

КОД 3:

#PROVIDE HISTOGRAMS OF AGE AND TOTAL.DAYS.IN.HOSPITAL
hist(
  dataset15$Age, las=1,
  main="Histogram of Age", xlab="AGE", ylab="Number of patients",
  xlim = c(0,100), ylim = c(0,600),
  xaxp = c(0,100,10), yaxp=c(0,600,24)
)
lines(
  seq(0, 100, by=.5), 
  dnorm(seq(0, 100, by=.5),
  mean(dataset15$Age), sd(dataset15$Age)), 
  col="blue"
)

ВЫХОД 1: FIGURE 1

ВЫХОД 2: FIGURE 2

ВЫХОД 3: FIGURE 3

1 Ответ

1 голос
/ 20 марта 2020

Как указывает @ Rodri go, вы должны масштабировать плотность до своей гистограммы. См. Мой код ниже.

n <- 2000
age <- rnorm(n, m = 70, sd = 5)


h <- hist(age,
          las=1, breaks = 20,
          main="Histogram of Age", xlab="AGE", ylab="Number of patients",
     xlim = c(0,100), ylim = c(0,600),
     xaxp = c(0,100,10), yaxp=c(0,600,24))

lx <- seq(10, 100, by=.5)
ly <- dnorm(lx, mean(age), sd(age)) * sum(h$counts)/sum(h$density), # here is the magic
lines(x = lx,y = ly,col ="blue") 

Выводит следующий график:

enter image description here

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