Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

черняк

.pdf
Скачиваний:
42
Добавлен:
19.03.2015
Размер:
4.29 Mб
Скачать

Рис.13.57. Оцінена система рівнянь

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

373

Розділ 14. Розв'язання задач у середовищі Mathematica

14.1. Основні команди середовища Mathematica

Цей розділ підручника призначений допомогти користувачу в повсякденній роботі з Mathematica для розв'язання багатьох задач, особливо з економетрики. Ми маємо проілюструвати можливості пакету Mathematica для виконання конкретних завдань, які можуть виникати в економетристів. Крім цього, буде показано, як можна розробляти та використовувати самостійно написані програми.

Mathematica це цілком інтегроване середовище для технічної роботи. Уперше воно вийшло друком у 1988 і зробило величезний крок уперед у використанні компютерної техніки в багатьох галузях. Середовище Mathematica розробив Стефан Вольфрам (Stephen Wolfram) у компанії Wolfram Research під Windows-орієнтовані операційні системи. Програма являє собою стандартний MDI інтерфейс, тобто дозволяє одночасно працювати з кількома документами. Розглянемо основні команди меню, з якими працюватимемо доволі часто.

Серед основних пунктів меню слід зазначити:

 

 

Таблиця 14.1

 

 

 

Меню

 

Дозволяє:

Файл

File

створювати нові, записувати на диск, зчитувати з

 

 

диску, роздруковувати файли з програмами та

 

 

розрахунками.

Редагув

Edit

здійснювати стандартні операції з копіювання,

ати

 

знищення, вставляння даних, відміни останньої

 

 

операції.

Чарунк

Cell

налаштовувати параметри чарунок

а

 

 

Формат

For

форматувати текст, документ, чарунки, змінювати

 

mat

шрифти, кольори тощо.

Уведенн

Inpu

створювати форми для роботи з даними

яt

Ядро

Kern

змінювати опції запуску програми обчислень,

 

el

робити розрахунки в заданій послідовності.

Знайти

Find

здійснювати пошук у документі.

Вікно

Win

переключатися між вікнами документів.

 

dow

 

Допомо

Help

отримувати підказку за всіма командами

га

 

середовища Mathematica.

Кожна команда записується в окрему чарунку, яка праворуч відокремлена синім кольором. Для виконання команди слід поставити курсор у відповідну чарунку і натиснути клавішу Enter, яка розташована у правому нижньому куті клавіатури (такий самий ефект має комбінація клавіш Shift + Enter). Якщо треба записати в чарунку кілька команд (програми), то введення кожної з них має

374

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

Ядро Обчислення Обчислення записної книги (Kernel Evaluation Evalua te Notebook).

Після активізації команди чи програми Mathematica приймає в чергу відповідну чарунку й дає їй відповідний номер у форматі In(X):, де Х номер команди, яка виконується з початку роботи інтерпретатора команд Kernel. Після завершення обчислень видається результат у новій чарунці, яка має той самий номер Х: Out(X):. Кожній чарунці In(X): відповідає єдина чарунка Out(X), тому завжди легко знайти в документі відповіді на завдання програми. Для обнуління всіх змінних та даних достатньо вийти з Kernel і перезавантажити його.

Для здійснення арифметичних обчислень слід набрати необхідний вираз у чарунці, використовуючи знаки "+", "-", "*", "/","^" та дужки. Наприклад,

2+2 (12^2+30/6-1)*(9^(1/2)-1).

Для більш зручного представлення виразів їх можна набирати за допомогою спеціальних наборів символів, які можна визвати командою меню Файл Палитры (File Paletts) та вибором однієї з семи запропонованих таблиць. Залежно від необхідних символів користувач обирає одну з них. Для набору команд нашого курсу найбільш зручним буде вікно Basic Input. За допомогою нього останній вираз можна представити як

(122 306 1)*( 9 1) .

Значною перевагою Mathematica є можливість обробляти дуже великі числа. Наприклад,

100!

6^200.

Крім цього, значення виразів можна присвоювати змінним. Зауважимо, що назва змінної має починатися з літери, наприклад,

a = 6

Вирази, звичайно, можуть містити й змінні

(a + 3) (a - 3)

Якщо треба підрахувати значення виразу при якомусь значенні змінної, то можна зробити таким чином:

b ^ 2/. b 2 b 2

Замість b Mathematica підставить значення 2 і видасть відповідь 4. Усі функції Mathematica починаються лише з великої літери, а її параметри, на відміну від багатьох мов програмування, записано у квадратних дужках. Наприклад, Random[], яка видає випадкове число

375

від 0 до 1. Щоб випадкове число було згенеровано з деякого проміжку й мало визначений формат, цю функцію треба викликати з параметрами:

