Кто-нибудь реализовал подход Box Cox в MATLAB для преобразования многомерных данных? Я нашел R пакет, который это делает, но ничего для MATLAB. Спасибо.
Преобразование Box Cox для многомерной нормальности в MATLAB
Ответы (2)
MATLAB не имеет встроенной функции для реализации многомерного преобразования бокса-кокса.
Я написал один сам, и он работает.
Вот код.
Входные данные x представляют собой матрицу наблюдений, где строки обозначают наблюдения, а столбцы обозначают переменные.
Ссылка: Прикладной многомерный статистический анализ, 6 – Джонсон Р. и Вичерн Д. Глава 4.8 Преобразование почти в норму
function lambda=boxcoxn(x)
[m,n]=size(x);
lambda_ini=zeros(n,1);
for ii=1:n
[temp,lambda_ini(ii,1)]=boxcox(x(:,ii));
end
fun=@(lambda)(log(det((cov(((x.^repmat(lambda',m,1)-1)./repmat(lambda',m,1))))))*m/2-(lambda-1)'*(sum(log(x)))');
lambda=fminsearch(fun,lambda_ini);
end
Просто не стесняйтесь использовать его.
person
T. Lan
schedule
18.03.2017
Поиск в Google "MATLAB Box Cox" говорит мне, что:
- Преобразования Бокса-Кокса доступны в Financial Toolbox.
- Существует свободно доступная реализация на MATLAB Central File Exchange.
person
Sam Roberts
schedule
21.03.2013
Большое спасибо, чувак, но, возможно, тебе стоит прочитать ответ полностью. Я ищу многомерное преобразование мощности, а не одномерное, которое вы связали.
- person Matteo Maggioni; 26.03.2013