Hist со строками в R

#r #plot #histogram #cluster-analysis #statistics-bootstrap

#r #сюжет #гистограмма #кластерный анализ #статистика-начальная загрузка

Вопрос:

Я генерирую 4 части больших данных: кластер1(10000 точек), кластер2(15000 точек), кластер3(15000 точек) и броски(500 точек). Вот код:

 library('MASS') library('fpc') #library("dbscan") library("factoextra") library("clustertend") library("boot") library("stream") set.seed(123) mu1lt;-c(-5,-7) mu1 sigma1lt;-matrix(c(4,-2,-2,2), nrow=2, ncol=2, byrow = TRUE) sigma1 nlt;-10000 cluster1lt;-mvrnorm(n,mu1,sigma1) cluster1 #cluster1lt;-as.data.frame(cluster1) #cluster1 #clt;-runif(10000,1,1000) #c  phi lt;- runif(15000, max = 2*pi) rho lt;- sqrt(runif(15000)) x lt;- sqrt(5)*rho*cos(phi)   6 y lt;- sqrt(10/3)*rho*sin(phi)   4 range(2*(x - 6)^2   3*(y - 4)^2) #[1] 0.001536582 9.999425234 plot(x, y) cluster2lt;-cbind(x,y) cluster2  u lt;- runif(15000, max = 3) v lt;- runif(15000, max = 2) x lt;- u   v - 10 y lt;- v - u   8 range(x   y) #[1] -1.999774 1.999826 range(x - y   15) #[1] -2.999646 2.999692 plot(x, y) cluster3lt;-cbind(x,y) cluster3 #cluster3lt;-as.data.frame(cluster1) #cluster3  x lt;- runif(500, -20, 20) y lt;- runif(500, -20, 20) #u lt;- runif(500, max = 20) #v lt;- runif(500, max = 20) #x lt;- u   v - 20 #y lt;- v - u range(x) range(y) plot(x,y) throwslt;-cbind(x,y) throws  datalt;-rbind(cluster1,cluster2,cluster3,throws) datalt;-as.data.frame(data) data plot(data)  

Затем я пытаюсь, используя метод начальной загрузки, построить распределение статистики H для некоторого фиксированного m, которое составляет 7% от общего числа сгенерированных точек(m=2835). Вот код, в котором я это делаю:

 Blt;-10#number of iterations Hlt;-NULL#value of Hopkins statistic for(i in 1:B){  Nlt;-dim(data)[1]  slt;-sample(N,0.8*N)  statlt;-hopkins(data[s,], n=2835, byrow = TRUE)$H   H[i]lt;-stat  #print(c(i, stat)) }  

Для создания требуется очень много времени. Затем я должен сравнить этот результат с бета — распределением-B(m,m). Вот код:

 hist(H) #(density(H), col="red") #hist(distB) Xlt;-seq(min(H), max(H), 0.001) X lines(X, dbeta(X,2835,2835), type="l", col="red")  

Проблема в том, что lined не опирается на hist. Кто-нибудь может сказать, в чем проблема? Вот изображение, я вижу красную линию, но это не совсем правильно. Hist с линиями

Ответ №1:

Ваши значения по оси y, нанесенные на график, dbeta() слишком малы, чтобы их можно было зарегистрировать на прилагаемой оси y ( Вам нужно наложить второй сюжет:

 # sample data H lt;- sample(seq(0.455,0.475,0.001), 1000, replace = TRUE)  #plot histogram hist(H)  # prepare graphics to add second plot par(new = TRUE)  # sample data for second plot X lt;- seq(0.455,0.475, 0.001) Y lt;- dbeta(X,2835,2835)  # plot second plot, remove axes plot(X, dbeta(X,2835,2835), type="l", col="red", axes = FALSE) axis(4, Y) # add axis on right side  

введите описание изображения здесь

Комментарии:

1. Спасибо, чувак, еще один вопрос, как убрать название топоров? Как вы видите, они накладываются друг на друга

2. Я использовал, plot(ylab='',xlab='') и это помогло, еще раз спасибо