![]() |
||
Главная Рефераты по сексологии Рефераты по информатике программированию Рефераты по биологии Рефераты по экономике Рефераты по москвоведению Рефераты по экологии Краткое содержание произведений Рефераты по физкультуре и спорту Топики по английскому языку Рефераты по математике Рефераты по музыке Остальные рефераты Рефераты по авиации и космонавтике Рефераты по административному праву Рефераты по безопасности жизнедеятельности Рефераты по арбитражному процессу Рефераты по архитектуре Рефераты по астрономии Рефераты по банковскому делу Рефераты по биржевому делу Рефераты по ботанике и сельскому хозяйству Рефераты по бухгалтерскому учету и аудиту Рефераты по валютным отношениям Рефераты по ветеринарии Рефераты для военной кафедры Рефераты по географии Рефераты по геодезии Рефераты по геологии Рефераты по геополитике Рефераты по государству и праву Рефераты по гражданскому праву и процессу Рефераты по делопроизводству Рефераты по кредитованию Рефераты по естествознанию Рефераты по истории техники Рефераты по журналистике Рефераты по зоологии Рефераты по инвестициям Рефераты по информатике Исторические личности Рефераты по кибернетике Рефераты по коммуникации и связи |
Дипломная работа: Регресійний аналіз інтервальних данихДипломная работа: Регресійний аналіз інтервальних данихМІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ДНІПРОПЕТРОВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ ДИПЛОМНА РОБОТА Регресійний аналіз інтервальних даних Виконала: студентка групи МС-03-1 Припутень Ю.А. Дніпропетровськ 2008 Реферат Об’єкт дослідження: алгоритми регресійного аналізу пристосовані для обробки інтервальних даних. Мета роботи: розробити програму, яка здійснює знаходження нтервалів для коефіцієнтів регресії. Програма повинна дозволяти подавати результати у вигляді зручному для користувачів, мати інтерфейс та бути зручною у користуванні. Одержані висновки та їх новизна: в роботі був створений алгоритм для знаходження інтервальних оцінок коефіцієнтів та розроблено програмне середовище, що дозволяє досліджувати роботу цього алгоритму. Результати дослідження можуть бути застосовані для обробки статистичної інформації. Перелік ключових слів: лінійна регресія, метод найменших квадратів, інтервальні дані. Зміст Вступ Розділ І. Лінійна багатовимірна регресія Розділ ІІ. Довірч нтервали регресії. Похибка прогнозу Розділ ІІІ. Лінійний регресійний аналіз інтервальних даних 3.1 Метод найменших квадратів для інтервальних даних 3.2 Метод найменших квадратів для лінійної моделі 3.3 Парна регресія Розділ IV. Програмний продукт «Інтервальне значення параметрів» 4.1 Текст програми 4.2 Опис програми 4.3 Результати роботи програми Висновки Список використаних джерел
Вступ
Перспективний і швидко прогресуючий напрямок останніх років математична статистика інтервальних даних. Мова йде про розвиток методів математичної статистики в ситуації, коли статистичні дані - не числа, а нтервали, породжені накладенням помилок виміру на значення випадкових величин. Дана дипломна робота складається з чотирьох розділів. Перш три розділі мають реферативний характер. В першому розділі викладені деяк поняття класичної теорії регресійного аналізу. В другому розділі розглянут довірчі інтервали для коефіцієнтів регресії. В третьому розділі наведені іде підходи лінійного регресійного аналізу інтервальніх даних. В четвертому розділ викладені результати дипломної роботи. Тут наведено алгоритм, текст та опис розроблених програм, які здійснюють знаходження нотни та оцінок коефіцієнтів регресії в класичному вигляді та в інтервальних даних. За допомогою розроблених програм в цьому ж розділі наведено результати експериментального дослідження залежності величин інтервалів, як накривають коефіцієнти регресії в залежності від об’єму вибірки та величин нтервалів в яких знаходяться значення координат вибірки. Програми створені за допомогою середовища Maple, так як воно по всім параметрам (швидкість, надійність, простота у використанні) підходить для написання цих програм. Постановка задачі. В робот необхідно розв’язати такі задачі: 1. Розробити програму. Програма повинна працювати з вибірками довільної вимірності і довільними векторами найбільших похибок для кожної координати. 2. Провести чисельно дослідження залежності верхньої та нижньої меж інтервалів, що накривають коефіцієнти регресії, в залежності від об’єму вибірки і векторів найбільших похибок для кожної координати. Розділ І. Лінійна багатовимірна регресія Нехай Припустимо тепер, що де Якщо величина
У матричному вигляді, отримаємо: Або
де Означення: Матриця Але в деяких випадках Модель (1) або (2) лінійна відносно невідомих параметрів. Тому її називають лінійною моделлю. Перед тим як оцінювати вектор Для оцінки невідомих параметрів
за параметрами
Шукаємо градієнт Розв’язуємо рівняння: Таким чином
Необхідно перевірити, що знайдена стаціонарна точка є точкою мінімуму
функції Перевіримо цю рівність: Ліва частина тотожності мінімальна якщо Регресію будемо позначати Залишок Мінімальне значення суми квадратів залишків Застосуємо формулу (2.1), RSS перепишеться: Якщо застосувати формулу (2.2), отримаємо:
Оцінки Розділ ІІ. Довірчі інтервали регресії. Похибка прогнозу Нехай прогнозоване значення
В силу того, що Використавши теорему про дисперсії суми залежних величин, одержимо: Перепишемо у вигляді: де Оскільки значення
Таким чином, середнє значення
Розділ ІІІ. Лінійний регресійний аналіз інтервальних даних Перейдемо до багатомірного статистичного аналізу. Спочатку з позиції асимптотичної математичної статистики інтервальних даних розглянемо оцінки методу найменших квадратів (МНК). Статистичне дослідження залежностей - одне з найбільш важливих задач, які виникають у різних галузях науки й техніки. Під словами "дослідження залежностей" мається на увазі виявлення і опис існуючого зв'язку між досліджуваними змінами на підставі результатів статистичних спостережень. Якщо яка-небудь група об'єктів характеризується змінними Але процес виміру не дає однозначний результат. Реально
результатом виміру якої-небудь величини Х є два числа: 3.1 Метод найменших квадратів для інтервальних даних Нехай математична модель задана:
де х = (х1, х2,..., хm)
- вектор впливаючих змінних, що піддаються виміру; Нехай проведено n досвідів, причому в кожному досвід обмірювані (один раз) значення відгуку (у) і вектора факторів (х). Результати вимірів можуть бути представлені в наступному виді: де Х - матриця значень обмірюваного вектора (х) в n досвідах; Y - вектор значень обмірюваного відгуку в n досвідах; Е - вектор випадкових помилок. Тоді виконується матричне співвідношення:
де Введемо міру близькості
тобто де
У загальному випадку рішення цього екстремального завдання може бути не єдиним. Тому надалі будемо мати на увазі одне із цих рішень. Воно може бути виражене у вигляді: причому Перевага методу найменших квадратів полягає в порівняльній простоті й універсальності обчислювальних процедур. Однак не завжди оцінка МНК самостійною, що обмежує його застосування на практиці. Важливим частковим випадком є лінійний МНК, коли Q(x,
де Якщо матриця Нехай виконуються наступні припущення щодо розподілу похибок - помилки - результати спостережень мають однакову дисперсію D { - помилки спостережень некорельовані, тобто Тоді, як відомо, оцінки МНК є найкращими лінійними оцінками, тобто спроможними і незміщеними оцінками, які являють собою лінійні функц результатів спостережень і мають мінімальні дисперсії серед безлічі всіх лінійних незміщених оцінок. Далі саме цей найбільше практично важливий окремий випадок розглянемо більш докладно. Запишемо істині дані в наступній формі: де R - індекс, що вказує на те, що значення істинне. Істині і обмірювані дані пов’язані таким чином: де Припустимо, що похибки виміру відповідають граничним умовам
Нехай безліч W можливих значень Тоді Введемо поняття нотни. Означення: Величину максимально можливого (по абсолютній
величині) відхилення, викликаного похибками спостережень Nf(x) = sup | f(y) - f(x) |, де супремум береться по безлічі можливих значень вектора
похибки Якщо функція f має частинні похідні другого порядку, а обмеження на похибку мають вигляд
причому Щоб одержати асимптотичний (при а мінімум, що відрізняється від максимуму тільки знаком,
досягається при порядку має вигляд
Цей вираз назвемо асимптотичною нотною. Покладемо: Будемо називати n(1) нижньою нотною, а n(2) верхньою нотною. Припустимо, що при безмежному зростанні числа вимірів n, тобто при
Розглянемо довірчу множину З визначення верхньої й нижньої нотни треба, щоб завжди
Відповідно до визначення нижньої асимптотичної нотни й
верхньої асимптотичної нотни можна вважати, що Розіб'ємо P на L гіперпаралелепіпедів. Нехай де Таким чином, безліч C характеризує невизначеність при
оцінюванні вектора Введемо деяку міру М(X), що характеризує "величину"
множини
Прикладом такої міри є площа для r = 2 і об’єма для r = 3. Тоді: М(C) = М(P) + М(F), (3.1.6) де F = C \ P. Тут М(F) характеризує міру статистично невизначеності, у більшості випадків вона спадає при збільшенні числа досвідів n. У той же час М(P) характеризує міру інтервальної невизначеності, і, як правило, М(P) прагне до деякої постійної величини при збільшенні числа досвідів n. Нехай тепер потрібно знайти те число досвідів, при якому статистична невизначеність становить δ-ю частина загальної невизначеності, тобто М(F) = δ М(C), (4.1.7) де δ < 1. Тоді, підставивши співвідношення (4.1.7) у рівність (4.1. 6) і вирішивши рівняння відносно n, одержимо шукане число досвідів. В асимптотичній математичній статистиці інтервальних даних воно називається "раціональним обсягом вибірки". 3.2 Метод найменших квадратів для лінійної моделі Розглянемо найбільш важливий для практики окремий випадок МНК, коли модель є лінійною. Для простоти опису перетворень пронормуємо змінні хij,уi. Наступним чином: де Тоді Надалі будемо вважати, що розглянуті змінні пронормован описаним образом, і верхні індекси опустимо. Для полегшення демонстрац основних ідей приймемо досить природні припущення. 1. Для розглянутих змінних існують наступні межі: 2. Кількість досвідів n таке, що можна користуватися
асимптотичними результатами, отриманими при 3. Погрішності виміру задовольняють одному з наступних типів обмежень: Тип 1. Абсолютні погрішності виміру обмежені згідно (4.1.3): Тип 2. Відносні погрішності виміру обмежені: Тип 3. Обмеження накладені на суму погрішностей: Перейдемо до обчислення нотни оцінки МНК. Справедлива рівність: Скористаємося наступною теоремою з теорії матриць. Теорема. Якщо функція f(λ) розкладається в степеневий ряд у колі збіжності |λ – λ0| < r, тобто то це розкладання зберігає силу, якщо скалярний аргумент замінити будь-якою матрицею А, характеристичні числа якої λk, k = 1,…,n, лежать всередині кола збіжності. Легко переконатися, що: Це випливає з послідовності рівностей: Застосуємо наведену вище теорему з теорії матриць, припускаючи А = Δ Z і приймаючи, що власні числа цієї матриц задовольняють нерівності |λk|<1. Тоді одержимо: Підставивши останнє співвідношення на закінчення згадано теореми, одержимо: Для подальшого аналізу знадобиться допоміжне твердження. Виходячи із припущень 1-3, доведемо, що: Доведення. Справедлива рівність де тоді де Інакше кажучи, кожен елемент матриці, позначеної як о(1/n), нескінченно малою величиною порядку 1/n. Для розглянутого випадку cov(x) = E, тому Припустимо, що n досить велике і можна вважати, що власн числа матриці о(1/n) менше одиниці по модулю, тоді що і було потрібно довести. Підставимо доведене асимптотичне співвідношення у формулу для
приросту Виразимо Δ Перейдемо від матричної до скалярної форми, опускаючи індекс (R): Будемо шукати max(|Δ Тип 1 (абсолютні похибки виміру обмежені). Тоді: Тип 2 (відносні похибки виміру обмежені). Аналогічно одержимо: Тип З (обмеження накладені на суму похибок). Припустимо, що |Δ які ми позначимо як: тоді: Через лінійність останнього вираження і виконання обмеження типу 3: Для спрощення запису зробимо наступні заміни: Тепер для досягнення поставленої мети можна сформулювати наступне завдання, що розділяється на m типових завдань оптимізації: при обмеженнях Перепишемо функції, що мінімізуємо, в наступному вигляді: Очевидно, що fik > 0. Легко бачити, що Отже, необхідно вирішити nm завдань при обмеженнях "типу рівності": Сформульоване завдання пошуку екстремуму функції. Воно легко вирішується. Оскільки то максимальне відхилення МНК - оцінки k-ого параметра дорівнює 3.3 Парна регресія Найбільш простий і одночасно найбільше широко застосовуваний окремий випадок парної регресії розглянемо докладніше. Модель має вигляд
Тут xi - значення фактора (незалежно
змінної),
якщо покласти Природно прийняти, що похибки факторів описуються матрицею У розглянутій моделі інтервального методу найменших квадратів де X,
з точністю до нескінченно малих більш високого порядку по Легко бачити, що
де підсумовування проводиться від 1 до n. Для спрощення позначень надалі і до кінця дійсного пункту не будемо вказувати ці меж підсумовування. З (3.3.4) випливає, що
Легко підрахувати, що
Покладемо Тоді знаменник в (3.3.5) дорівнює
Тут і далі опустимо індекс і, по якому проводиться підсумовування. З (3.3.5) і (3.3.7) випливає:
де Обчислимо основний множник в (3.3.3)
де Перейдемо до обчислення другого члена з
де Складаючи праві частини (3.3.9) і (3.3.10) і помножуючи на у,
одержимо остаточний вид члена з
де
Для обчислення нотни виділимо головний лінійний член. Спочатку знайдемо частинні похідні. Маємо
Якщо обмеження мають вигляд то максимально можливе відхилення оцінки а* параметра а
через погрішності
де похідні задані формулою (3.3.12). Розділ IV. Програмний продукт «Інтервальне значення параметрів»
4.1 Текст програми restart:with(LinearAlgebra): Klassic ocenki_parametrov: > ocenki_parametrov:=proc(viborka,nomer_zavis_koord) local kol_strok,kol_stolbcov,matrica_X,vektor_Y_1,vektor_Y, X_transpon,otvet_prom,otvet; kol_strok:=RowDimension(viborka): kol_stolbcov:=ColumnDimension(viborka): matrica_X:=DeleteColumn(viborka,nomer_zavis_koord..nomer_zavis_koord): vektor_Y_1:=DeleteColumn(viborka,1..nomer_zavis_koord-1): vektor_Y:=DeleteColumn(vektor_Y_1,2..kol_stolbcov-nomer_zavis_koord+1): X_transpon:=Transpose(matrica_X): otvet_prom:=MatrixInverse(MatrixMatrixMultiply(X_transpon,matrica_X)): otvet:=MatrixMatrixMultiply(MatrixMatrixMultiply(otvet_prom,X_transpon),vektor_Y): end proc: Notna ocenki_parametrov: > notna_ocenki_parametrov:=proc(viborka,nomer_zavis_koord,pogr) local kol_strok, kol_stolbcov, matrica_X,vektor_Y_1, vektor_Y, n,m,j,k,c,i,pogr_Y,pogr_X,vector_beta,pod_sum_vnutr,summa_vnutr,sum_vnesh,pod_summa_2,summa_2,summa; global otv: kol_strok:=RowDimension(viborka): kol_stolbcov:=ColumnDimension(viborka): matrica_X:=DeleteColumn(viborka,nomer_zavis_koord..nomer_zavis_koord): vektor_Y_1:=DeleteColumn(viborka,1..nomer_zavis_koord-1): vektor_Y:=DeleteColumn(vektor_Y_1,2..kol_stolbcov-nomer_zavis_koord+1): m:=kol_stolbcov-1: n:=kol_strok: pod_sum_vnutr:=array(1..n): summa_vnutr:=array(1..m): sum_vnesh:=array(1..m): pod_summa_2:=array(1..n): summa_2:=array(1..m): summa:=array(1..m): pogr_Y:=pogr[nomer_zavis_koord]: pogr_X:=array(1..m): for i to m do if i<nomer_zavis_koord then pogr_X[i]:=pogr[i]: else pogr_X[i]:=pogr[i+1]: end if: end do: vector_beta:=ocenki_parametrov(viborka,nomer_zavis_koord): for k to m do for j to m do for i to n do pod_sum_vnutr[i]:=abs(2*matrica_X[i,k]*vector_beta[k,1]/(m-1) +matrica_X[i,j]*vector_beta[j,1]- vektor_Y[i,1]/(m-1))*pogr_X[k] +abs(matrica_X[i,k]*vector_beta[j,1])*pogr_X[j]: end do: summa_vnutr[j]:=sum('pod_sum_vnutr[ii]','ii'=1..n): end do: sum_vnesh[k]:=sum('summa_vnutr[jj]','jj'=1..k-1)+sum('summa_vnutr[jj]','jj'=k+1..m): for c to n do pod_summa_2[c]:=abs(matrica_X[c,k]): end do: summa_2[k]:=sum('pod_summa_2[d]','d'=1..n)*pogr_Y: summa[k]:=(sum_vnesh[k]+summa_2[k])/n: end do: otv:=summa: end proc: Final > interval_znachen_param:=proc(viborka,nomer_zavis_koord,pogr) Local razmer,massiv_interv_koeff,parametric,notna,i: global interv: razmer:=ColumnDimension(viborka)-1: massiv_interv_koeff:=array(1..razmer): interv:=Matrix(1..razmer,1..2): parametri:=ocenki_parametrov(viborka,nomer_zavis_koord,pogr): notna:=notna_ocenki_parametrov(viborka,nomer_zavis_koord,pogr): for i to razmer do massiv_interv_koeff[i]:=parametri[i,1]: interv[i,1]:=massiv_interv_koeff[i]-notna[i]: interv[i,2]:=massiv_interv_koeff[i]+notna[i]: end do: interv: end proc: > generator_viborki:=proc(DIGITS,obem_vibork,distrib,parametr) global VIBORK: local i: Digits:=DIGITS: VIBORK:=array(1..obem_vibork): if distrib=NORMAL then for i to obem_vibork do VIBORK[i]:=stats[random, normald[0,parametr]](1): end do: VIBORK: end if: end proc: > real_viborka:=proc(DIGITS,kol_razb,distrib,parametr,model) global mass_Y,mass_X1,mass_X2: local oshibki,nom,i,j: mass_Y:=array(1..(kol_razb+1)^2): mass_X1:=array(1..(kol_razb+1)^2): mass_X2:=array(1..(kol_razb+1)^2): oshibki:=generator_viborki(DIGITS,(kol_razb+1)^2,distrib,parametr): nom:=0: for i from 0 to kol_razb do for j from 0 to kol_razb do nom:=nom+1: mass_Y[nom]:=eval(model,{x1=i/kol_razb,x2=j/kol_razb})+oshibki[nom]: mass_X1[nom]:=evalf(i/kol_razb): mass_X2[nom]:=evalf(j/kol_razb): end do: end do: mass_Y: end proc: > okrug_real_viborka:=proc(DIGITS,digits_okrug,kol_razb,distrib, parametr,model) global VIB: local okrug_mass_Y,okrug_mass_X1,okrug_mass_X2: Digits:=digits_okrug: okrug_mass_Y:=array(1..(kol_razb+1)^2): okrug_mass_X1:=array(1..(kol_razb+1)^2): okrug_mass_X2:=array(1..(kol_razb+1)^2): VIB:=Matrix(1..(kol_razb+1)^2,1..3): okrug_mass_Y:=real_viborka(DIGITS,kol_razb,distrib,parametr,model): okrug_mass_X1:=mass_X1: okrug_mass_X2:=mass_X2: for i to (kol_razb+1)^2 do VIB[i,1]:=okrug_mass_Y[i]: VIB[i,2]:=okrug_mass_X1[i]: VIB[i,3]:=okrug_mass_X2[i]: end do: VIB: end proc: > with(plots): grafic_ocenok:=proc(DIGITS,digits_okrug,kol_razb,distrib,parametr,model,pogr,perek) global ViBVreM,INTERVAL: local gg1n,gg1v,s, gg2n,gg2v,ggg1n,g1, ggg2n,g2,g21, ggg2v,g22,ggg1v: gg1n:=array(2..kol_razb): gg1v:=array(2..kol_razb): for s from 2 to kol_razb do ViBVreM:=okrug_real_viborka(DIGITS,digits_okrug,s,distrib,parametr,model): INTERVAL:=interval_znachen_param(ViBVreM,1,pogr): gg1n[s]:=INTERVAL[1,1]: gg1v[s]:=INTERVAL[1,2]: gg2n[s]:=INTERVAL[2,1]: gg2v[s]:=INTERVAL[2,2]: end do: ggg1n:=[seq([b,gg1n[b]],b=2..kol_razb)]: g1:=plot(ggg1n,'colour'='blue',legend="Нижня межа"); ggg1v:=[seq([b,gg1v[b]],b=2..kol_razb)]: g2:=plot(ggg1v,'colour'='green',legend="Верхня межа"); ggg2n:=[seq([b,gg2n[b]],b=2..kol_razb)]: g21:=plot(ggg2n,'colour'='blue',legend="Нижня межа"); ggg2v:=[seq([b,gg2v[b]],b=2..kol_razb)]: g22:=plot(ggg2v,'colour'='green',legend="Верхня межа"); if perek =1 then gt:=plot(2,t=0..kol_razb,'colour'='red',legend="Істинне значення"): display([g1,g2,gt],'title'="Обчислення першого коефіціента регресіі",'titlefont'=[TIMES,BOLD,18]): else gt:=plot(-4,t=0..kol_razb,'colour'='red',legend="Істинне значення"): display([g21,g22,gt],'title'="Обчислення другого коефіціента регресіі",'titlefont'=[TIMES,BOLD,18]): end if: end proc:
4.2 Опис програми
Основним результатом дипломної роботи є програмний продукт. В робот представлена програма під назвою «Інтервальне значення параметрів», яка реалізує знаходження інтервалів для коефіцієнтів регресії. Під час роботи ця програма використовує допоміжні процедури, які обчислюють класичну оцінку коефіцієнтів регресії та нотну. Програма написана в прикладному математичному пакеті Maple, який являється одним з самих потужних інтелектуальних систем комп`ютерної алгебри. Результати програми представлені на графіках. Програма складається з чотирьох процедур та реалізац графічного інтерфейсу. Спочатку відбувається підключення необхідних модулів: restart; with(LinearAlgebra): with(plots): with(stats): Надалі розглянемо процедури, які були використані в даній програмі. Розглянемо процедуру під назвою ocenki_parametrov. Ця процедура отримує вхідні дані, які вводить користувач та знаходить оцінки коефіцієнтів лінійної регресії за допомогою методу найменших квадратів (МНК). В ній оголошен такі змінні: viborka– це вибірка з якою ми будемо працювати, вона вводиться з клавіатури користувачем; nomer_zavis_koord –вектор Y. В процедурі задані локальні змінні, які використовуються у якомусь невеликому відрізку програми, це може бути невеликий цикл тощо. В якості локальних змінних оголошенні kol_strok- кількість строк матриці matrica_X
що вводиться
з клавіатури користувачем, kol_stolbcov- кількість
стовпчиків даної матриці, X_transpon- транспонована матриця до
матриці Х, vektor_Y- вектор спостережень, otvet- вектор-стовпчик
оцінок коефіцієнтів, що знаходяться за формулою otvet:=MatrixMatrixMultiply(MatrixMatrixMultiply(otvet_prom,X_transpon),vektor_Y):.
Розглянемо процедуру під назвою Notna ocenki_parametrov. Ця процедура отримує вхідні дані, які вводить користувач та знаходить нотну. В ній оголошені такі змінні: viborka– це вибірка з якою ми будемо працювати, вона вводиться з клавіатури користувачем; nomer_zavis_koord вектор Y, pogr – це похибка, її користувач визначає самостійно вводить з клавіатури. В процедурі задані локальні та глобальні змінні, локальн змінні використовуються у якомусь невеликому відрізку програми, це може бути невеликий цикл тощо, а глобальні змінні фігурують на протязі всієї програми. В якості локальних змінних оголошені n- кількість строк матриці Х, m- кількість стовпчиків матриці Х, j,k,c,i номер елемента вибірки, kol_strok та kol_stolbcov - розмір матриці Х, matrica_X що вводиться з клавіатури користувачем, vektor_Y- вектор спостережень, pogr_Y,pogr_X - це похибки, її користувач визнача самостійно і вводить з клавіатури, vector_beta - вектор-стовпчик знайденних оцінок коефіцієнтів в процедурі ocenki_parametrov, pod_sum_vnutr – значення яке відповідає формулі
summa_vnutr - значення яке відповідає формулі
sum_vnesh - значення яке відповідає формулі
pod_summa_2 - значення яке відповідає формулі
summa - значення яке відповідає формулі
Глобальні змінні otv – значення нотни, знайдене за формолою Далі в процедурі формуються масиви для pod_sum_vnutr, summa_vnutr, sum_vnesh, pod_summa_2, summa_2, summa які використовуються для подальших обчислень. pod_sum_vnutr:=array(1..n): summa_vnutr:=array(1..m): sum_vnesh:=array(1..m): pod_summa_2:=array(1..n): summa_2:=array(1..m): summa:=array(1..m): Розмір матриці Х формується за допомогою функцій RowDimension та ColumnDimension. kol_strok:=RowDimension(viborka): kol_stolbcov:=ColumnDimension(viborka): Так як формула для знаходження нотни є складною, обчислимо частинами, щоб спростити дії для машини та не помилитись. Спочатку рахуємо вираз під внутрішньою сумою. for i to n do pod_sum_vnutr[i]:=abs(2*matrica_X[i,k]*vector_beta[k,1]/(m-1) +matrica_X[i,j]*vector_beta[j,1]-vektor_Y[i,1]/(m-1))*pogr_X[k] +abs(matrica_X[i,k]*vector_beta[j,1])*pogr_X[j] end do: Далі знаходимо значення під внутрішньою сумою. for j to m do summa_vnutr[j]:=sum('pod_sum_vnutr[ii]','ii'=1..n): end do: Рахуємо зовнішню суму. for k to m do sum_vnesh[k]:=sum('summa_vnutr[jj]','jj'=1..k-1) +sum('summa_vnutr[jj]','jj'=k+1..m): end do: Рахуємо другу частину формули. for c to n do pod_summa_2[c]:=abs(matrica_X[c,k]): end do: summa_2[k]:=sum('pod_summa_2[d]','d'=1..n)*pogr_Y: summa[k]:=(sum_vnesh[k]+summa_2[k])/n: Виводимо відповідь: otv:=summa: Розглянемо процедуру під назвою interval_znachen_param. В цій процедурі, використовуючи результати попередніх двох процедур ocenki_parametrov та Notna ocenki_parametrov, рахуються інтервали в яких знаходяться оцінки коефіцієнтів регресії. В ній оголошені такі змінні: viborka– це вибірка довільного об’єму та вимірності з якою ми будемо працювати, вона вводиться з клавіатури користувачем; nomer_zavis_koord –номер координати, яка трактується як залежна, pogr – вектор максимальних величин похибок, з якими визначенн координати елементів вибірки. В процедурі задані локальні та глобальні змінні, локальн змінні використовуються у якомусь невеликому відрізку програми, це може бути невеликий цикл тощо, а глобальні змінні фігурують на протязі всієї програми. В якості локальних змінних оголошені razmer – кількість стовпців, massiv_interv_koeff, parametric – знайдені оцінки коефіцієнтів, notna-знайдена нотна, і – номер коефіцієнту регресії. Глобальні змінні interv – шуканий інтервал. Далі в програмі формуються масиви для massiv_interv_koeff, interv, які використовуються для подальших обчислень. massiv_interv_koeff:=array(1..razmer): interv:=Matrix(1..razmer,1..2): Так як формула для правої та лівої границі інтервалу в метод нтервальних даних є складною, обчислимо її частинами, щоб спростити дії для машини та не помилитись. for i to razmer do massiv_interv_koeff[i]:=parametri[i,1]: interv[i,1]:=massiv_interv_koeff[i]-notna[i]: interv[i,2]:=massiv_interv_koeff[i]+notna[i]: end do: Програма повертає значення верхньої та нижньої меж нтервалів, які накривають коефіцієнти регресії. В результаті роботи ц процедури ми отримали результати, обчислені у вигляді зручному для побудови графіка за цими даними. Розглянемо процедуру під назвою generator_viborki. В цій процедурі ми вибираємо вибірку довільного об’єму, значення якої є нормально розподіленими. В ній оголошені такі змінні: DIGITS – кількість знаків після коми, obem_vibork- об’єм нашої вибірки, distrib- вибір розподілу, parametr- коефіцієнти. В процедурі задані глобальні змінні, що фігурують на протяз всієї програми. В якості глобальних змінних оголошені VIBORK- це вибірка з якою ми будемо працювати. Далі в програмі формується масив для VIBORK. VIBORK:=array(1..obem_vibork): if distrib=NORMAL then for i to obem_vibork do VIBORK[i]:=stats[random, normald[0,parametr]](1): end do: Таким чином ми отримаємо вибірку. Розглянемо процедуру під назвою grafic_ocenok. В цій процедур за отриманими вище даними будуємо графіки на яких зображені інтервали для коефіцієнтів регресії. В ній оголошені такі змінні: DIGITS – кількість знаків після коми, digits_okrug - кількість знаків після коми значень нашо вибірки, kol_razb - обєм нашої вибірки, distrib – вибір розподілу, parametr - кількість коефіцієнтів регресії, model – рівняння регресії, pogr - похибка. В процедурі задані локальні та глобальні змінні, локальн змінні використовуються у якомусь невеликому відрізку програми, це може бути невеликий цикл тощо, а глобальні змінні фігурують на протязі всієї програми. В якості локальних змінних оголошені gg1n, gg1v, gg2n,gg2v нижня і верхня границі інтервалів для кожного коефіцієнту регресії, s - обєм вибірки. Глобальні змінні ViBVreM - це округлена вибірка, INTERVAL- інтервальне значення параметрів. Далі в програмі формуються масиви для верхніх і нижніх меж gg1n:=array(2..kol_razb): gg1v:=array(2..kol_razb): Задаємо колір нижньої та верхньої меж та істинного значення для двох коефіцієнтів. ggg1n:=[seq([b,gg1n[b]],b=2..kol_razb)]: g1:=plot(ggg1n,'colour'='blue',legend="Нижня межа"); ggg1v:=[seq([b,gg1v[b]],b=2..kol_razb)]: g2:=plot(ggg1v,'colour'='green',legend="Верхня межа"); ggg2n:=[seq([b,gg2n[b]],b=2..kol_razb)]: g21:=plot(ggg2n,'colour'='blue',legend="Нижня межа"); ggg2v:=[seq([b,gg2v[b]],b=2..kol_razb)]: g22:=plot(ggg2v,'colour'='green',legend="Верхня межа"); gt:=plot(2,t=0..kol_razb,'colour'='red',legend="Істинне значення"): gt:=plot(-4,t=0..kol_razb,'colour'='red',legend="Істинне значення"): Підписуємо графіки display([g1,g2,gt],'title'="Обчислення першого коефіціента регресіі",'titlefont'=[TIMES,BOLD,18]): display([g21,g22,gt],'title'="Обчислення другого коефіціента регресіі",'titlefont'=[TIMES,BOLD,18]): Таким чином результати розробленої програми представлені на графіках.
4.3. Результати роботи програми Результати програми для вибірки діапазону 1-80.
Результати програми для вибірки діапазону 1-40.
Результати програми для вибірки діапазону 1-20.
Результати програми для вибірки діапазону 1-10. Результати програми для вибірки діапазону 1-200.
Висновки
В дипломній роботі за допомогою розробленої програми проведено чисельний експеримент по дослідженню залежності величин довжин нтервалів, що накривають невідомі параметри регресії, від об’єму вибірки. З одержаних результатів випливає, що починаючи з деякого об’єму вибірки спостерігається стабілізація, тобто різниця між верхньою та нижньою границею інтервалів, що накривають параметри регресії, переста зменшуватись. Тому використовувати вибірки об’ємом більше, ніж це порогове значення є недоцільним, бо це не дає поліпшення результатів. Цей поріг, де починається стабілізація, не залежить від вектора похибки і приблизно дорівню 50. Список використаних джерел 1. Орлов А.И Прикладная статистика. – М.: Экзамен, 2004. 2. Орлов А.И., Орловский И.В. Прикладной многомерный статистический анализ. М.: Наука, 1978. 3. Вощинин А.П., Бочков А.Ф. Сотиров Г.Р. Интервальный анализ данных как альтернатива регрессионному анализу. – Заводская лаборатория, 1990. 4. Вощинин А.П. Интервальный анализ данных: развитие и перспективы. - Заводская лаборатория, 2002. 5. Себер Дж. Линейный регрессионный анализ. – М.: Мир, 1980. 6. Демиденко Е. З. Линейная и нелинейная регрессии. – М.: Финансы и статистика, 1981. 7. Дьяконов В. Maple 6: учебный курс. – СПб.: Питер, 2001. 8. Четыркин Е.М. Статистические методы прогнозирования. – М.: Статистика, 1975. |
|