Составьте таблицу / матрицу плотностей вероятностей и связанных разрывов

Следующий код берет вектор V1 и 10000 раз загружает рандомизированную номинальную выборку из V1, создавая на основе результатов матрицу с 10000 столбцами. Затем он создает гистограмму для этой матрицы.

V1 <- c(0.18, 0.2, 0.24, 0.35, -0.22, -0.17, 0.28, -0.28, -0.14, 0.03, 0.87, -0.2, 0.06, -0.1, -0.72, 0.18, 0.01, 0.31, -0.36, 0.61, -0.16, -0.07, -0.13, 0.01, -0.09, 0.26, -0.14, 0.08, -0.62, -0.2, 0.3, -0.21, -0.11, 0.05, 0.06, -0.28, -0.27, 0.17, 0.42, -0.05, -0.15, 0.05, -0.07, -0.22, -0.34, 0.16, 0.34, 0.1, -0.12, 0.24, 0.45, 0.37, 0.61, 0.9, -0.25, 0.02)

xxx <- round(sapply(1:10000, function(i) rnorm(length(V1), mean=sample
                                      (V1, length(V1), replace=TRUE), sd(V1))),2)

h <- hist(xxx, plot=T)

Я хотел бы создать распечатку его функции плотности вероятности в формате матрицы или таблицы, т.е. получить матрицу с 1,0, 0,9, 0,8, 0,7, 0,6, 0,5, 0,4, 0,3, 0,2, 0,1, 0, -0,1 - 0,2, -0,3, -0,4, -0,5, -0,6, -0,7, -0,8, -0,9, -1,0 в качестве разрывов, и соответствующие плотности вероятности в следующем столбце.

У меня две проблемы. Во-первых, не удается указать нужные мне перерывы. Во-вторых, сделать матрицу с h$breaks и h$density тоже не удастся. Любые идеи будут очень признательны. Спасибо.

#This works, but I want to specify the breaks
h <- hist(xxx, plot=T, breaks=20)

#This gives error "some 'x' not counted; maybe 'breaks' do not span range of 'x'"
h <- hist(xxx, plot=T, breaks=c(1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0, -0,1 -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9, -1.0))

#This gives error number of rows of result is not a multiple of vector length
ddd<- cbind(h$breaks, h$density)

person Krug    schedule 09.05.2016    source источник


Ответы (1)


Сначала у вас ошибка типа, вы перепутали "." а также ",".

Во-вторых, перерывы должны охватывать весь спектр таких наблюдений:

h <- hist(xxx, plot=F, breaks=c(max(xxx),1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0, -0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9, -1.0,min(xxx)))

И, наконец, вы хотите выбрать «средние частоты» вместо перерывов:

ddd<- cbind(h$mids, h$density)
person Otto_K    schedule 09.05.2016