Random[Integer, {1, 100}] Random[Real, {0, 10}]

Важливою функцією є N, яка дозволяє перевести будь-який вираз у десятковий дріб з необхідною кількістю цифр після коми:

N[Pi, 200],

N[12/23, 7].

Узагальненням змінних є вектори, масиви та матриці. Щоб задати вектор, слід указати всі його елементи у фігурних дужках:

v1 = {1, 2, 3, 4}.

Вектор може містити елементи-вектори: v2 = {1, 2, {4, 5, 6}, 7, {2, 3, {1, 2}}, 8}.

Під матрицею розуміємо вектор, що містить однакові за довжиною елементи-вектори:

K = {{1, 2, 3}, {4, 5, 6}}.

Такий вираз являє собою матрицю з двома рядками та трьома стовпчиками. Щоб звернутися до деякого елементу матриці або вектора, треба вказати його координати в подвійних квадратних дужках:

v2[[1]], K[[1, 2]].

Якщо для матриці вказати лише одну координату, то результатом буде цілий рядок

K[[1]].

Для наочного представлення матриць і векторів використовують функцію MatrixForm:

MatrixForm[K].

Слід зазначити, що Mathematica по-різному інтерпретує добуток векторів. Якщо використовувати знак "*", то в результаті отримуємо поелементний добуток, а якщо знак "." – то скалярний добуток. Порівняйте:

q1={1, 2, 3}, q2={3, 4, 5}, q1*q2, q1.q2.

Для множення матриць найчастіше використовують знак ".":

A = {{1, 2}, {3, 4}},

B = {{2, 3}, {5, 6}}. A.B.

Функція Length повертає кількість елементів вектора:

Length[v1],

Length[K].

Функція Table дозволяє створити вектор або матрицю:

376

f1 = Table[i, {i, 1, 20}],

m1 = Table[(i+j)^2, {i, 1, 4}, {j, 1, 5}].

У першому прикладі створюють вектор, що містить числа від 1 до 20, у другому будують матрицю розміру 4х5, кожна чарунка якої містить квадрат суми відповідного рядка та стовпчика.

Для визначення детермінанту матриці використовують функцію

Det: Det[A].

За допомогою функцій Transpose та Inverse знаходять транспоновану й обернену матриці, відповідно:

Transpose[A],

Inverse[A].

Для виділення першого або останнього елементів використовуються функції First та Last:

First[f1],

Last[f1].

Корисними слід уважати функції Take та Drop. Перша виокремлює з початку вектора кількість елементів, указаних у другому параметрі. Якщо він від'ємний, то елементи виокремлюються з кінця вектора. На відміну від цієї функції, Drop відкидає з вектора вказану кількість елементів. Якщо ця кількість від'ємна, то відкидаються останні елементи:

Take[f1, 4],

Take[f1, -4],

Drop[f1, 4],

Drop[f1, -4],

Для з'єднання кількох векторів використовують функцію Join: f2 = Join[f1, f1].

Сортування вектора здійснюють функцією Sort: f3 = Sort[f2]

Змінити порядок елементів на обернений дозволяє Reverse:

Reverse[f3]

Функції RotateLeft та RotateRigth зміщують усі елементи на відповідну кількість позицій ліворуч або праворуч:

RotateLeft[f3, 5],

RotateRight[f3, 3].

Велике значення у вивченні властивостей економічних змінних має графічний аналіз. Mathematica пропонує легкий і потужний механізм побудування діаграм. Найпростіший графік можна побудувати за допомогою функції Plot. Для цього слід указати всі функції, які треба побудувати, а також інтервал, на якому слід здійснити побудування:

Plot[{Sin[x]*Cos[2x], Log[x]}, {x, 1, 2*Pi}].

Функція ListPlot дозволяє будувати графік за значеннями кількох векторів, якщо інший не задано, то автоматично додається вектор з координатами 1, 2, 3, … тощо:

377

q = Table[Random[Integer, {1, 20}], {i, 1, 40}], ListPlot[q, PlotJoined True].

Нарешті, графік функції, заданої неявно, можна побудувати за допомогою функції ParametricPlot:

ParametricPlot[{Cos[5t], Sin[3t]}, {t, 0, 2*Pi}, AspectRatio Automatic]

Аналогічно графіки слід будувати в тривимірному просторі:

Plot3D[Sin[xy], {x, 0, 4}, {y, 0, 4}]

Важливу роль у середовищі Mathematica грають модулі. Справді, недоречно тримати у пам'яті комп'ютера всі відомі функції, більша частина з яких не потрібна користувачеві, тому було вирішено дозволити завантажувати функції тоді, коли вони потрібні. Користувач повинен указати назву модуля, у якому зберігаються відповідні програми та змінні. Для цього використовують оператор Get або скорочено "<<":

