2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3  След.
 
 Re: Распределение коэффициентов дискриминантной функции
Сообщение22.11.2019, 05:48 


27/10/09
602
Именно так и делается в дискриминантном анализе. А как нужно считать ковариационную матрицу для использования способа, предлагаемого Вами?

 Профиль  
                  
 
 Re: Распределение коэффициентов дискриминантной функции
Сообщение22.11.2019, 16:34 


07/10/15

2400
AndreyL в сообщении #1427114 писал(а):
Именно так и делается в дискриминантном анализе

Действительно, теперь уже ошибка у меня. Приведённые выше оценки доверительных интервалов неверны, и
по аналогии с регрессионным анализом, как вы предполагали
AndreyL в сообщении #1422313 писал(а):
Есть подозрение, что компоненты вектора связаны с распределением Стьюдента (по аналогии с регрессионным анализом)

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

P.S.: Это вовсе не означает, что теоретические оценки доверительных интервалов получить невозможно. Но подход нужен совсем другой. А с учётом всех "достоинств" дискриминанта Фишера, сама необходимость построения этих интервалов представляется сомнительной.

 Профиль  
                  
 
 Re: Распределение коэффициентов дискриминантной функции
Сообщение19.02.2020, 18:39 


27/10/09
602
Получил я, похоже, ковариационную матрицу оценок параметров. Если обобщенная ковариационная матрица исходных дискриминаторов $S=\frac{S_x(n_x-1)+S_y(n_y-1)}{n_x+n_y-2}$, то $$\sigma^2=\frac{\left( n_x+n_y \right)^3-4 \left( n_x+n_y \right) \left( n_x+n_y-1 \right)}{n_x n_y \left( n_x+n_y -k-1 \right) }
+ \frac{n_x+n_y-2}{n_x+n_y-k-1} \left(\bar{Y}-\bar{X} \right) S^{-1}\left(\bar{Y}-\bar{X} \right)^T$$ при условии $n_x+n_y>k+1$. Тогда, если $W=\left( \begin{array}{cc}  1_{nx} & X \\  1_{ny} & Y \\ \end{array} \right)$, где $1_{nx}$ и $1_{ny}$ - векторы-столбцы из единичек длиной $n_x$ и $n_y$ соответственно, то ковариационная матрица оценок параметров $$C=\sigma^2 \left( W^T.W \right)^{-1}$$

 Профиль  
                  
 
 Re: Распределение коэффициентов дискриминантной функции
Сообщение19.02.2020, 21:09 


07/10/15

2400
AndreyL в сообщении #1440452 писал(а):
Получил я, похоже, ковариационную матрицу оценок параметров.


Поздравляю! идею Вы поняли.
В прошлый раз, я тоже заинтересовался этим вопросом, и получил кое какие формулы. Но, признаться, они отличаются от Ваших, хотя у меня всё выражалось через центрированные факторы, может поэтому. По крайней море, константный член в выражении экв. дисперсии там такой же как у Вас
$$\frac{(n_a+n_b)^3}{n_an_b(n_a+n_b-k-1)}$$
В остальном, различия большие.

Самое неприятное, после многочисленных численных экспериментов выяснилось, что эта формула не работает как должна. Вычисляемая по ней дисперсия оказывается оптимистически заниженной. И это в идеальных условиях.

Если Вы свою формулу не проверяли, то советую проверить

 Профиль  
                  
 
 Re: Распределение коэффициентов дискриминантной функции
Сообщение20.02.2020, 05:29 


27/10/09
602
А можно ли посмотреть Вашу формулу?
Я пытался делать и через квадратичную форму на ковариационной матрице совмещенных данных, т.е. если $Z=\left( \begin{array}{cc}  X \\  Y \\ \end{array} \right)$, то ее ковариационная матрица будет $G=\frac{S_x(n_x-1)+S_y(n_y-1)+\frac{n_x n_y}{n_x+n_y}\left(\bar Y-\bar X \right)^T.\left(\bar Y-\bar X \right)}{n_x+n_y-1}$, но тогда зависимость $\sigma^2$ от $\left(\bar Y-\bar X \right) G^{-1} \left(\bar Y-\bar X \right)^T$ почему-то получалась нелинейной.

-- Чт фев 20, 2020 4:45 am --

И еще вопрос - в какой программе Вы проводите численные эксперименты? Я работаю в Математике и в Матлабе.

 Профиль  
                  
 
 Re: Распределение коэффициентов дискриминантной функции
Сообщение20.02.2020, 06:27 


07/10/15

2400
AndreyL в сообщении #1440508 писал(а):
но тогда зависимость $\sigma^2$ от $\left(\bar Y-\bar X \right) G^{-1} \left(\bar Y-\bar X \right)^T$ почему-то получалась нелинейной


Да, у меня тоже. По идее, все формулы должны сходится, если это не так, то либо где то ошибка, где то недочёт. Но я помнится много времени на это потратил, и всё получалось складно.

Эксперименты в Matlab. Генерировал пары многомерных нормальных распределений с заданными матожиданиями, делил их на равные части, кажется 100 по 1000, и вычислял 100 векторов коэффициентов. Потом находил их ков. матрицу.
Расхождения были всё время, но не очень большие, но устойчивые, в рамки стат. погрешности они не укладывались. Мне тогда показалось, что это не ошибка, а дефект самой модели, возможно его даже можно скорректировать, но как - пока не знаю.

Попробуйте со своей формулой. может она даже лучше, кто его знает, потом сравним.
Сейчас у меня под рукой их полностью нет, прошло уже 3 месяца, и я как то не думал, что они могут понадобиться. По новой выводить пока нет особого желания, потом, как будет возможность - попробую отыскать.

 Профиль  
                  
 
 Re: Распределение коэффициентов дискриминантной функции
Сообщение20.02.2020, 08:31 


27/10/09
602
Для начала - зависимость между $\left(\bar Y-\bar X \right) G^{-1} \left(\bar Y-\bar X \right)^T$ и $\left(\bar Y-\bar X \right) S^{-1} \left(\bar Y-\bar X \right)^T$ действительно нелинейная
код: [ скачать ] [ спрятать ]
Используется синтаксис Matlab M
function testSqForms
%% prepare sample sizes and true parameter values
k=4;
nX=5;
nY=7;
meX=2*rand(1,k)-1;
meY=2*rand(1,k)-1;
cov0=cov(2*rand(k+1,k));

%% generate square forms
L=100;
res=ones(L,2);
for i=1:L
 res(i,:)=func(k,nX,nY,meX,meY,cov0);
end;
plot(res(:,1),res(:,2),'.')

