R: Нормирование данных перед MCLUST-анализом

Вопросы по статистическому пакету R. Не обязательно гео.
Ответить
nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

R: Нормирование данных перед MCLUST-анализом

Сообщение nickleb » 21 авг 2015, 07:47

Просветите как корректно нормировать (стандартизировать) данные перед MCLUST-анализом в R, да и, собственно, перед др. видами анализа в R и ,собственно, статистике... Где почитать? А, м.б., MCLUST и сам предварительно нормирует данные?

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: R: Нормирование данных перед MCLUST-анализом

Сообщение gamm » 21 авг 2015, 10:43

.
Последний раз редактировалось gamm 21 авг 2015, 10:45, всего редактировалось 1 раз.

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: R: Нормирование данных перед MCLUST-анализом

Сообщение gamm » 21 авг 2015, 10:44

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

нормализация для других видов сильно зависит от видов :mrgreen:

nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: R: Нормирование данных перед MCLUST-анализом

Сообщение nickleb » 21 авг 2015, 11:53

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

нормализация для других видов сильно зависит от видов :mrgreen:
а операция scale во второй строке (перед) Mclust требуется иль нет?:

Код: Выделить всё

Data_TS <- read.table (file_TS,sep=",",header=TRUE)
Scale_Data_TS <- scale(Data_TS)
DF_MCLUST <- Mclust(Scale_Data_TS)

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: R: Нормирование данных перед MCLUST-анализом

Сообщение gamm » 21 авг 2015, 12:28

Вроде не требуется, но повысит численную устойчивость, если дисперсии очень разные. Поэтому обычно делают.

[ Сообщение с мобильного устройства ]

nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: R: Нормирование данных перед MCLUST-анализом

Сообщение nickleb » 21 авг 2015, 12:31

gamm писал(а):Вроде не требуется, но повысит численную устойчивость, если дисперсии очень разные. Поэтому обычно делают.

[ Сообщение с мобильного устройства ]
Спасибо

nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: R: Нормирование данных перед MCLUST-анализом

Сообщение nickleb » 21 авг 2015, 12:49

Кто пользовался, кто может пояснить, что за условия по лицензии для MCLUST?
https://els.comotion.uw.edu/express_lic ... ies/mclust
И по лицензиям GPL 2, GPL 3 - доходчиво, если кто разбирался?

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: R: Нормирование данных перед MCLUST-анализом

Сообщение gamm » 21 авг 2015, 12:54

учтите, что эта штука model based, так что вы еще и форму кластеров задавать (перебирать) должны, и смотреть на разные BIC/AIC, и на оценку попадания в 95% "огурец". В общем, дел много :-)

поэтому лучше сначала каким-нибудь адаптивным методом (из общедоступных - SOM) посмотреть, как выборка устроена, чтобы что-то предполагать.

А лицензия всегда написана в файле DESCRIPTION, который лежит в пакете, в данном случае любая >=2
License: GPL (>= 2)
URL: http://www.stat.washington.edu/mclust/

nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: R: Нормирование данных перед MCLUST-анализом

Сообщение nickleb » 22 авг 2015, 11:12

Код: Выделить всё

Ошибка в 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()
}   

nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: R: Нормирование данных перед MCLUST-анализом

Сообщение nickleb » 23 авг 2015, 17:39

gamm писал(а): ...
поэтому лучше сначала каким-нибудь адаптивным методом (из общедоступных - SOM) посмотреть, как выборка устроена, чтобы что-то предполагать.
...
Вы об этом package'е ?:
www.r-bloggers.com/self-organising-maps ... n-using-r/

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: R: Нормирование данных перед MCLUST-анализом

Сообщение gamm » 23 авг 2015, 18:05

nickleb писал(а):Вы об этом package'е ?:
можно и им (я своим пользуюсь, на С++). Но лучше красить соединяющие линии, чтобы кластеры было видно.

nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: R: Нормирование данных перед MCLUST-анализом

Сообщение nickleb » 24 авг 2015, 10:27

gamm писал(а):
nickleb писал(а):Вы об этом package'е ?:
можно и им (я своим пользуюсь, на С++). Но лучше красить соединяющие линии, чтобы кластеры было видно.
а GeoSOM ещё есть какой-то suite... у меня есть DateTime/Lon/Lat/Depth/Var1/Var2...

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: R: Нормирование данных перед MCLUST-анализом

Сообщение gamm » 24 авг 2015, 20:42

nickleb писал(а):а GeoSOM ещё есть какой-то suite... у меня есть DateTime/Lon/Lat/Depth/Var1/Var2...
я особо не вникал, предпочитаю сам делать, где могу, чем кнопки давить ...

Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 36 гостей