Някой прилагал ли е подход на Box Cox в MATLAB за трансформиране на многовариантни данни? Намерих R пакет, който го прави, но нищо за MATLAB. Благодаря.
Box Cox трансформация за многовариантна нормалност в MATLAB
Отговори (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" ми казва, че:
- Трансформациите на Box-Cox са налични във Financial Toolbox
- Има свободно достъпна имплементация в MATLAB Central File Exchange.
person
Sam Roberts
schedule
21.03.2013
Благодаря много, пич, но може би трябва да прочетете изцяло отговора. Търся многовариантна трансформация на мощността, а не едномерна, това е тази, която си свързал.
- person Matteo Maggioni; 26.03.2013