function r=func(k,nX,nY,meX,meY,cov0)
%% generate X and Y, calculate main parameter estimation
r=ones(1,2);
X=mvnrnd(meX(ones(nX,1),:),cov0);
Y=mvnrnd(meX(ones(nY,1),:),cov0);
mX=mean(X);
mY=mean(Y);
covX=cov(X);
covY=cov(Y);
S=((nX-1)*covX+(nY-1)*covY)/(nX+nY-2);
r(1,1)=(mY-mX)*inv(S)*(mY-mX)';
G=((nX-1)*covX+(nY-1)*covY+nY*nY/(nX+nY)*(mY-mX)'*(mY-mX))/(nX+nY-1);
r(1,2)=(mY-mX)*inv(G)*(mY-mX)';

Использую цикл for поскольку забыл, как это делается в Матлабе

 Профиль  
                  
 
 Re: Распределение коэффициентов дискриминантной функции
Сообщение20.02.2020, 11:43 


07/10/15

2400
AndreyL в сообщении #1440518 писал(а):
Для начала - зависимость между ... Использую цикл for поскольку забыл, как это делается в Матлабе


Надо так понимать, что обсуждаемую здесь формулу Вы так и не получили, и экспериментировать Вам пока не с чем. Ну так получайте, ведь как бы там ни было, правилами форума запрещается выкладывать готовые решения.

 Профиль  
                  
 
 Re: Распределение коэффициентов дискриминантной функции
Сообщение20.02.2020, 14:50 


27/10/09
602
Andrey_Kireew в сообщении #1440539 писал(а):
Надо так понимать, что обсуждаемую здесь формулу Вы так и не получили, и экспериментировать Вам пока не с чем. Ну так получайте, ведь как бы там ни было, правилами форума запрещается выкладывать готовые решения.
Странно, формулу для получения ковариационной матрицы оценок параметров дискриминантной функции я уже выписал в явном виде - мне выкладывать готовые решения не запрещается, поскольку я задаю вопрос, а не отвечаю, и ответ показываю на предмет проверки - правильно/неправильно.
Ну да ладно. Вот скрипт с Монте-Карло. Больше удивляет даже не то, что что дисперсии не сходятся, а то, что оценки параметров оказываются смещенными.
код: [ скачать ] [ спрятать ]
Используется синтаксис Matlab M
function testParameterEstimation
%% prepare sample sizes and true parameter values
k=4;
nX=5;
nY=7;
meX=2*rand(1,k)-1;
meY=2*rand(1,k)-1;
cov0=cov(2*rand(k+1,k));

%% calculate true discriminant function parameters
V=ones(1,k+1);
V(1,2:k+1)=(meY-meX)/cov0;
V(1,1)=V(1,2:k+1)*(meY+meX)'/2;

%disp(func(k,nX,nY,meX,meY,cov0,V));

%% Monte-Carlo
L=500;
res=ones(L,k+1);
for i=1:L
 res(i,:)=func(k,nX,nY,meX,meY,cov0,V);
end;
probab=((1:L)-0.5)/L;

%% plot results
colors=['b.';'c.';'g.';'m.';'y.';'bo';'co';'go';'mo';'yo'];
for j=1:k+1 % number of estimated parameter
 plot(sort(res(:,j)),probab',colors(j,:),'DisplayName',int2str(j));
 hold on;
end;
P = tcdf(sort(res(:,j)),nX+nY-k-1);
plot(sort(res(:,j)),P,'r-','DisplayName','stud');
legend('show')
hold off;

function r=func(k,nX,nY,meX,meY,cov0,param0)
% generate X and Y, calculate main parameter estimation
r=ones(1,k+1);
X=mvnrnd(meX(ones(nX,1),:),cov0);
Y=mvnrnd(meY(ones(nY,1),:),cov0);
mX=mean(X);
mY=mean(Y);
covX=cov(X);
covY=cov(Y);
S=((nX-1)*covX+(nY-1)*covY)/(nX+nY-2);

% calculate discriminant function parameters estimations
Vc=ones(1,k+1);
Vc(1,2:k+1)=(mY-mX)/S;
Vc(1,1)=Vc(1,2:k+1)*(mY+mX)'/2;

% calculate covariance matrix
sigma=((nX+nY)^3+4*(nX+nY)*(nX+nY-1))/(nX*nY*(nX+nY-k-1));
sigma=sigma+(nX+nY-2)/(nX+nY-k-1)*(mY-mX)/S*(mY-mX)';
W=[ones(nX,1),X;ones(nY,1),Y];
C=sigma*inv(W'*W);

% calculate Student stasistics for discriminant function parameters estimations
std=sqrt(diag(C))';
r=(Vc-param0)./std;

Да, кстати, все ли понятно в скрипте, или как-то изменить комментарии?

 Профиль  
                  
 
 Re: Распределение коэффициентов дискриминантной функции
Сообщение20.02.2020, 16:56 


07/10/15

2400
AndreyL в сообщении #1440562 писал(а):
Странно, формулу для получения ковариационной матрицы оценок параметров дискриминантной функции я уже выписал в явном виде - мне выкладывать готовые решения не запрещается, поскольку я задаю вопрос, а не отвечаю, и ответ показываю на предмет проверки - правильно/неправильно

Возможно Вы меня не поняли, но это было написано в ответ на Вашу просьбу показать мою формулу. Откуда мне знать, получили вы её на самом деле или нет? Если нет, то выложив своё решение, я избавлю Вас от необходимости самостоятельного творчества. Именно это, по идее, форум делать и запрещает.

AndreyL в сообщении #1440562 писал(а):
Больше удивляет даже не то, что что дисперсии не сходятся, а то, что оценки параметров оказываются смещенными.

в Вашем скрипте заложена та же самая формула, которую Вы представили выше. Возможно она и не правильная.

В вашем скрипте, как я понял, на основании заданных средних и ков. матрицы, сначала оцениваются "истинные" параметры, затем генерируется выборка, и по ней однократно оцениваются те же самые параметры. Я бы посоветовал генерировать выборку многократно, и тогда Вы увидите ни какую то эфемерную t - статистику, а реальное распределение параметров. По нему можно вычислить и их дисперсию. Её и сравнивать с теоретической оценкой (она должна мало меняться от выборке к выборке). Это лучше, чем сравнивать единичные значения и потом гадать на кофейной гуще.
В общем, эксперимент Ваш мне не нравится, какой то он премудрый, возможно даже и некорректно поставлен.

 Профиль  
                  
 
 Re: Распределение коэффициентов дискриминантной функции
Сообщение20.02.2020, 17:17 


27/10/09
602
Andrey_Kireew в сообщении #1440574 писал(а):
В вашем скрипте, как я понял, на основании заданных средних и ков. матрицы, сначала оцениваются "истинные" параметры, затем генерируется выборка, и по ней однократно оцениваются те же самые параметры. Я бы посоветовал генерировать выборку многократно, и тогда Вы увидите ни какую то эфемерную t - статистику, а реальное распределение параметров. По нему можно вычислить и их дисперсию. Её и сравнивать с теоретической оценкой (она должна мало меняться от выборке к выборке). Это лучше, чем сравнивать единичные значения и потом гадать на кофейной гуще.
В общем, эксперимент Ваш мне не нравится, какой то он премудрый, возможно даже и некорректно поставлен.

Теперь я Вас не очень понимаю. Тогда объясню свою тактику: сначала генерируются два вектора истинных средних и истинная ковариационная матрица. Именно для этих параметров и считаются истинные значения параметров дискриминантной функции. Потом 500 раз генерируются две выборки (их объемы всегда одинаковые) случайных величин распределенных нормально с известными центрами и известной одной и той же ковариационной матрицей. Естественно, что оценки центров и ковариационных матриц по выборкам будут отличаться от истинных значений. По этим оценкам считаются оценки параметров дискриминантной функции и их ковариационная матрица (и так 500 раз). Далее для каждого параметра считается t-статистика. Просто генерация выборок и дальнейшая работа с ними убрана в отдельную функцию, которая вызывается 500 раз.
А как Вы предлагаете?

 Профиль  
                  
 
 Re: Распределение коэффициентов дискриминантной функции
Сообщение20.02.2020, 18:01 


07/10/15

2400
Я Вам советую объединить все сгенерированные коэффициенты в одну матрицу (можно их возвращать из той же функции) и напрямую вычислить ковариационную матрицу коэффициентов. Потом её можно сравнить с усреднённой ковариационной матрицей, вычисленной по Вашей формуле

 Профиль  
                  
 
 Re: Распределение коэффициентов дискриминантной функции
Сообщение20.02.2020, 19:24 


07/10/15

2400
AndreyL в сообщении #1440562 писал(а):
Больше удивляет даже не то, что что дисперсии не сходятся, а то, что оценки параметров оказываются смещенными

И на каком основании Вы делаете такие выводы? С чем не сходятся дисперсии? Друг с другом? И как Вы это проверили, если Они вычисляются внутри функции, и там же остаются? по t критерию?

Ну и смещение коэффициентов как Вы выявили? они же у Вас тоже не выходят за пределы функции.

Может, конечно, у Вас для этого есть другой скрипт, но тогда не совсем понятно, зачем Вы привели этот, от которого всё равно нет никакого толку

 Профиль  
                  
 
 Re: Распределение коэффициентов дискриминантной функции
Сообщение22.02.2020, 07:33 


27/10/09
602
Andrey_Kireew в сообщении #1440587 писал(а):
Я Вам советую объединить все сгенерированные коэффициенты в одну матрицу (можно их возвращать из той же функции) и напрямую вычислить ковариационную матрицу коэффициентов. Потом её можно сравнить с усреднённой ковариационной матрицей, вычисленной по Вашей формуле
Не совсем понимаю, как это можно сделать. При каждой реализации случайных выборок $\bar Y-\bar X$ и $S$ разные, поскольку они по этим выборкам и считаются. Тогда и дисперсия оценки в каждой реализации своя. Или лучше использовать истинные дисперсии?

 Профиль  
                  
 
 Re: Распределение коэффициентов дискриминантной функции
Сообщение22.02.2020, 10:22 


07/10/15

2400
AndreyL в сообщении #1440799 писал(а):
При каждой реализации случайных выборок $\bar Y-\bar X$ и $S$ разные, поскольку они по этим выборкам и считаются. Тогда и дисперсия оценки в каждой реализации своя

Да, оценка дисперсии по формуле каждый раз разная, а по набору коэффициентов Вы получите только одну ков. матрицу. Но это нормально. Постройте гистограмму распределения теоретических оценок и отметьте на ней же дисперсию, полученную непосредственно по коэффициентам. Если формула корректная, то оценка дисперсии, сделанная по коэффициентам должна соответствовать наиболее вероятному значению гистограммы, и быть в пределах выборочной ошибки дисперсии (как её найти для своей выборки, думаю, найдёте сами). Заодно проверите, соответствует ли полученное распределение распределению Хи-квадрат.
При этом, можно ещё построить распределения коэффициентов, и посмотреть, насколько оно соответствует нормальному.

Насколько я понимаю, Ваша цель, определить насколько хорошо согласуется оценка дисперсии, полученная по формуле, с реальной дисперсией. По t критерию можно только узнать, соответствует ли распределение res распределению Стьюдента с соответствующим числом степеней свободы, или нет. Сравнивать нужно тоже по Хи-квадрат. И в итого, всё что вы получите - это согласуются дисперсии оценок, или нет. Насколько они различаются, и смещены ли они - вообще сказать ничего нельзя. А Вы ещё зачем то начинаете вычислять по res вероятности. Задайте себе вопрос, вероятности чего Вы вычисляете? или вам это не важно. А в итоге строите распределение этих вероятностей. Что Вы надеетесь увидеть по этому распределению? Лично мне всё это представляется как бессмысленное нагромождение стат. методов. Обычно так часто делают, чтобы произвести впечатление, и придать наукообразия своим работам. Но здесь то все участники анонимные, в том числе и Вы сами, какой в этом смысл?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу Пред.  1, 2, 3  След.

Модераторы: Модераторы Математики, Супермодераторы



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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group