Страница 1 из 1
R: Нормирование данных перед MCLUST-анализом
Добавлено: 21 авг 2015, 07:47
nickleb
Просветите как корректно нормировать (стандартизировать) данные перед MCLUST-анализом в R, да и, собственно, перед др. видами анализа в R и ,собственно, статистике... Где почитать? А, м.б., MCLUST и сам предварительно нормирует данные?
Re: R: Нормирование данных перед MCLUST-анализом
Добавлено: 21 авг 2015, 10:43
gamm
.
Re: R: Нормирование данных перед MCLUST-анализом
Добавлено: 21 авг 2015, 10:44
gamm
nickleb писал(а):Просветите как корректно нормировать (стандартизировать) данные перед MCLUST-анализом в R, да и, собственно, перед др. видами анализа в R и ,собственно, статистике... Где почитать? А, м.б., MCLUST и сам предварительно нормирует данные?
поскольку это Finite Gaussian mixture modeling, то он сам все нормализует посредством вычисления ковариационной матрицы. Но распределение предполагается нормальным, поэтому нужно поизучать данные, и если преобразование не нормальное, то привести его хотя бы к симметричному, стандартный вид преобразования - типа log(a+b*X), sqrt(X), Box-Cox, и т.д. Имейте в виде, что нужно симметризовать не распределение всей выборки, а внутри-классовое. Полезно также убрать сильно коррелированные переменные, поизучав выборку каким-ни vif().
нормализация для других видов сильно зависит от видов

Re: R: Нормирование данных перед MCLUST-анализом
Добавлено: 21 авг 2015, 11:53
nickleb
gamm писал(а):nickleb писал(а):Просветите как корректно нормировать (стандартизировать) данные перед MCLUST-анализом в R, да и, собственно, перед др. видами анализа в R и ,собственно, статистике... Где почитать? А, м.б., MCLUST и сам предварительно нормирует данные?
поскольку это Finite Gaussian mixture modeling, то он сам все нормализует посредством вычисления ковариационной матрицы. Но распределение предполагается нормальным, поэтому нужно поизучать данные, и если преобразование не нормальное, то привести его хотя бы к симметричному, стандартный вид преобразования - типа log(a+b*X), sqrt(X), Box-Cox, и т.д. Имейте в виде, что нужно симметризовать не распределение всей выборки, а внутри-классовое. Полезно также убрать сильно коррелированные переменные, поизучав выборку каким-ни vif().
нормализация для других видов сильно зависит от видов

а операция scale во второй строке (перед) Mclust требуется иль нет?:
Код: Выделить всё
Data_TS <- read.table (file_TS,sep=",",header=TRUE)
Scale_Data_TS <- scale(Data_TS)
DF_MCLUST <- Mclust(Scale_Data_TS)
Re: R: Нормирование данных перед MCLUST-анализом
Добавлено: 21 авг 2015, 12:28
gamm
Вроде не требуется, но повысит численную устойчивость, если дисперсии очень разные. Поэтому обычно делают.
[ Сообщение с мобильного устройства ]
Re: R: Нормирование данных перед MCLUST-анализом
Добавлено: 21 авг 2015, 12:31
nickleb
gamm писал(а):Вроде не требуется, но повысит численную устойчивость, если дисперсии очень разные. Поэтому обычно делают.
[ Сообщение с мобильного устройства ]
Спасибо
Re: R: Нормирование данных перед MCLUST-анализом
Добавлено: 21 авг 2015, 12:49
nickleb
Кто пользовался, кто может пояснить, что за условия по лицензии для MCLUST?
https://els.comotion.uw.edu/express_lic ... ies/mclust
И по лицензиям GPL 2, GPL 3 - доходчиво, если кто разбирался?
Re: R: Нормирование данных перед MCLUST-анализом
Добавлено: 21 авг 2015, 12:54
gamm
учтите, что эта штука model based, так что вы еще и форму кластеров задавать (перебирать) должны, и смотреть на разные BIC/AIC, и на оценку попадания в 95% "огурец". В общем, дел много
поэтому лучше сначала каким-нибудь адаптивным методом (из общедоступных - SOM) посмотреть, как выборка устроена, чтобы что-то предполагать.
А лицензия всегда написана в файле DESCRIPTION, который лежит в пакете, в данном случае любая >=2
Re: R: Нормирование данных перед MCLUST-анализом
Добавлено: 22 авг 2015, 11:12
nickleb
Код: Выделить всё
Ошибка в plot.new() : figure margins too large
как эту ошибку исправить?
скрипт:
Код: Выделить всё
library(mclust)
workdir <- "F:/Worker_2015/_for_R_CRAN/_Waters"
setwd(workdir)
FileMaska = "EVRO_AMER_TS_2008_year.csv"
ListFiles <- list.files(workdir, pattern=FileMaska, full.names=TRUE)
ListFiles
ListShortFiles <- sub(workdir,"",ListFiles)
ListShortFiles <- sub("/","",ListShortFiles)
ListShortFiles
cntListFiles <- length(ListShortFiles)
cntListFiles
for(j in 1:cntListFiles)
{
file_TS <- ListShortFiles[j]
file_after_clust <- paste("Clust_", file_TS, sep="")
file_emf <- paste("Clust_", file_TS, sep="")
file_emf <- sub(".csv", ".emf", file_emf)
TempSali <- read.table (file_TS,sep=",",header=TRUE)
head (TempSali,3)
#TempSaliModel <- mclustModel(TempSali,mclustBIC(TempSali))
TempSaliModel <- Mclust(TempSali)
mclust2Dplot(TempSali, parameters=TempSaliModel$parameters, z=TempSaliModel$z, what = "classification", identify = TRUE)
win.metafile(file_emf)
TempSali$CLUST <- TempSaliModel$classification
TempSali$CLUST
write.csv(TempSali[,c("CLUST","t_pote","s")],
file=file_after_clust,
row.names=TRUE,
quote=FALSE)
dev.off()
}
Re: R: Нормирование данных перед MCLUST-анализом
Добавлено: 23 авг 2015, 17:39
nickleb
gamm писал(а):
...
поэтому лучше сначала каким-нибудь адаптивным методом (из общедоступных - SOM) посмотреть, как выборка устроена, чтобы что-то предполагать.
...
Вы об этом package'е ?:
www.r-bloggers.com/self-organising-maps ... n-using-r/
Re: R: Нормирование данных перед MCLUST-анализом
Добавлено: 23 авг 2015, 18:05
gamm
nickleb писал(а):Вы об этом package'е ?:
можно и им (я своим пользуюсь, на С++). Но лучше красить соединяющие линии, чтобы кластеры было видно.
Re: R: Нормирование данных перед MCLUST-анализом
Добавлено: 24 авг 2015, 10:27
nickleb
gamm писал(а):nickleb писал(а):Вы об этом package'е ?:
можно и им (я своим пользуюсь, на С++). Но лучше красить соединяющие линии, чтобы кластеры было видно.
а GeoSOM ещё есть какой-то suite... у меня есть DateTime/Lon/Lat/Depth/Var1/Var2...
Re: R: Нормирование данных перед MCLUST-анализом
Добавлено: 24 авг 2015, 20:42
gamm
nickleb писал(а):а GeoSOM ещё есть какой-то suite... у меня есть DateTime/Lon/Lat/Depth/Var1/Var2...
я особо не вникал, предпочитаю сам делать, где могу, чем кнопки давить ...