Нещодавно я натрапив на R-пакет квасоля і запропонована можливість побудувати розподіл двох підгруп в одному сюжеті (спеціальна асиметрична квасоля). Опис пакета ви знайдете в Журнал статистичного програмного забезпечення і на cran.r-project.org.
Я виготовив асиметричний квасоля, використовуючи наступне КОД:
library(psych)
library(beanplot)
var1 <-c(20,33,NA,39,NA,40,34,33,NA,38,NA,8,7,NA,NA,40,34,24,25,36,40,37,34,NA,35)
var2 <- c(1,0,1,1,1,0,1,0,1,NA,1,0,0,0,0,1,1,0,1,0,1,1,NA,0,1)
mydata<-data.frame(var1,var2)
table(mydata)
par(lend = 1, mai = c(0.8, 0.8, 0.5, 0.5))
beanplot(var1 ~ var2, data= mydata, side = "both",log="",
what=c(1,1,1,0), border = NA, col = list("black", c("grey", "white")))
legend("bottomleft", fill =c("black", "grey"), legend = c("no", "yes"))
Отриманий сюжет чудово показує різну форму розподілу двох підгруп.
ПРОБЛЕМА
Залежну змінну вимірюють за шкалою, що становить від 7 до 40. Однак, вісь у вісі y переходить від -1 до +55.
Було б чудово, якби хтось міг пояснити, як змінюється шкала, тобто що насправді намічається тут. Чи є спосіб побудувати розподіл за допомогою оригінальної шкали?
Велике спасибі!
Відповіді:
4 для відповіді № 1beanplot
використовує density
. Орієнтовна щільність може надати масу ділянкам, що перевищують діапазон спостережуваних даних. Ви можете спробувати це, щоб зрозуміти, що таке щільність - plot(density(1:2))
і ви повинні побачити, що це просто взяття середнього рівня гауссової щільності з центром у точках даних (зауважте, що ви можете використовувати інше ядро як beanplot
дозволяє вказати параметр ядра). Як він обирає дисперсію для цього гауса, залежить від вас, але за замовчуванням це виглядає як beanplot bw.SJ
методом "dpi" для вибору смуги пропускання.
Ви можете використовувати cutmin і cutmax для контролю діапазону, над яким насправді розміщується план, але це фактично не змінює оцінку щільності.