Масштабирование ковариационных матриц - PullRequest
8 голосов
/ 06 апреля 2011

На вопрос "Эллипс вокруг данных в MATLAB" , в ответе , заданном Амро , он говорит следующее:

"Если вы хотите, чтобы эллипс представлял определенный уровень стандарта отклонение, правильный способ сделать это путем масштабирования ковариационной матрицы "

и код для масштабирования был задан как

STD = 2;                     %# 2 standard deviations
conf = 2*normcdf(STD)-1;     %# covers around 95% of population
scale = chi2inv(conf,2);     %# inverse chi-squared with dof=#dimensions

Cov = cov(X0) * scale;
[V D] = eig(Cov);

Я не понимаю первые 3 строки приведенного выше фрагмента кода. Как вычисляется шкала на chi2inv(conf,2) и каково ее умножение на ковариационную матрицу?

Дополнительный вопрос:

Я также обнаружил, что если я масштабирую его с 1,5 стандартными значениями, то есть 86% плиток, то эллипс может покрывать все точки, мои наборы точек объединяются почти во всех случаях. С другой стороны, если я масштабирую его с 3 STD, то есть 99% плиток, эллипс будет слишком большим. Тогда как я могу выбрать ЗППП, чтобы просто плотно прикрыть точки скопления?

Вот пример:

Внутренний эллипс соответствует 1,5 STD, а внешний - 2,5 STD. почему 1,5 STD плотно прикрывают комки белых точек? Есть ли какой-либо подход или причина для его определения?

enter image description here

1 Ответ

12 голосов
/ 06 апреля 2011

Цель отображения эллипса вокруг точек данных состоит в том, чтобы показать доверительный интервал или, другими словами, «сколько данных находится в пределах определенного стандартного отклонения от среднего значения»

В приведенном выше коде он выбрал отображение эллипса, который покрывает 95% точек данных. Для нормального распределения ~ 67% данных составляет 1 сек.д. от среднего значения ~ 95% в течение 2 с.д. и ~ 99% в течение 3 с. (числа не соответствуют моей голове, но вы можете легко убедиться в этом, рассчитав площадь под кривой). Следовательно, значение STD=2; Вы обнаружите, что conf составляет приблизительно 0.95.

Расстояние между точками данных и центром тяжести данных примерно равно (xi^2+yi^2)^0.5, игнорируя коэффициенты. Суммы квадратов случайных величин следуют за распределением хи-квадрат и, следовательно, чтобы получить соответствующий 95 процентиль, он использует обратную функцию хи-квадрат с d.o.f. 2, так как есть две переменные.

Наконец, логическое обоснование умножения постоянной масштабирования следует из того факта, что для квадратной матрицы A с собственными значениями a1,...,an собственные значения матрицы kA, где k является скаляром, просто ka1,...,kan. Собственные значения дают соответствующие длины большой / малой оси эллипса, и поэтому масштабирование эллипса или собственных значений до мозаичного фрагмента 95% эквивалентно умножению ковариационной матрицы на коэффициент масштабирования.

EDIT

Чэн, хотя вы, возможно, уже знаете это, я предлагаю вам также прочитать этот ответ на вопрос о случайности. Рассмотрим гауссовскую случайную величину с нулевым средним, единичной дисперсией. PDF из коллекции таких случайных переменных выглядит следующим образом

enter image description here

Теперь, если я возьму две такие коллекции случайных величин, возведу их в квадрат по отдельности и добавлю их, чтобы сформировать единую коллекцию новой случайной величины, ее распределение выглядит следующим образом

enter image description here

Это распределение хи-квадрат с 2 степенями свободы (так как мы добавили две коллекции).

Уравнение эллипса в приведенном выше коде можно записать в виде x^2/a^2 +y^2/b^2=k, где x, y - две случайные величины, a и b - большая / малая оси, и k - это некоторая масштабная константа, которую мы должны выяснить. Как вы можете видеть, вышеприведенное можно интерпретировать как возведение в квадрат и добавление двух наборов гауссовских случайных величин, и выше мы только что увидели, как выглядит их распределение. Итак, мы можем сказать, что k - это случайная величина, которая является хи-квадрат, распределенной с 2 ​​степенями свободы.

Теперь все, что нужно сделать, - это найти значение для k, чтобы в нем находилось 95% данных. Так же, как 1s.d, 2s.d, 3s.d. В процентилях, которые мы знакомы с гауссианцами, значение 95% для хи-квадрат с 2 степенями свободы составляет около 6,18 Это то, что Amro получает от функции chi2inv. С таким же успехом он мог бы написать scale=chi2inv(0.95,2) и было бы то же самое. Это просто разговор в терминах n s.d. от среднего интуитивно понятен.

Просто чтобы проиллюстрировать, вот PDF распределения хи-квадрат выше, с 95% площади <некоторые <code>x закрашены красным. Это x ~ 6,18.

enter image description here

Надеюсь, это помогло.

...