#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. Кто-нибудь может сказать, в чем проблема? Вот изображение, я вижу красную линию, но это не совсем правильно.
Ответ №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='')
и это помогло, еще раз спасибо