2013-10-09 4 views
1

У меня есть модельMATLAB: линейная регрессия и другая ошибка веса

y = a1 * x1 + a2 * x2 + ... + a20 * x20 

у находится в диапазоне [-100000, 100000]. Для меня важно получить регрессию, где я получаю минимум в относительных ошибках. Абсолютные ошибки менее важны.

Какую функцию Matlab следует использовать? И насколько огромным должен быть мой образец?

И что является самым простым способом расчета R_adj? Является ли R_adj хорошей переменной для оценки модели, которую вы предлагаете, или что эта модель должна использовать что-то еще?

+0

Прежде всего, необходимо выяснить, какой метод регрессии лучше всего подходит для вашей проблемы, это теоретическая математическая задача. Как только вы это сделаете, я уверен, что мы сможем найти функцию. Моей первой мыслью было бы использовать «взвешенные наименьшие квадраты», но я не уверен, пожалуйста, проверьте это. Затем есть функция [matlab] (http://www.mathworks.de/de/help/curvefit/least-squares-fitting.html#bq_5kr9-3). – thewaywewalk

+0

Что такое 'R_adj'? как вы его определяете? можете ли вы написать математическую формулу для ошибки, заданной моделью 'a0 ... a20'? – Shai

+0

'R_adj' - это« Коэффициент определения ». Это полезно для оценки модели. – user2861714

ответ

1

Вы считали нормализацию своих x баллов соответствующими значениями y?
Вместо фитинга x_i1, x_i2, ..., x_i20 к y_i для всех образцов i у вас есть, вы можете рассмотреть установку x_i1/y_i, x_i2/y_2, ... x_i20/y_i в 1.

Если вы решите сделать это, необходимо построить матрицу X размера n20 матрицы с размерностью (i -й строкой является i -й SAMPE). Тогда:

>> n = size(x,1); % number of samples 
>> nX = bsxfun(@rdivide, X, y); % divide each sample i with corresponding y_i 
>> a = nX \ ones(n,1); % solution using normalization 

Вы можете сравнить это решение не-нормализуют наименьших квадратов

>> non_a = X \ y; 
+0

Я отредактировал, pls see about 'R-adj' – user2861714

+0

@ user2861714 ваш вопрос сформулирован очень смутно - неясно, что именно вы пытаетесь сделать. Пожалуйста, определите целевую функцию (математически) строго, а затем мы увидим, как ее решить программно/алгоритмически. – Shai

+0

Я просто строю свою модель, сейчас она грубая, и я хочу найти подходящую модель для своей цели. Я думаю, что разделительная модель достаточно хороша. – user2861714

Смежные вопросы