Box Cox трансформация за многовариантна нормалност в MATLAB

Някой прилагал ли е подход на Box Cox в MATLAB за трансформиране на многовариантни данни? Намерих R пакет, който го прави, но нищо за MATLAB. Благодаря.


person Matteo Maggioni    schedule 19.03.2013    source източник


Отговори (2)


MATLAB няма вградена функция за прилагане на многовариантна кутия-кокс трансформация.

Самият аз съм написал един и работи.

Ето кода.

Входът x е матрицата на наблюденията, където редовете означават наблюденията, а колоните означават променливите.

Справка: Приложен мултивариантен статистически анализ 6th- Johnson R. & Wichern D. Глава 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

Гугъл "MATLAB Box Cox" ми казва, че:

  1. Трансформациите на Box-Cox са налични във Financial Toolbox
  2. Има свободно достъпна имплементация в MATLAB Central File Exchange.
person Sam Roberts    schedule 21.03.2013
comment
Благодаря много, пич, но може би трябва да прочетете изцяло отговора. Търся многовариантна трансформация на мощността, а не едномерна, това е тази, която си свързал. - person Matteo Maggioni; 26.03.2013