<<Statistics`LinearRegression`.

Відразу після "<<" слід указати назву папки, де міститься модуль, потім у лапках назву модуля. Зверніть увагу на лапки: вони нестандартні!

Для визначення назв усіх функцій завантаженого модуля слід визвати функцію Names:

Names["Statistics`LinearRegression`*"].

Для виведення функцій, які мають відповідний правопис, також використовують функцію Names з маскою. Наступний приклад виводить усі функції, назва яких починається з R:

Names["R*"].

Часто доводиться працювати з різноманітними розподілами. Для цього призначено пакет

<<Statistics`ContinuousDistributions`.

За його допомогою можна викликати такі розподіли:

F-розподіл: FratioDistribution[regr1, regr2], t- розподіл: StudentTDistribution[regr],

2 розподіл: ChiSquareDistribution[regr].

Нормальний розподіл: NormalDistribution[ , ]

Щоб знайти квантиль розподілу, використовують функцію Quantile: Quantile[StudentTDistribution[regr, 1-α/2].

14.2. Оцінка економетричних моделей

Найуживанішою функцію для економетричних розрахунків є функція Regress. Вона має три обов'язкові параметри та два необов'язкові.

На першому місці зазначають матрицю змінних, за якими будують регресію. Слід зауважити, що залежна змінна завжди має бути на останньому місці.

378

Другим параметром слугує список усіх змінних у відповідних формах, що входять до регресії.

Третій параметр указує на список дійсних змінних, що їх використовують. Список збігається з переліком незалежних змінних у матриці змінних.

Для другого та третього параметра слід обрати такі назви змінних, які не було використано раніше.

Розглянемо кілька прикладів запису функції Regress.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблиця 14.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вид регресії

 

 

 

 

 

 

Другий

Третій

 

 

 

 

 

 

 

 

параметр

параметр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y x

 

 

 

 

 

 

{1,t}

{t}

y 0 1x1 2x2

 

 

 

 

{1, t1, t2}

{t1, t2}

y

0

x

 

x

2

 

3

x2

 

 

{1, t1, t2, t1^2}

{t1, t2}

 

 

1

1

 

2

 

 

1

 

 

 

 

 

y

x

 

x2

 

3

x2 ln x

2

 

{1, t1, t1^2,

{t1, t2}

0

 

1

1

 

 

2

1

 

 

 

1

 

 

t1^2*Log[t2]}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Якщо треба побудувати регресію без константи, маємо явно вказати це комп'ютеру:

Regress[Z, {t}, {t}, IncludeConstant False].

Функція Regress може містити ще один параметр RegressionReport набір відповідних опцій, які вказують на те, які кількісні характеристики моделі треба показати на екрані.

 

Таблиця 14.3

 

 

 

Опція

Описання

BestFit

Функція регресії

 

BestFitParameters

Параметри регресії

 

ANOVATable

Коваріаційно-дисперсійна таблиця

 

EstimatedVariance

Оцінка дисперсії залишків

 

ParameterTable

Оцінка моделі

 

ParameterCITable

Надійні інтервали для коефіцієнтів

 

 

регресії

 

ParameterConfidenceReg

Надійна область для коефіцієнтів моделі

 

ion

 

 

FitResiduals

Залишки моделі

 

PredictedResponse

Оцінки залежної змінної на основі

 

 

регресії

 

SinglePredictionCITable

Надійні інтервали для прогнозних

 

 

значень

 

RSquared

Коефіцієнт детермінації

 

 

379

Опція

Описання

AdjustedRSquared

Скоригований коефіцієнт детермінації

CoefficientOfVariance

Коефіцієнт варіації

CovarianceMatrix

Коваріаційна матриця

CorrelationMatrix

Кореляційна матриця

Якщо параметр не вказано, то автоматично підраховуються

ParameterTable, ANOVATable, RSquared, AdjustedRSquared. Щоб змінити порядок виведення характеристик чи їхнього набору, треба вказати список необхідних опцій:

Regress[Z, {1, t}, {t}, RegressionReport {RSquared, ParameterTable, CorrelationMatrix, AdjustedRSquared, SinglePredictionCITable, MeanPredictionCITable, FitResiduals}]

Приклад 14.1. Оцінювання й аналіз регресії в середовищі

Mathematica

1. На основі наведених місячних даних (y дохід фірми, млн грн; x1 – кількість працівників; x2 – кількість оброблених документів, тис. с., x3 – відношення зарплати президента фірми до середньої зарплати по фірмі)

y

x1

x2

x3

62,4

37

0,87

60,6

 

 

9

0

105,

51

2,74

63,7

9

 

2

5

152,

55

3,39

45,3

8

 

3

8

144,

64

3,62

91,0

8

 

5

0

159,

75

3,63

73,2

2

 

5

3

159,

81

3,72

33,8

0

 

4

1

159,

85

3,87

33,8

0

 

1

7

184,

85

4,37

19,9

2

 

9

3

181,

87

4,40

99,6

8

 

7

9

166,

88

4,61

63,9

5

 

3

8

188,

90

4,63

83,5

4

 

8

0

190,

91

4,63

75,5

2

 

9

4

380

y

x1

x2

x3

192,

91

4,74

90,8

8

 

3

2

196,

93

4,79

47,9

5

 

5

8

196,

94

4,88

82,6

7

 

9

2

202,

98

4,91

19,5

5

 

1

8

193,

101

5,25

71,1

6

 

6

6

236,

101

5,47

96,9

0

 

6

0

237,

111

5,63

78,9

1

 

3

2

230,

114

5,74

86,9

5

 

0

7

230,

115

5,75

47,2

9

 

0

3

251,

119

5,76

46,9

3

 

2

4

256,

125

5,95

34,7

1

 

7

8

260,

129

6,00

55,9

6

 

1

1

258,

132

6,01

86,6

4

 

7

3

268,

134

6,15

83,1

8

 

3

8

277,

137

6,60

89,4

6

 

9

0

311,

164

7,17

64,9

1

 

8

1

337,

167

7,96

23,4

7

 

2

0

359,

171

8,62

59,3

9

 

4

8

381

Побудувати регресію вигляду yt 0 1x1t 2x2t t . Обчислити

коефіцієнт детермінації та скоригований коефіцієнт детермінації моделі. Перевірити модель на адекватність, 0,05 .

2.Перевірити гіпотезу 1 0,9 , 0,05 .

3.Перевірити модель на стійкість, розбивши всі спостереження на дві групи розмірами n1 10 , n2 20 , 0,05 .

4.Перевірити наявність гетероскедастичності за критерієм Голдфелда Квондта, n1 9 , n2 9 , 0,05 .

5.Перевірити наявність гетероскедастичності за критерієм Уайта,

0,05 .

6.Перевірити наявність автокорельованості збурень, 0,05 .

Розв'язання

Для розв'язання всіх пунктів спочатку слід завантажити два модулі:

<<Statistics`LinearRegression`

<<Statistics`ContinuousDistributions`

Завантажуємо дані (зверніть увагу, що для введення дробових виразів слід використовувати знак крапка ".", а не кома):

x1 = {37, 51, 55, 64, 75, 81, 85, 85, 87, 88, 90, 91, 91, 93, 94, 98, 101, 101, 111, 114, 115, 119, 125, 129, 132, 134, 137, 164, 167, 171};

x2 = {0.8792, 2.742, 3.393, 3.625, 3.635, 3.724, 3.871, 4.379, 4.407, 4.613, 4.638, 4.639, 4.743, 4.795, 4.889, 4.911, 5.256, 5.476, 5.633, 5.74, 5.75, 5.762, 5.957, 6.001, 6.017, 6.153, 6.609, 7.178, 7.962, 8.624};

x3 = {60.6, 63.75, 45.38, 91., 73.23, 33.81, 33.87, 19.93, 99.69, 63.98, 83.5, 75.54, 90.82, 47.98, 82.62, 19.58, 71.16, 96.9, 78.92, 86.97, 47.23, 46.94, 34.78, 55.91, 86.63, 83.18, 89.4, 64.91, 23.4, 59.38};

y = {62.36, 105.9, 152.8, 144.8, 159.2, 159., 159., 184.2,181.8, 166.5, 188.4, 190.2, 192.8, 196.5, 196.7, 202.5, 193.6, 236., 237.1, 230.5, 230.9, 251.3, 256.1, 260.6, 258.4, 268.8, 277.6, 311.1, 337.7, 359.9};

На основі даних створюємо регресійну матрицю:

Z = Transpose[{x1, x2, x3, y}].

Будуємо регресію (зверніть увагу, що результат функції Regress

збережено в змінній r):

r = Regress[Z,{1, t1, t2, t3}, {t1, t2, t3}].

Вивід Mathematica має вигляд:

ParameterTable

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Estimate

SE

Tstat

Pvalue

 

1

 

4.43555

 

 

 

7.43955

 

 

0.596212

 

0.556189

 

 

 

 

t1

 

0.806571

 

 

0.2226885

 

 

3.55498

 

 

0.00147472

 

 

 

 

t2

 

24.7707

 

 

 

4.83389

 

 

5.12438

 

 

0.0000242097

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

382

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]