Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 27.11.2014
Сообщений: 33

Эконометрика в Matlab

11.01.2015, 00:44. Показов 2855. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго дня! У меня вопрос к людям, которые разбираются не только в матлабе, но и в численных методах. Есть задача:
Набор данных:
x1 80 62 69.7 79 96.4 90 102 87 114.8 114.3 90 116 107 93 176 96 92 176 74 106 88 74 74.7 118 92 110
x2 84 37 42 80.3 88 64 66 86.8 74 74.7 62 81 78.8 66 129 69.4 72.8 110 49 73.7 61.7 48.8 80.8 76 62 79.8
x3 3 8 18 28 8 8 7 10 10 8 8 10 10 18 10 8 10 20 18 10 3 10 10 8 18 8
y 16 22 23 19.8 34 24.8 27.3 41 31 38.6 46 38 42.7 27 78 38 23.8 68 23 48.8 34 23 26.8 37 30 43
Найти уравнение линейной множественной регрессии с помощью стандартного МНК, в матричной форме и с использованием функции regress.
Моя программа:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
%% Линейная множественная регрессия
clc %   Очистить командное окно
clear all
%% Получить данные из файла
X = dlmread('lab3_1.txt');
x1 = X(1,: )';% значение x1
x2 = X(2,: )';% значение x2
x3 = X(3,: )';% значение x3
y = X(4,: )';% значение y
n = 26; % количество наблюдений 
D = [ones(n,1) x1 x2 x3];% формирования входного массива данных
%% Множественная линейная регрессия
% 1. Метод МНК:
A = ones(4);
A(1,1) = n;
A(1,2) = sum(x1); A(2,1) = A(1,2);
A(1,3) = sum(x2); A(1,3) = A(3,1);
A(1,4) = sum(x3); A(1,4) = A(4,1);
A(2,3) = sum(x1.*x2); A(3,2) = A(2,3);
A(2,4) = sum(x1.*x3); A(4,2) = A(2,4);
A(3,4) = sum(x2.*x3); A(4,3) = A(3,4);
A(2,2) = sum(x1.^2);
A(3,3) = sum(x2.^2);
A(4,4) = sum(x3.^2);
B = [sum(y); sum(x1.*y); sum(x2.*y); sum(x3.*y)];
b = inv(A)*B
% 2. Матричная форма:
b = inv(D'*D)*D'*y
% 3. Используя встроенную функцию regress:
[b,bint,r,rint,stats] = regress(y,D,0.05)
 
результат работы программы:
b =
 
    [COLOR="red"]0.1550[/COLOR]
    0.3494
    0.0527
   -0.2970
 
 
b =
 
   -9.6937
    0.4358
    0.0407
   -0.1532
 
 
b =
 
   -9.6937
    0.4358
    0.0407
   -0.1532
Что не так с моим "самопальным" МНК???
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.01.2015, 00:44
Ответы с готовыми решениями:

Эконометрика
Всем доброго дня! У меня несколько вопросов по эконометрике....очень прошу помочь!!! Заранее спасибо!!! Итак.... 1. Случайными в...

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

можно ли в Matlab создать библиотеку для С++ и использовать ее без вызова Matlab?
Возможно ли с помощью команды deploytool или какой-то другой команды создать библиотеку .dll например функции polyxpoly, чтобы в...

6
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
11.01.2015, 14:13
А что не нравиться?

Добавлено через 4 минуты
В 28 и 30 строках лучше использовать разные имена для констант рег ур-ния

Добавлено через 6 минут
Для получения "эталонных" результатов при рег. анализе я использую CFTOOL, это если Вам не нравятся сами результаты. Если не нравится вид выводимых результатов, используйте fprintf
0
0 / 0 / 0
Регистрация: 27.11.2014
Сообщений: 33
11.01.2015, 14:25  [ТС]
Цитата Сообщение от Nick07 Посмотреть сообщение
А что не нравиться?

Добавлено через 4 минуты
В 28 и 30 строках лучше использовать разные имена для констант рег ур-ния

Добавлено через 6 минут
Для получения "эталонных" результатов при рег. анализе я использую CFTOOL, это если Вам не нравятся сами результаты. Если не нравится вид выводимых результатов, используйте fprintf
Не нравится результат первогокоэффициента b массива - он РЕАЛЬНО отличается от остальных двух способов, а так быть НЕ ДОЛЖНО!
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
11.01.2015, 14:33
Цитата Сообщение от ЕкатеринаК Посмотреть сообщение
Не нравится результат первогокоэффициента b массива - он РЕАЛЬНО отличается от остальных двух способов, а так быть НЕ ДОЛЖНО!
Прикрепите свой файл,так будет проще.
0
0 / 0 / 0
Регистрация: 27.11.2014
Сообщений: 33
11.01.2015, 18:05  [ТС]
файл данных - lab3_1.txt
а вот m-файл не загружается, привожу его в тексте письма
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
%% Линейная множественная регрессия
clc %   Очистить командное окно
clear all
%% Получить данные из файла
X = dlmread('lab3_1.txt');
x1 = X(1,: )';% значение x1
x2 = X(2,: )';% значение x2
x3 = X(3,: )';% значение x3
y = X(4,: )';% значение y
n = 26; % количество наблюдений 
m = 3; % количество факторов
D = [ones(n,1) x1 x2 x3];% формирования входного массива данных
%% Множественная линейная регрессия
% 1. Метод МНК:
A = ones(4);
A(1,1) = n;
A(1,2) = sum(x1); A(2,1) = A(1,2);
A(1,3) = sum(x2); A(1,3) = A(3,1);
A(1,4) = sum(x3); A(1,4) = A(4,1);
A(2,3) = sum(x1.*x2); A(3,2) = A(2,3);
A(2,4) = sum(x1.*x3); A(4,2) = A(2,4);
A(3,4) = sum(x2.*x3); A(4,3) = A(3,4);
A(2,2) = sum(x1.^2);
A(3,3) = sum(x2.^2);
A(4,4) = sum(x3.^2);
B = [sum(y); sum(x1.*y); sum(x2.*y); sum(x3.*y)];
b = inv(A)*B;
% 2. Матричная форма:
b = inv(D'*D)*D'*y;
% 3. Используя встроенную функцию regress:
[b,bint,r,rint,stats] = regress(y,D,0.05);
fprintf('Уравнение линейной парной регрессии:')
y_p = subs(sym('a + b1*x1 + b2*x2 + b3*x3'),{'a','b1','b2','b3'},[b(1) b(2) b(3) b(4)])
%% Проверка значимости параметров множественного уравнения регрессии
t_tabl = 2.0739; % Tтабл (n-m-1;?) = (22;0.05) = 2.0739
C = inv(D'*D);
tb1 = b(2)/(sqrt(sum(r.^2) / 22)*sqrt(C(2,2)))
tb2 = b(3)/(sqrt(sum(r.^2) / 22)*sqrt(C(3,3)))
tb3 = b(4)/(sqrt(sum(r.^2) / 22)*sqrt(C(4,4)))
%% Матрица парных коэффициентов корреляции
fprintf('Матрица парных коэффициентов корреляции:')
R = corrcoef([y x1 x2 x3])
% коэффициент множественной корреляции
fprintf('коэффициент множественной корреляции:')
kor = sqrt(stats(1))
%коэффициент множественной детерминации
fprintf('коэффициент множественной детерминации:')
R2 = stats(1)
%% Частные коэффициенты элластичности:
E1 = b(2)*mean(x1)/mean(y)
E2 = b(3)*mean(x2)/mean(y)
E3 = b(4)*mean(x3)/mean(y)
% Beta-коэффициенты:
B = R(2:end, 1);%вырежем из матрицы R певый столбец
A = R(2:end,2:end);%вырежем из матрицы R элементы 
bet = inv(A)*B
% частные коэффициенты корреляции:
%% Стандартизированная форма уравнения
fprintf('Стандартизированная форма уравнения регрессии имеет вид:')
t_y = subs(sym('b1*t1 + b2*t2 + b3*t3'),{'b1','b2','b3'},[bet(1) bet(2) bet(3)])
%% Значимость модели (F-критерий Фишера)
F_mod = (R2*(n - m - 1))/((1-R2)*m)
Вложения
Тип файла: txt lab3_1.txt (364 байт, 31 просмотров)
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
11.01.2015, 21:34
Лучший ответ Сообщение было отмечено ЕкатеринаК как решение

Решение

Цитата Сообщение от ЕкатеринаК Посмотреть сообщение
Что не так с моим "самопальным" МНК???
2 элемента матрицы были заданы неверно.
Matlab M
1
2
A(3,1) = A(1,3);
A(4,1) = A(1,4);
2
0 / 0 / 0
Регистрация: 27.11.2014
Сообщений: 33
13.01.2015, 21:27  [ТС]
ОГРОМНОЕ СПАСИБО!!!!!!!!!!!!!!!!!!!!!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.01.2015, 21:27
Помогаю со студенческими работами здесь

Как открыть модель, сделанную в Matlab 2017b, в Matlab 2012b?
Есть модель (.mdl) создана в Matlab 2017b. Как её открыть в Matlab 2012b?

Parse error at case matlab: usage might be invalid matlab syntax
Сразу говорю: В матлабе работаю ровно месяц. В общем, делаю форму, для вывода графика в axix. Проблема в следующем. Я пытаюсь изменить цвет...

Почему программа написанная в MATLAB 5.2 не работает в MATLAB 7.5 ?
Здравствуйте уважаемые форумчане. У меня возникла проблема с программой, написанной в MATLAB 5.2. Дело в том, что при её запуске в более...

Производительность Matlab 6.5 и Matlab r2013b
Есть два ноутбука: 1.Intel Celeron Dual-Core T3100 1.90GHz 2ГБ ОЗУ WinXP (32bit) - Матлаб 6.5 2.Intel Core i5 3230M 2.6GHz 6ГБ ОЗУ Win8...

Открытие файла Matlab 7.14 в Matlab 7.12
доброго всем вечера.такая вот проблемка.создал файл в матлабе,но в версии 7.14 немного заргуженнее блок signal constraint, вот установил...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru