Statistika_su_sas.pdf

  • Uploaded by: Simona Ra
  • 0
  • 0
  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Statistika_su_sas.pdf as PDF for free.

More details

  • Words: 60,760
  • Pages: 186
VILNIAUS UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS MATEMATINĖS STATISTIKOS KATEDRA

RŪTA LEVULIENĖ

STATISTIKA SU SAS® I

2005 (Papildyta 2007.08)

TURINYS Įvadas ........................................................................................................................................6 I skyrius. Duomenų paruošimas statistinei analizei ............................................................. 8 1. Pagrindiniai SAS langai ....................................................................................................8 2. SAS duomenų lentelės ....................................................................................................10 3. Duomenų lentelės sukūrimas ..........................................................................................11 3.1. Duomenų įvedimas VIEWTABLE lange ................................................................11 3.2. INPUT komanda ......................................................................................................12 3.3. INFILE komanda .....................................................................................................16 3.4. IMPORT procedūra .................................................................................................17 4. Duomenų eksportas .........................................................................................................22 5. Duomenų pertvarkymo komandos ..................................................................................23 5.1. Priskyrimo sakinys ..................................................................................................23 5.2. Sąlyginiai sakiniai ....................................................................................................24 5.3. Ciklai .......................................................................................................................26 5.4. RETAIN ir sumavimo sakiniai ................................................................................27 6. SAS duomenų lentelės keitimas ......................................................................................28 7. Kelių lentelių sukūrimas viename DATAžingsnyje ........................................................28 8. Kintamųjų pašalinimo ir pervardinimo komandos ..........................................................29 9. Lentelių apjungimo komandos ........................................................................................29 9.1. Lentelių apjungimas su komanda SET ....................................................................29 9.2. Lentelių apjungimas su komanda MERGE .............................................................30 9.3. Lentelės atnaujinimas su komanda UPDATE .........................................................31 10. Duomenų lentelės pasirinktys .......................................................................................32 11. Automatiniai kintamieji .................................................................................................34 12. Kintamųjų vardų sąrašai ................................................................................................34 13. Kintamųjų masyvai .......................................................................................................36 14. SAS procedūros .............................................................................................................37 14.1. Duomenų rūšiavimas .............................................................................................38 14.2. Duomenų spausdinimas .........................................................................................40 14.3. Duomenų lentelės transponavimas ........................................................................41 15. Rašymo formatai ...........................................................................................................43 16. Makroprogramos ...........................................................................................................44 II skyrius. Specialios funkcijos .............................................................................................48 1. Matematinės funkcijos ....................................................................................................49 2. Skaitinių charakteristikų funkcijos ..................................................................................51 3. Tikimybinių skirstinių funkcijos .....................................................................................52 4. Kvantilių funkcijos ..........................................................................................................55 5. Atsitiktinių dydžių modeliavimas ...................................................................................56 6. Simbolinės funkcijos .......................................................................................................60 7. Datos ir laiko funkcijos ...................................................................................................61 8. Masyvų funkcijos ............................................................................................................62 III skyrius. Aprašomoji statistika .........................................................................................63 1. Dažnių lentelės ................................................................................................................63 1.1. Vieno kintamojo dažnių lentelės .............................................................................63 1.2. Kryžminės dviejų kintamųjų dažnių lentelės ...........................................................68 2. Skaitinės charakteristikos ................................................................................................69 2.1. Skaitinės charakteristikos su procedūromis MEANS ir UNIVARIATE .................69 2.2. Standartizuotos reikšmės .........................................................................................79 2.3. Išskirtys ....................................................................................................................80 3

2.4. Skaitinių charakteristikų įrašymas į duomenų lentelę .............................................80 2.5. Skaitinių charakteristikų apjungimas su pradiniais duomenimis ............................82 3. Grafiniai duomenų analizės metodai ...............................................................................84 3.1. Stulpelių diagramos .................................................................................................84 3.2. Diagrama medis .......................................................................................................90 3.3. Histograma ...............................................................................................................91 3.4. Tikimybinės kreivės grafikas ...................................................................................93 3.5. Sklaidos diagrama ....................................................................................................94 3.6. Linijinė diagrama ....................................................................................................97 3.7. Skritulinė diagrama ..................................................................................................98 3.8. Stačiakampė diagrama ...........................................................................................102 IV skyrius. Taškiniai parametrų įverčiai ir pasikliautinieji intervalai ...........................105 1. Pagrindinės sąvokos ir apibrėžimai ...............................................................................105 2. Taškinių parametrų įverčių ir pasikliautinųjų intervalų pavyzdžiai ..............................110 2.1. Vienmatis normalusis skirstinys ............................................................................110 2.2. Dvimatis normalusis skirstinys ..............................................................................114 2.3. Binominis skirstinys ..............................................................................................117 2.4. Puasono skirstinys .................................................................................................119 2.5. Gama skirstinys .....................................................................................................120 2.6. Beta skirstinys ........................................................................................................121 V skyrius. Parametrinių hipotezių tikrinimo uždaviniai .................................................123 1. Pagrindinės sąvokos ir apibrėžimai ...............................................................................123 2. Hipotezė apie vidurkio reikšmę .....................................................................................124 2.1. Hipotezė apie vidurkio reikšmę, kai dispersija žinoma .........................................124 2.2. Hipotezė apie vidurkio reikšmę, kai dispersija nežinoma .....................................126 3. Hipotezė apie dispersijos reikšmę .................................................................................130 3.1. Hipotezė apie dispersijos reikšmę, kai vidurkis žinomas ......................................130 3.2. Hipotezė apie dispersijos reikšmę, kai vidurkis nežinomas ..................................131 4. Hipotezė apie proporciją ...............................................................................................133 4.1. Tikslus kriterijus ....................................................................................................133 4.2. Normalioji aproksimacija ......................................................................................134 5. Dviejų dispersijų palyginimo hipotezės ........................................................................136 6. Dviejų vidurkių palyginimo hipotezės ..........................................................................137 6.1. Hipotezė apie vidurkių lygybę, kai imtys nepriklausomos ....................................138 6.2. Hipotezė apie vidurkių lygybę, kai imtys priklausomos .......................................141 7. Hipotezė apie koreliacijos koeficiento reikšmę .............................................................142 VI skyrius. Neparametriniai kriterijai ...............................................................................144 1. Chi-kvadrato kriterijus neparametrinėms hipotezėms tikrinti .......................................145 1.1. Paprastosios suderinamumo hipotezės tikrinimas .................................................146 1.2. Sudėtingosios suderinamumo hipotezės tikrinimas ...............................................148 1.3. Nepriklausomumo tikrinimas ................................................................................150 1.4. Homogeniškumo tikrinimas ..................................................................................153 1.5. Kriterijai, susiję su chi-kvadrato kriterijumi ..........................................................155 1.6. Sąryšio matai, grindžiami chi-kvadrato kriterijumi ...............................................156 1.7. Fišerio tikslus kriterijus .........................................................................................157 1.8. Maknemaro kriterijus ............................................................................................160 2. Kriterijai, grindžiami empirinės ir teorinės pasiskirstymo funkcijų skirtumu ..............161 2.1. Suderinamumo tikrinimas ......................................................................................161 2.2. Homogeniškumo tikrinimas ..................................................................................165 3. Ranginiai kriterijai .........................................................................................................167

4

3.1. Spirmeno ranginės koreliacijos koeficientas .........................................................167 3.2. Kendalo ranginės koreliacijos koeficientas ...........................................................169 3.3. Mano-Vitnio-Vilkoksono kriterijus .......................................................................171 3.4. Van der Vardeno kriterijus ....................................................................................174 3.5. Kruskalo-Voliso kriterijus .....................................................................................175 3.6. Homogeniškumo hipotezės su mastelio alternatyva tikrinimas ............................176 4. Kiti neparametriniai kriterijai ........................................................................................180 4.1. Ženklų kriterijus ....................................................................................................180 4.2. Grubių klaidų išskyrimo kriterijus .........................................................................183 Santrumpos ir žymenys .......................................................................................................186 Literatūra ..............................................................................................................................187

5

ĮVADAS Tikimybių teorijos ir matematinės statistikos metodai yra naudojami įvairiose mokslo ir technikos srityse, pavyzdžiui, medicinoje, biologijoje, ekonomikoje, gamyboje ir kt. Statistika – tai mokslas, apimantis informacijos rinkimo, sisteminimo, analizavimo ir interpretavimo metodus. Statistinius metodus galima suskirstyti į dvi pagrindines grupes: aprašomoji statistika ir matematinė (sprendžiamoji) statistika. Aprašomoji statistika, tai duomenų sisteminimo ir pateikimo metodai. Matematinė statistika nagrinėja duomenų analizės ir interpretavimo metodus. Atliekant duomenų analizę ir turint didelius duomenų masyvus yra naudojami statistikos paketai (duomenų analizės sistemos), pavyzdžiui, SAS, SPlus, STATISTIKA, SPSS ir kt. Kai kurie statistiniai metodai yra realizuoti Microsoft Excel programoje. Statistinių paketų pasirinkimas yra labai didelis. Kokį paketą pasirinkti priklauso nuo sprendžiamų uždavinių sudėtingumo ir tipo, duomenų masyvo dydžio, vartotojo kvalifikacijos, turimos įrangos ir finansinių galimybių. Statistinius paketus galima suskirstyti į tris pagrindines grupes: profesionalūs, universalūs ir specializuoti. Profesionalios duomenų analizės sistemos skirtos vartotojams, kurie dirba su dideliais duomenų masyvais ir naudoja ne tik klasikinius statistinius metodus, bet ir specializuotus statistinius algoritmus. Mažesnes galimybes (realizuota mažiau statistinių algoritmų) turi universalūs paketai, tačiau ir kaina jų yra žymiai mažesnė negu profesionalių. Specializuoti paketai skirti spręsti tik kai kuriuos statistinius uždavinius. Didžiausias galimybes (plačiausias statistinių algoritmų pasirinkimas) tarp profesionalių duomenų analizės sistemų turi SAS. Sistema SAS (Statistical Analysis System) sparčiai vystoma nuo 1976 metų. Gali dirbti įvairiose operacinėse sistemose. Apima visus reikalingus duomenų analizės etapus: duomenų įvedimas, pertvarkymas, saugojimas, duomenų analizė, ataskaitų rašymas. Sistema sudaryta iš sujungtų tarpusavyje modulių. Sistemos branduolys – modulis Base, kitus modulius galima pasirinkti priklausomai nuo vartotojo poreikių, pavyzdžiui, modulis STAT yra skirtas statistinei duomenų analizei, modulis OR – operacijų tyrimui, QC – kokybės kontrolės modulis, GRAPH – grafinio duomenų vaizdavimo modulis ir kt. Pagrindinis SAS privalumas: yra realizuota daug statistinių algoritmų, be to, vartotojas pats nesunkiai gali sukurti reikiamus algoritmus. Programą, parašytą vienoje operacinėje sistemoje, galima pernešti į kitą operacinę sistemą ir ji veiks, reikia tik pakeisti specifines komandas, skirtas darbui su bylomis ir katalogais. Taip pat yra produktų, skirtų vartotojams, neturintiems programavimo įgūdžių, pavyzdžiui, „SAS Enterprise Guide“ galima atlikti įvairią statistinę analizę nerašant programinio kodo. Ši mokymo priemonė yra skirta visiems, kas nori išmokti dirbti su SAS sistema ir įsisavinti statistinių metodų taikymą duomenų analizei. Ši knyga yra taikomojo pobūdžio, todėl ji gali būti naudinga ne tik statistikos specialybių studentams. Knygoje išdėstyta medžiaga apima pagrindinį statistikos kursą (aprašomoji statistika, taškiniai parametrų įverčiai ir pasikliautinieji intervalai, vienos ir dviejų imčių parametrinių hipotezių tikrinimo uždaviniai, dažniausiai naudojami neparametriniai kriterijai), kuris tradiciškai būna skaitomas įvairių specialybių studentams, pavyzdžiui, ekonominių, gamtos mokslų specialybių studentams. Tai pirmoji knyga. Ji apima dalyko „Matematinė statistika“, kuris skaitomas „Matematinės statistikos“ katedros studentams, laboratorinių užsiėmimų, kuriuos jau keletą metų vedu, pirmųjų dviejų semestrų medžiagą. Antrojoje knygoje „Statistika su SAS®, II“ numatoma išdėstyti dispersinės, regresinės, koreliacinės analizės metodų, Hotelingo statistikos taikymų, klasifikavimo, faktorinės ir klasterinės analizės metodų taikymą duomenų analizei naudojant SAS sistemą. Trumpai apžvelgsime šioje mokymo priemonėje pateiktą medžiagą. Pirmajame skyriuje aprašyti pagrindiniai darbo su SAS sistema principai. Šiame skyriuje pateikiamos duomenų lentelių sukūrimo, pertvarkymo komandos, aprašomi duomenų 6

importavimo ir eksportavimo būdai į kito formato bylas. Pateikiami makrokomandų naudojimo principai. Antrajame skyriuje aprašytos specialios funkcijos. Pagrindinis dėmesys skirtas matematinėms, tikimybinių skirstinių, atsitiktinių dydžių modeliavimo ir statistinėms funkcijoms. Trečiajame skyriuje pateikiami aprašomosios statistikos metodai: dažnių lentelės, skaitinės charakteristikos ir grafiniai duomenų vaizdavimo metodai. Ketvirtas skyrius skirtas parametrų taškinių įverčių ir pasikliautinųjų intervalų konstravimo uždaviniams. Jame pateikiamos parametrų taškinių įverčių ir pasikliautinųjų intervalų išraiškos ir apskaičiavimo su SAS sistema būdai įvairių skirstinių atveju. Penktame skyriuje pateikiami parametrinių hipotezių tikrinimo kriterijai. Nagrinėjami vienos ir dviejų imčių uždaviniai. Šeštame skyriuje pateikiami dažniausiai naudojami neparametriniai kriterijai. Pirmajame šio skyriaus skyrelyje nagrinėjamas chi-kvadrato kriterijus, kurį galima naudoti suderinamumo, homogeniškumo ir nepriklausomumo hipotezėms tikrinti. Antrajame pateikti kriterijai, grin-džiami empirinės ir teorinės pasiskirstymo funkcijų skirtumu. Trečiasis skyrelis yra skirtas ranginiams kriterijams. Skyriaus pabaigoje pateikiami ženklų ir grubių klaidų išskyrimo kriterijai. Medžiagos dėstymas visuose skyriuose toks pats, t.y. pradedama nuo uždavinio formuluotės, tada pateikiamas uždavinio sprendimas, aprašoma kaip išspręsti uždavinį naudojant SAS (buvo naudojama SAS 9.1 versija), pateikiamas pavyzdys su duomenimis (realiais arba modeliuotais) bei gautų rezultatų interpretacija. Naudojama ištisinė formulių, pavyzdžių, lentelių ir paveikslėlių numeracija kiekvieno skyriaus rėmuose; pirmasis skaitmuo žymi skyrių, o antrasis eilės numerį tame skyriuje. Skliaustuose yra pateikiami statistinių terminų angliški atitikmenys. Knygos pabaigoje pateiktas literatūros sąrašas. Jame apsiribota tik tomis knygomis, kurios tiesiogiai buvo naudojamos dėstant medžiagą. Pilnesnę literatūros apžvalgą galima rasti knygoje [3]-[5], o taip pat kartu su SAS sistema platinamame kompakte [9]. Naudingos informacijos apie SAS sistemą, įvairius modulius galima surasti interneto tinklapyje http://www.sas.com.

7

I skyrius. DUOMENŲ PARUOŠIMAS STATISTINEI ANALIZEI Šiame skyriuje aprašomi pagrindiniai darbo su SAS sistema principai. Pateikiami duomenų lentelių sukūrimo būdai, aprašomos komandos, skirtos duomenų pertvarkymui. Taip pat pagalbinės procedūros, skirtos duomenų atspausdinimui, rūšiavimui, savo formato sukūrimui. Pateikiami makrokomandų naudojimo principai. 1. Pagrindiniai SAS langai SAS darbo sesijos pradžioje ekrane matome penkis langus (žr. 1.1 pav.): Explorer, Editor, Log, Output, Results.

1.1 pav. Pagrindiniai SAS langai Toliau pateikiamas kiekvieno iš paminėtų langų aprašymas. Explorer langas yra skirtas darbui su bylomis. Šis langas naudojamas SAS bibliotekų ir bylų kūrimui, bylų atidarymui ir tvarkymui (pvz., kopijuoti, ištrinti, perkelti iš vienos vietos į kitą), SAS duomenų lentelių kūrimui. Explorer lange matome kokios SAS bibliotekos yra sukurtos. Jos palengvina darbą su duomenų lentelėmis. Bibliotekose yra saugomos SAS duomenų lentelės. Biblioteka yra nuoroda į katalogą su kuriuo ji yra susieta. Pagal nutylėjimą sukuriamos bibliotekos: Sashelp, Sasuser, Work. Vartotojas gali sukurti savo biblioteką.

1.2 pav. Bibliotekos sukūrimas Naują biblioteką galima sukurti dviem būdais: I b ū d a s. Explorer lange aktyvuojame ikoną Libraries. Tada pagrindiniame meniu pasirenkame punktą File→New. Ekrane atsiranda langas (žr. 1.2 pav.), kuriame įvedame: 8

bibliotekos vardą (name), katalogo vardą nurodant pilną kelią iki jo (path), pavyzdžiui, jei įvedame: c:\mano, tai bus sukurta biblioteka, susieta su katalogu c:\mano. Jeigu pažymime „Enable at startup“, tai kitą kartą įėjus į SAS sistemą automatiškai bus sukurta biblioteka nurodytu pavadinimu. II b ū d a s. Editor lange surenkame komandą: LIBNAME vardas 'katalogas';

čia vardas – bibliotekos vardas, path – katalogas (nurodant pilną kelią iki jo). Pavyzdžiui, Editor lange įvedus LIBNAME duomenys 'c:\mano';

bus sukurta biblioteka „duomenys“ susieta su katalogu „c:\mano“. P a s t a b a. Bibliotekos vardas turi tenkinti standartinius vardams taikomus apribojimus. Be to negali būti ilgesnis negu aštuoni simboliai. Editor lange yra rašomas programinis kodas. Toliau pateikiame pagrindines programinio kodo sukūrimo taisykles: 1. Sudaromas iš dviejų tipų žingsnių: DATA žingsnis, PROC žingsnis. DATA žingsnis skirtas sukurti ir pertvarkyti duomenų lenteles. PROC žingsnis skirtas duomenų analizei, rezultatų spausdinimui. Žingsniai yra sudaromi iš komandų. Kai kurios komandos naudojamos tik DATA žingsnyje (duomenų įvedimo ir pertvarkymo komandos), o kai kurios tik PROC žingsnyje (duomenų analizės komandos). Yra komandų, kurias galima naudoti ir DATA, ir PROC žingsnyje. 2. Data žingsnis atliekamas eilutė po eilutės, stebėjimas po stebėjimo, t.y. imamas pirmas stebėjimas ir su juo atliekamos visos komandas (eilutė po eilutės), nurodytos DATA žingsnyje, tada imamas antras stebėjimas ir t.t. 3. Kiekviena SAS komanda baigiasi kabliataškiu. 4. Galima rašyti ir mažosiomis, ir didžiosiomis raidėmis. 5. Kelios komandos gali būti vienoje eilutėje. 6. Vieną komandą galima suskaidyti į kelias eilutes, tačiau žodžių skaidyti negalima. 7. Galima įterpti komentarus (paaiškinimus). Juos galima įterpti dviem būdais: a b ū d a s. Komentaras atskiroje eilutėje: prasideda žvaigždute (*), baigiasi kabliataškiu (;). b b ū d a s. Komentaras toje pačioje eilutėje kaip ir komanda: prasideda /* baigiasi */ . Editor lange parašytą tekstą išsaugome pagrindiniame meniu pasirinkę punktą File →Save arba Save as. Įvykdyti programą: a b ū d a s. Surinkti SUBMIT komandinėje eilutėje (po pagrindiniu meniu). b b ū d a s. Paspausti ikoną su nupieštu bėgančiu žmogumi. c b ū d a s. Pagrindiniame meniu pasirinkti Run → Submit. Log lange spausdinami sisteminiai pranešimai apie SAS sesiją, komandas, klaidas.

vykdomas SAS

Output lange spausdinami SAS procedūrų rezultatai. Jei norime išsaugoti Output lange esančius rezultatus, tai pagrindiniame meniu pasirenkame File → Save as, jei norime atspausdinti, tai pasirenkame File → Print. Kaip rezultatai turi būti išdėstyti Output lange galima nurodyti su komanda: OPTIONS parinktys;

kuri yra įvedama Editor lange. Toliau pateikiame keletą dažniausiai naudojamų pasirinkčių: CENTER | NOCENTER – nurodome centruoti ar ne rezultatus Output lange; DATE | NODATE – nurodome ar kiekvieno puslapio viršuje spausdinti šios dienos datą; 9

NUMBER | NONUMBER – numeruoti ar ne puslapius; LINESIZE = n – čia n yra maksimalus simbolių skaičius eilutėje; PAGESIZE = n – čia n yra maksimalus eilučių skaičius puslapyje; PAGENO = n – pirmojo puslapio numeris bus n; Pilną parinkčių sąrašą galima pasižiūrėti pagrindiniame meniu pasirinkus Help → SAS Help and Documentation. Results lange galima greitai surasti konkretų procedūros rezultatą, išsaugoti ir atspausdinti gautus rezultatus arba konkrečią jų dalį. 2. SAS duomenų lentelės Kaip jau minėjome SAS duomenų lentelės yra saugomos bibliotekose. SAS duomenų lentelė susideda iš stulpelių (kintamųjų) ir eilučių (stebėjimų). Duomenys saugomi lentelėse gali būti dviejų tipų: skaitinio arba simbolinio. Skaitinio tipo duomenys yra skaičiai. Be skaitmenų skaitinio tipo lauke gali būti: „+“, „-“, „.“ (atskiriantis trupmeninę skaičiaus dalį) arba raidė „E“ (kitas trupmeninio skaičiaus užrašymo būdas). Simbolinio tipo duomenys susideda iš skaitmenų, raidžių ir specialių simbolių (pavyzdžiui, “&”, “!”, “/”). Duomenys gali būti nepilni (yra praleistų reikšmių). SAS praleisti stebėjimai žymimi tašku. SAS duomenų lentelėje praleisti stebėjimai žymimi taip: tašku, kai duomenys skaitinio tipo ir tarpu, kai duomenys simbolinio tipo. SAS duomenų lentelėje yra saugomi ne tik duomenys, bet ir papildoma informacija: lentelės pavadinimas, sukūrimo data, informacija apie kiekvieną kintamąjį (vardas, tipas, ilgis, skaitymo formatas, rašymo formatas). SAS duomenų lentelės yra dviejų tipų: 1) laikinos lentelės – lentelės, išsaugotos Work bibliotekoje. Jos, pasibaigus SAS sesijai, yra panaikinamos. Rašant kreipinį į laikiną lentelę, reikia nurodyti tik lentelės vardą. Pavyzdžiui, Editor lange įvedus kodą: DATA d1; INPUT k1; DATALINES; 1 2 ; RUN;

Work bibliotekoje bus sukurta laikina lentelė „d1“, kurioje bus vienas stulpelis (kintamasis) ir dvi eilutės (stebėjimai). 2) pastovios lentelės – pasibaigus SAS sesijai jos nepanaikinamos. Šios lentelės patalpinamos į vartotojo sukurtą biblioteką. Pastovių SAS duomenų lentelių išplėtimas: .sas7bdat. Pavyzdžiui, parašę Editor lange: DATA mano.d1; INPUT k1; DATALINES; 1 2 ; RUN;

sukuriame pastovią SAS duomenų lentelę „d1“, kuri bus bibliotekoje „mano“ (biblioteka jau turi būti sukurta, pavyzdžiui, su komanda LIBNAME).

10

3. Duomenų lentelės sukūrimas Duomenis galima įvesti tiesiogiai sukuriant SAS duomenų lentelę (Viewtable lange arba Editor lange Data žingsnyje) arba juos galima importuoti (iš tekstinės bylos, Excel, Access ir kt.). SAS duomenų lentelės sukūrimo būdai: 1) tiesioginis duomenų įvedimas Editor lange. Šis būdas naudojamas, kai nedaug duomenų arba testuojame programą, pavyzdžiui, DATA lenteles_pavad; INPUT k1 $ k2 k3 ; /* trys kintamieji, k1 simbolinio tipo */ DATALINES; a 2 5 c 1 4 ; RUN;

2) duomenų įvedimas Viewtable lange. Pagrindiniame meniu pasirenkame Tools → Table Editor. Įvedame duomenis. Lentelę išsaugome pagrindiniame meniu pasirinkę File → Save as. 3) importavimas: a) iš tekstinės bylos data žingsnyje, pavyzdžiui: DATA lent_pavad; INFILE ’c:\mano\duomenys.txt’; INPUT k1 $ k2 k3; RUN;

b) File → Import data (įvairaus formato duomenų importas). c) IMPORT procedūra (rašoma Editor lange). Tolesniuose skyreliuose pateikiamas išsamus kiekvieno lentelės sukūrimo būdo aprašymas. 3.1 Duomenų įvedimas Viewtable lange Pasirinkus meniu punktą Tools→Table Editor ekrane atsiranda Viewtable langas (žr. 1.3 pav.), kuriame galima tiesiogiai įvesti duomenis. Šiame lange taip pat galima peržiūrėti ir koreguoti anksčiau sukurtas duomenų lenteles.

1.3 pav. Viewtable langas Priklausomai nuo to kokius duomenis įvedame į stulpelį SAS automatiškai nustato stulpelio (kintamojo) tipą: simbolinis ar skaitinis. 11

Galima keisti stulpelių charakteristikas: vardą (name), žymę (label), ilgį (length), tipą (type), skaitymo formatą (informat), rašymo formatą (format). Tuo tikslu paspaudžiame dešinį pelės klavišą ant stulpelio pavadinimo, ekrane atsiranda meniu, jame pasirenkame Column Attributes. Atlikus šiuos veiksmus ekrane atsiranda langas (žr.1.4 pav.), kuriame galima keisti stulpelių charakteristikas. Lentelę išsaugome pagrindiniame meniu pasirinkę punktą File→Save As. Kaip jau minėjome, galima peržiūrėti ir koreguoti anksčiau sukurtas duomenų lenteles. Pasirenkame meniu punktą Tools→Table Editor, File→Open, tada pasirenkame biblioteką ir lentelę, kurią norime atidaryti. Kitas, greitesnis būdas atidaryti duomenų lentelę: Explorer lange du kartus paspaudžiame kairį pelės klavišą ant lentelės pavadinimo. Atidarius lentelę ir naudojantis kontekstiniu meniu (ant stulpelio pavadinimo paspaudžiame dešinį pelės klavišą) galime keisti stulpelio charakteristikas (Column Attributes), šriftą (Fonts), spalvą (Colors), paslėpti stulpelį (Hide), surūšiuoti (Sort) didėjimo arba mažėjimo tvarka.

1.4 pav. Stulpelių charakteristikų keitimo langas Viewtable lange galima pasirinkti, kad rodytų tik tas eilutes, kurios tenkina tam tikras sąlygas: paspaudžiame dešinį pelės klavišą ant lentelės langelio (ne ant pavadinimo) ir atsiradusiame kontekstiniame meniu pasirenkame punktą Where. Atsidariusiame „Where Expression“ lange įvedame sąlygą. Ekrane matysime tik eilutes, tenkinančias nurodytą sąlygą. Jeigu vėl norime matyti visus įrašus kontekstiniame meniu pasirenkame Where Clear. Kitas būdas: pagrindiniame meniu pasirenkame Data→Where (Data→Where Clear). Pagal nutylėjimą lentelė yra atidaroma peržiūros režime (Browse Mode), norint keisti duomenis reikia pereiti į redagavimo režimą (Edit Mode): pasirenkame meniu punktą Edit→Edit Mode. 3.2. INPUT komanda Komanda INPUT naudojama Data žingsnyje, kai duomenų lentelė kuriama su DATALINES arba INFILE komandomis. Šioje komandoje yra nurodomi kintamųjų vardai, duomenų tipai (skaitinio ar simbolinio), skaitymo tipai. Duomenų skaitymo tipai: I. Skaitymas sąrašu (list input). Reikia tiesiog išvardinti kintamuosius, nurodant jų vardus ir pažymint kurie kintamieji yra simbolinio tipo. Sintaksė yra labai paprasta, tačiau duomenys turi tenkinti gana griežtus reikalavimus: reikšmės eilutėje turi būti atskirtos bent

12

vienu tarpu, praleistas stebėjimas pažymėtas tašku, simbolinio tipo duomenys turi būti paprasti (negali būti tarpų viduryje reikšmės ir ilgis ne daugiau 8 simbolių). 1.1 p a v y z d y s. DATA d1; INPUT k1 $ k2; /* du kintamieji: k1,k2; k1 simbolinio tipo */ DATALINES; aa 1 bb 2 ; RUN;

Trūkumai: negalime praleisti nereikalingų kintamųjų, negali būti datų ar kitų reikšmių, kurioms reikia specialių priemonių. II. Skaitymas stulpeliais (column input). Jei tarp reikšmių nėra tarpų arba taško, žyminčio praleistą stebėjimą, tai duomenų skaitymas sąrašu netinka. Skaitymo stulpeliais privalumai: 1) nebūtini tarpai tarp reikšmių; 2) praleistos reikšmės vietoje gali būti tarpas; 3) simbolinio tipo duomenyse gali būti tarpai; 4) galima praleisti nereikalingus kintamuosius; Naudojant šį būdą reikia išvardinti kintamuosius, nurodant jų vardus ir pažymint kurie kintamieji yra simbolinio tipo, be to, reikia nurodyti nuo kurios pozicijos prasideda kintamojo reikšmė ir kuria baigiasi, pavyzdžiui, INPUT Vardas $

1-10 Amzius 11-13 Aukstis 14-18;

P a s t a b a. Visose eilutėse kintamųjų reikšmės turi būti tose pačiose pozicijose visose eilutėse. III. Formatuotas skaitymas (formatted input). Naudojant šį būdą reikia išvardinti kintamuosius ir nurodyti skaitymo formatą (informat). Jis skirtas nestandartinių duomenų įvedimui, pavyzdžiui, datos; 1,000,000. Yra trys skaitymo formatų tipai: simbolinio skaitinio datos

$informatw. informatw.d informatw.

čia informat – skaitymo formato pavadinimas, w - simbolių skaičius, d - skaitmenų po kablelio skaičius. 1.1 lentelėje yra pateikti skaitymo formatų pavyzdžiai (žr.[7]). P a s t a b a. Visus tris išvardintus skaitymo tipus galima naudoti ir viename INPUT sakinyje, t.y. kai kurie kintamieji skaitomi sąrašu, kiti stulpeliais, o dar kiti – panaudojant skaitymo formatus. 1.2 p a v y z d y s. DATA d1; INPUT numeris kodas $char5. data yymmdd8. t1 t2; DATALINES; 1 M13 96.12.11 5 3 2 M14 97.08.12 2 4 3 M15 98.01.28 6 8 ; RUN;

Šiame pavyzdyje kintamasis „kodas“ skaitomas panaudojant simbolinio tipo skaitymo formatą, kintamasis „data“ – datos tipo formatą, o kintamieji „t1“ ir „t2“ skaitomi sąrašu, t.y. tiesiog nurodant jų pavadinimus. INPUT sakinyje galima naudoti specialius simbolius. Pateiksime keletą dažniausiai naudojamų: 13

1) @n perkelia kursorių duomenų eilutėje į n-tą poziciją. 2) +n perkelia kursorių duomenų eilutėje per n pozicijų. 3) Tegu vienas pradinių duomenų stebėjimas suskaidytas į kelias eilutes. Tada naudojami tokie simboliai: / pereiti į kitą pradinių duomenų eilutę; #n pereiti į n-tą eilutę (pvz.: #2 pereiti į 2-ą eilutę). P a s t a b a. Iš pradžių galima skaityti trečią eilutę, o paskui antrą. 4) Jei keli stebėjimai vienoje eilutėje (pradinėje byloje), tai naudojame @@. P a s t a b a. Pirmame ir antrame punkte aprašyti pavyzdžiui, tada, kai naudojamas formatuotas skaitymas ir daugiau negu vienu tarpu arba keleteas vienas po kito panaudojant skaitymo formatą. Rekomenduojama skaitant kursorių pastatyti prieš pirmąjį to kintamojo simbolį.

specialūs simboliai naudingi, kintamųjų reikšmės atskirtos esančių kintamųjų skaitomi kintamąjį naudojant formatą

1.2 pavyzdžio tęsinys. DATA d1; INPUT numeris @3 kodas $char3. @8 data yymmdd8. t1 t2; FORMAT data yymmdd10.; DATALINES; 1 M13 96.12.11 5 3 2 M14 97.08.12 2 4 3 M15 98.01.28 6 8 ; RUN;

Kitas būdas: DATA d1; INPUT numeris +1 kodas $char3. +2 data yymmdd8. t1 t2; FORMAT data yymmdd10.; DATALINES; 1 M13 96.12.11 5 3 2 M14 97.08.12 2 4 3 M15 98.01.28 6 8 ; RUN;

FORMAT sakinys nurodo kokiu pavidalu kintamąjį matysime duomenų lentelėje (žr. I skyriaus 15 skyrelį). 1.3 p a v y z d y s. Tarkime, kad keli stebėjimai vienoje eilutėje (pradinėje byloje): Jonas 15 16 Petras 18 20 Tadas 6 17

Editor lange parašome tokią programą: DATA m1; INFILE ’c:\mano\duomenys.txt’; INPUT vardas $ k1 k2 @@; RUN;

14

1.1 lentelė. Skaitymo formatų pavyzdžiai Skaitymo Aprašymas formatas Simbolinio tipo Skaito simbolinio tipo duomenis, $CHARw. $w.

nepanaikina tarpų pradžioje ir pabaigoje Skaito simbolinio tipo duomenis, panaikina tarpus pradžioje

Datos, laiko, datos-laiko Skaito datą pavidalo: ddmmmyy arba DATEw.

DDMMYYw.

Ddmmmyyyy Skaito datos-laiko duomenis pavidalo: ddmmmyy hh:mm:ss ddmmyy arba ddmmyyyy

MMDDYYw.

mmddyy arba mmddyyyy

YYMMDDw.

yymmdd arba yyyymmdd

TIMEw.

Laikas pavidalo: hh:mm:ss (valandos:minutės:sekundės, 24 valandų laikrodis)

DATETIMEw.

Skaitinio tipo COMMAw.d PERCENTw.

Panaikina kablelius ir $, skliaustus pakeičia minuso ženklu Konvertuoja procentus į skaičius

w.d

Skaito standartinius skaičius

Duomenys

INPUT sakinys

Rezultatas

duom 1 duom 1 duom 1 duom 1

INPUT k1 $CHAR10.;

duom 1 duom 1 duom 1 duom 1

1jan1961 1jan61 1jan1960 10:30:15 1jan1961 10:30:15 01.01.61 02/01/61 01-01-61 01/01/61 61.01.01 1961.01.01 10:30 10:30:15

INPUT d1 DATE10.;

$1,000,001 (1,234) 5% (20%) 1234 -12.3

P a s t a b a. SAS datos reikšmė yra dienų skaičius nuo 1960.01.01. SAS laiko reikšmė yra sekundžių skaičius po vidurnakčio. SAS datos-laiko reikšmė yra sekundžių skaičius nuo 1960.01.01 vidurnakčio.

15

INPUT k1 $CHAR10.;

INPUT dt DATETIME18.; INPUT d1 DDMMYY8.; INPUT d1 MMDDYY8.; INPUT d1 YYMMDD8.; INPUT d1 YYMMDD10.; INPUT laikas TIME8.;

INPUT pajamos COMMA10.; INPUT d1 PERCENT5.; INPUT d1 5.1;

366 366 37815 3166021 366 367 366 366 366 366 37800 37815

100001 -1234 0.05 -0.2 123.4 -12.3

3.3. INFILE komanda Jei duomenis turime tekstinėje byloje ir duomenų lentelę norime sukurti Editor lange rašydami Data žingsnį, tai vietoje komandos DATALINES naudojame komandą INFILE. Šioje komandoje reikia nurodyti bylos, kurioje yra duomenys, pavadinimą (su pilnu keliu iki tos bylos), o taip galima nurodyti įvairias pasirinktis. 1.4 p a v y z d y s. Tarkime, kad duomenys (du skaitinio tipo kintamieji k1 ir k2) yra tekstinėje byloje „mano.txt“, kuri įrašyta diske „c“. Tada lentelę galime sukurti Editor lange parašę: DATA lent_pavad; INFILE ’c:\mano.txt’; INPUT k1 k2; RUN;

Pasirinktys naudojamos INFILE komandoje: 1) FIRSTOBS=n, čia n eilutės, nuo kurios reikia pradėti skaityti duomenis, numeris. Ši pasirinktis naudojama, kai turime duomenų bylą, kurios pradžioje yra duomenų aprašymas arba kokia nors kita informacija. 1.5 p a v y z d y s. Tarkime, kad turime tekstinę bylą „prekes.txt“ diske „c“, kataloge „mano“. Šioje byloje pirmos dvi eilutės yra tekstas. Duomenys apie prekes, parduotas 2004 metais. Prekės_pavadinimas Parduota Prekė1 205 Prekė2 154 Prekė3 361

Lentelę galima sukurti su tokiu Data žingsniu: DATA prekes_2004; INFILE ’c:\mano\prekes.txt’ FIRSTOBS=3; INPUT preke $ parduota; RUN;

1) OBS=n, čia n nurodo kiek eilučių iš pradinės bylos reikia perskaityti. Šis skaičius nebūtinai sutampa su stebėjimų skaičiumi sukurtoje lentelėje, pavyzdžiui, jei pradinėje byloje vienas stebėjimas užima dvi eilutes, tai nurodžius OBS=100, bus perskaityta 100 eilučių, t.y. lentelėje bus 50 stebėjimų. Ši pasirinktis naudojama, kai reikia perskaityti dalį duomenų. 1.6 p a v y z d y s. Tarkime, kad turime tekstinę bylą, kurioje yra tokie duomenys: Duomenys apie prekes, parduotas 2004 metais. Prekės_pavadinimas Parduota Prekė1 205 Prekė2 154 Prekė3 361 Duomenis pateikusio darbuotojo numeris: 1254.

Šioje byloje pirmos dvi ir paskutinė eilutė yra tekstas. Lentelę galima sukurti su tokiu Data žingsniu: DATA prekes_2004; INFILE ’c:\mano\prekes.txt’ FIRSTOBS=3 OBS=5; INPUT preke $ parduota; RUN;

Šio Data žingsnio rezultatas yra lentelė „prekes_2004“. Joje bus duomenys iš 3-5 pradinės bylos eilučių. 3) MISSOVER. Jei pradinių duomenų eilutėje yra mažiau reikšmių negu nurodyta kintamųjų INPUT sakinyje, tai pagal nutylėjimą trūkstamos reikšmės imamos iš kitos eilutės.

16

Su šia pasirinktimi yra nurodoma, kad kintamiesiems, kuriems neužteko reikšmių, turi būti priskirta praleisto stebėjimo reikšmė. 1.7 p a v y z d y s. Duoti testo rezultatai. Ne visi atliko visas užduotis, todėl vieni gavo daugiau taškų, kiti mažiau. Duomenys: Ramunė 78 76 90 85 Rytis 66 71 83 74 72 Rasa 69 68 80

Lentelę galima sukurti su tokiu Data žingsniu: DATA testas; INFILE ’c:\mano\taskai.txt’ MISSOVER; INPUT vardas $ t1 t2 t3 t4 t5; RUN;

4) TRUNCOVER pasirinktis naudojama, kai paskutinis INPUT sakinyje nurodytas kintamasis skaitomas stulpeliais arba naudojant skaitymo formatą ir eilutės pradinėje byloje yra nevienodo ilgio. 1.8 p a v y z d y s. Duota: vaiko vardas, kokį būrelį lanko: Ramunė pramoginiai šokiai Rytis krepšinis Rasa dailė

Lentelę galima sukurti su tokiu Data žingsniu: DATA burelis; INFILE ’c:\mano\bureliai.txt’ TRUNCOVER; INPUT vardas $ burelis $ 8-26; RUN;

5) DLM=’skirtukas’. Kai reikšmės tekstinėje byloje atskirtos ne tarpais, o kitokiais simboliais (pavyzdžiui, ’&’ ’-’ ir kt.) ir INPUT komandoje kintamieji tiesiog išvardinami (skaitymas sąrašu), tai INFILE komandoje reikia nurodyti DELIMITER=’skirtukas’ arba DLM=’skirtukas’. 1.9 p a v y z d y s. Tegu pradinėje byloje reikšmės atskirtos kableliais. Duomenys: Ramunė,7,8,7,6 Rytis,6,6,7,8 Rasa,6,9,8,8

Lentelę galima sukurti su tokiu Data žingsniu: DATA lentele1; INFILE ’c:\mano\rezultatai.txt’ DLM=’,’; INPUT vardas $ t1 t2 t3 t4; RUN;

P a s t a b a. Pagal nutylėjimą du ar daugiau vienas po kito parašyti skirtukai traktuojami kaip vienas skirtukas. Jei byloje yra praleistų stebėjimų ir du vienas po kito parašyti skirtukai reiškia praleistą stebėjimą, tai kartu su DLM pasirinktimi reikia naudoti ir DSD pasirinktį. Panaudojus INFILE komandoje DSD pasirinktį: 1) ignoruojami skirtukai duomenų reikšmėse, kurios yra kabutėse (jie traktuojami kaip paprasti simboliai); 2) tariama, kad kabutės nėra duomenys; 3) tariama, kad du vienas po kito parašyti skirtukai reiškia praleistą stebėjimą. 3.4. Import procedūra IMPORT procedūra rašoma Editor lange ir skirta importuoti duomenis iš įvairaus formato bylų (Microsoft Excel, Microsoft Access, tekstinės bylos (reikšmės atskirtos 17

kableliais, Tab simboliais, kitais simboliais) ir kt.) į SAS duomenų lenteles. IMPORT procedūra atlieka tokias funkcijas: 1) skanuoja duomenų bylą ir automatiškai nustato kintamojo tipą (skaitinis ar simbolinis); 2) priskiria tinkamus ilgius simbolinio tipo kintamiesiems; 3) gali atpažinti kai kuriuos datos formatus; 4) traktuoja du vienas po kito parašytus skirtukus (simbolius, kurie atskiria reikšmes) pradinėje byloje kaip praleistą stebėjimą; 5) skaito reikšmes, parašytas kabutėse; 6) priskiria praleisto stebėjimo reikšmę kintamiesiems, kuriems neužtenka duomenų eilutėje; 7) duomenų bylos pirmoje eilutėje galima nurodyti kintamųjų vardus; Paprasčiausia procedūros IMPORT sintaksė yra tokia: PROC IMPORT DATAFILE=’bylos_vardas’ OUT=duomenu_lentele;

Bylos vardas nurodomas su DATAFILE=’c:\mano\d1.txt’.

pilnu

keliu

iki

jos

ir

išplėtimu,

pavyzdžiui,

SAS nustato bylos tipą pagal išplėtimą: Bylos tipas Comma-delimited Tab-delimited Kitokie atskiriamieji simboliai (skirtukai) Excel (2000 Windows)

Išplėtimas .csv .txt

DBMS identifikatorius CSV TAB DLM

.xls

Excel2000

P a s t a b a. Jei bylos išplėtimas nurodytas netiksliai arba byla yra tipo DLM, tai reikia IMPORT procedūroje naudoti pasirinktį DBMS=identifikatorius. Jei lentelė nurodytu pavadinimu jau egzistuoja ir norime ją pakeisti, tai naudojame REPLACE. PROC IMPORT DATAFILE=’bylos_vardas’ OUT=duomenu_lentele DBMS=identifikatorius REPLACE;

Import procedūra pagal nutylėjimą ima kintamųjų vardus iš pirmos pradinės duomenų bylos eilutės. Jei byloje kintamųjų vardų nėra, tai rašome GETNAMES=NO. Tada kintamiesiems bus priskirti vardai VAR1, VAR2 ir t.t. Jei duomenų byla yra DLM tipo, tai pagal nutylėjimą skirtukas yra tarpas. Jei skirtukas yra kitoks simbolis, tai reikia naudoti DELIMITER=’skirtukas’ pasirinktį. PROC IMPORT DATAFILE=’bylos vardas’ DBMS =DLM REPLACE; GETNAMES=no; Delimiter=’skirtukas’; RUN;

OUT=duomenu_lentele

SAS yra numatyta galimybė importuoti duomenis iš įvairaus formato bylų į SAS duomenų lentelę nerašant programinio kodo. Pagrindiniame meniu pasirenkame punktą File→Import Data. Ekrane atsiranda langas, kuriame pasirenkame bylos, iš kurios norime importuoti duomenis, tipą. Galima pasirinkti iš sąrašo standartinį formatą (Standard data source): Microsoft Excel, Microsoft Access, tekstinė byla (reikšmės atskirtos kableliais (Comma separated values), Tab simboliais (Tab delimited), kitais simboliais (Delimited)), dBASE, JMP, Lotus. Taip pat galima pasirinkti nestandartinį formatą (User-defined formats), šiuo atveju vartotojas turi daugiau galimybių valdyti duomenų importą. Pasirinkus bylos formatą, kituose languose reikia pasirinkti bylos, iš kurios importuosime duomenis, vardą, įvesti SAS lentelės, kurią norime sukurti, vardą, bei nurodyti biblioteką, kurioje norime 18

lentelę išsaugoti. Priklausomai nuo pradinių duomenų bylos formato galimos įvairios kitos pasirinktys. Pavyzdžiui, jei duomenys yra Microsoft Excel formato byloje, tai galima nurodyti, ar imti kintamųjų vardus iš pirmos eilutės, ar konvertuoti skaitinio tipo duomenis į simbolinio tipo, jei stulpelyje yra ir simbolinio, ir skaitinio tipo reikšmių ir kt. 1.10 p a v y z d y s. Tarkime, kad duomenys iš 1.8 pavyzdžio yra Excel byloje „duom1.xls“, kuri yra diske „c“. Pagrindiniame meniu pasirenkame punktą File→Import Data. Ekrane atsiranda langas, kuriame pasirenkame „Standard data source“ ir „Microsoft Excel“ (žr. 1.5 pav.).

1.5 pav. Duomenų importavimas iš Excel bylos (pirmas žingsnis) Paspaudus mygtuką „Next“ yra atidaromas langas, kuriame reikia įvesti bylos, kurioje yra duomenys vardą (žr. 1.6 pav.).

1.6 pav. Duomenų importavimas iš Excel bylos (antras žingsnis) Kitame lange reikia pasirinkti iš kurio Excel darbo knygos lapo imti duomenis.

1.7 pav. Duomenų importavimas iš Excel bylos (trečias žingsnis) Paspaudus mygtuką Options galima pasirinkti (žr. 1.7 pav.): imti stulpelių vardus iš pirmos eilutės (Use data in the first row as SAS variable names), konvertuoti skaitinio tipo reikšmes į simbolinio tipo reikšmes mišraus tipo stulpeliuose (Convert numeric values to characters in a mixed types column), kintamajam skirti tiek pozicijų, kiek užima ilgiausias tekstas (Use the largest text size in a column as SAS variable length), panaudoti DATE. formatą datos / laiko stulpeliuose (Use DATE. format for a Date/Time column), panaudoti TIME. formatą, jeigu stulpelyje yra tik laiko reikšmės (Use TIME. format if only time values 19

found in a column), o taip pat galima nurodyti maksimalų simbolių skaičių stulpelyje (The largest text size allowed in a column). Importuojamoje byloje pirmoje eilutėje nėra kintamųjų vardų, todėl nuimkime pažymėjimą prie pirmos eilutės, visas kitas pasirinktis palikime. Kitame lange (žr. 1.8 pav.) reikia įvesti SAS bibliotekos vardą (library) ir SAS lentelės, kurią norime sukurti, vardą (member).

1.8 pav. Duomenų importavimas iš Excel bylos (ketvirtas žingsnis) Paskutiniame lange galima nurodyti, kad išsaugotų procedūros IMPORT kodą (žr. 1.9 pav.).

1.9 pav. Duomenų importavimas iš Excel bylos (penktas žingsnis) Paspaudžiame mygtuką Finish. Sukurtą lentelę galime atidaryti taip: Explorer lange paspaudžiame ikoną Libraries, tada pasirenkame biblioteką Work ir lentelę „lentele1“. Lentelė yra atidaroma Viewtable lange (žr. 1.10 pav.).

1.10 pav. Importuoti duomenys Pradinės bylos pirmoje eilutėje nebuvo stulpelių vardų, todėl stulpeliai pagal nutylėjimą buvo pavadinti F1, F2. Stulpelių pavadinimus galima pakeisti taip, kaip buvo aprašyta 3.1 skyrelyje. 20

1.11 p a v y z d y s. Iliustruosime kaip importuoti duomenis naudojant EFI langą. Tarkime, kad turime duomenis iš 1.3 pavyzdžio byloje „duom1.txt“, kuri yra diske „c“. Pagrindiniame meniu pasirenkame punktą File→Import Data. Ekrane atsiranda langas, kuriame pasirenkame „User-defined formats“. Paspaudus mygtuką Next yra atidaromas langas, kuriame reikia įvesti bylos, iš kurios importuosime duomenis pavadinimą. Kitame lange reikia įvesti bibliotekos vardą ir duomenų lentelės, kurią norime sukurti, vardą. Paspaudus mygtuką Next yra atidaromas EFI langas (žr. 1.11 pav).

1.11 pav. Duomenų importas Šio lango kairiajame viršutiniame kampe matome pradinius duomenis, o dešiniajame,kaip atrodys sukurta lentelė. Kiekvienam stulpeliui galime nurodyti: stulpelio vardą (Field Name), žymę (Descriptive Label), skaitymo formatą (Informat), rašymo formatą (Format), duomenų tipą (skaitinio – character, simbolinio - numeric), poziciją nuo kurios prasideda stulpelio reikšmė (position). Paspaudus mygtuką Options atidaromas duomenų importo pasirinkčių langas (žr. 1.12 pav.), kuriame galima pasirinkti: kaip yra išdėstyti stebėjimai pradinėje byloje (One record per SAS row – pradinėje byloje kiekvienas stebėjimas atskiroje eilutėje, Multiple SAS rows per record - pradinėje byloje keli stebėjimai vienoje eilutėje); skaitymo tipą (style of input; column – skaitymas stulpeliais (žr. 3.2 II punktą), list – skaitymas sąrašu (žr. 3.2 I punktą)); su kokiais simboliais yra atskirtos reikšmės pradinėje byloje (Delimiter(s)); įrašo ilgį (Record Length); kintamųjų sukūrimo būdą (Variable creation); koks pagal nutylėjimą kintamojo tipas (Default type); pirmą duomenų eilutę (Starting record); kiek stebėjimų reikia importuoti (Number of records).

1.12 pav. Duomenų importo pasirinktys Šiame lange pažymėkime automatinį kintamųjų sukūrimo būdą (Variable creation: Automatic), keli stebėjimai vienoje eilutėje pradinėje duomenų byloje (Multiple SAS rows per record). Paspaudę OK grįšime į ankstesnį langą. Jo viršutiniame dešiniame kampe 21

matome kaip atrodys sukurta lentelė (žr. 1.13 pav.). Galime pakeisti stulpelių pavadinimus: pažymime stulpelį ir lauke „Field name“ įvedame pavadinimą, pavyzdžiui, pažymėkime pirmą stulpelį, įveskime „Vardas“ ir paspauskime mygtuką Update, stulpelio pavadinimas pasikeis. Analogiškai galima pakeisti ir kitų stulpelių vardus. Atlikę visus pakeitimus pagrindiniame meniu pasirenkame File→Save. Duomenų importas atliktas, sukurtą lentelę galime peržiūrėti, pavyzdžiui, Viewtable lange.

1.13 pav. Duomenų importas 4. Duomenų eksportas SAS yra numatyta galimybė duomenis iš SAS duomenų lentelės perkelti į įvairaus formato bylas (galimi tokie patys formatai kaip ir importuojant duomenis (žr.3.4 skyrelį)). Duomenų eksportui yra skirta procedūra EXPORT. Procedūra EXPORT rašoma Editor lange. Sintaksė: PROC EXPORT DATA=duomenu_lentele

OUTFILE=’bylos vardas’ REPLACE;

pavyzdžiui, PROC EXPORT DATA=lentele OUTFILE=’c:\mano\duomenys.csv’;

Kokio formato bylą reikia sukurti yra nustatoma pagal išplėtimą. Bylos formatą galima nurodyti su DBMS=identifikatorius pasirinktimi. Bylos tipas Comma-delimited Tab-delimited Space-delimited

Išplėtimas .csv .txt

DBMS identifikatorius CSV TAB DLM

P a s t a b a. „Space-delimited“ formato bylos neturi standartinio išplėtimo, todėl reikia naudoti DBMS=identifikatorius pasirinktį. REPLACE nurodo, kad bylą reikia pakeisti, jei jau yra byla tokiu pačiu pavadinimu. Jei turime SAS/ACCESS modulį, tai galima eksportuoti SAS duomenų lentelę į Microsoft Excel, Microsoft Access, dBase, Lotus bylas. Sintaksė tokia pati. SAS yra numatyta galimybė eksportuoti duomenis iš SAS duomenų lentelės į įvairaus formato bylas nerašant programinio kodo. Pagrindiniame meniu pasirenkame punktą File→Export Data. Ekrane atsiranda langas, kuriame pasirenkame formatą į kurį norime eksportuoti duomenis, SAS lentelę, kurios duomenis norime eksportuoti. 1.12 p a v y z d y s. Tarkime, kad turime duomenų lentelę „lentele“, sukurtą 1.11 pavyzdyje, eksportuosime duomenis į Excel bylą su Export procedūra. Editor lange parašome: PROC EXPORT DATA=lentele OUTFILE=’c:\mano\duomenys.xls’;

22

Gauname tokią Excel lentelę: vardas Jonas Petras Tadas

k1

k2 15 18 6

16 20 17

5. Duomenų pertvarkymo komandos Kuriant duomenų lentelę su Data žingsniu galima tame pačiame Data žingsnyje pertvarkyti duomenis, pavyzdžiui, sukurti naujus kintamuosius, pakeisti kintamųjų reikšmes. Kintamųjų pertvarkymo komandos rašomos prieš komandą DATALINES arba po komandos INPUT, jeigu naudojama komanda INFILE: DATA d1; INPUT k1 k2; Duomenų pertvarkymo komandos; DATALINES; Duomenys; RUN;

DATA d1; INFILE ’c:\mano.txt’; INPUT k1 k2; Duomenų pertvarkymo komandos; RUN;

arba

Duomenų pertvarkymo komandos: priskyrimo sakinys, sąlyginis sakinys, ciklai. 5.1 Priskyrimo sakinys Priskyrimo sakinys naudojamas, kai norime sukurti naują kintamąjį arba pakeisti anksčiau sukurto kintamojo reikšmę. Sintaksė: kintamojo_vardas=reiškinys;

čia reiškinys – konstanta, kintamasis, matematinis reiškinys, funkcija; kintamasis – naujo arba seno kintamojo vardas. Jeigu nurodome naujo kintamojo vardą, tai jo tipas bus toks pats kaip ir reiškinio, nurodyto dešinėje pusėje, t.y., jei reiškinys simbolinio tipo, tai bus sukurtas simbolinio tipo kintamasis nurodytu vardu ir jam priskirta nurodyto reiškinio reikšmė; jei skaitinio, tai bus sukurtas skaitinio tipo kintamasis. 1.13 p a v y z d y s. Editor lange įveskime: DATA dd; x=10; sk=’du’; y=x+1; y=2*y; RUN;

Pirmuoju priskyrimo sakiniu yra sukuriamas naujas skaitinio tipo kintamasis „x“ ir jam priskiriama reikšmė 10. Antruoju priskyrimo sakiniu yra sukuriamas naujas simbolinio tipo kintamasis „sk“ ir jam priskiriama reikšmė „du“. Trečiuoju priskyrimo sakiniu yra sukuriamas naujas skaitinio tipo kintamasis „y“ ir jam priskiriama reikšmė x+1, t.y. 11. Ketvirtuoju priskyrimo sakiniu yra pakeičiama anksčiau sukurto kintamojo „y“ reikšmė. 1.14 p a v y z d y s. Tarkime, kad tekstinėje byloje „c:/egzaminai.txt“ yra duomenys apie egzaminų rezultatus (numeris, trijų egzaminų rezultatai): 251 256 254 287

10 8 6 9

9 7 7 8

9 8 5 8

Reikia sukurti duomenų lentelę „rezultatai“, kurioje būtų duomenys iš pradinės tekstinės bylos bei egzaminų vidurkis. Editor lange įvedame: DATA rezultatai; INFILE ’c:/egzaminai.txt’;

23

INPUT numeris $ egz1 egz2 egz3; /*nurodome kintamuosius iš pradinės bylos*/ vidurkis=(egz1+egz2+egz3)/3; RUN;

5.2. Sąlyginiai sakiniai Paprasčiausia sąlyginio sakinio sintaksė: IF sąlyga THEN veiksmas;

Nurodytas veiksmas atliekamas tik stebėjimams, kurie tenkina nurodytą sąlygą. Sąlygoje galima naudoti palyginimo operatorius: =, ∧= (nelygu), >, <, <=, >=, o taip pat IN operatorių: IF kintamasis IN(’rekšmė_1’, ’reikšmė_2’,..., ’reikšmė_n’) THEN veiksmas;

sąlyga teisinga, jei kintamojo reikšmė yra reikšmių, išvardintų skliaustuose, aibėje. Jei stebėjimams, tenkinantiems nurodytą sąlygą, reikia atlikti keletą veiksmų, tai rašome: IF sąlyga THEN veiksmas; ... veiksmas; END;

DO;

Galima naudoti sudėtines sąlygas: IF

sąlyga

AND

IF

sąlyga

OR

salyga salyga

THEN THEN

veiksmas; veiksmas;

Galima naudoti kelis sąlyginius sakinius, įdėtus vienas į kitą: IF sąlyga THEN veiksmas; THEN veiksmas; ELSE IF sąlyga THEN veiksmas; ELSE IF sąlyga ElSE veiksmas;

1.15 p a v y z d y s. Duomenų grupavimas naudojant sąlyginį sakinį. Tegu turime tokius duomenis (vienas kintamasis, septyni stebėjimai): 1.5 1.7 1.9 2.0 . 2.5 3.1

Reikia duomenis sugrupuoti į tokius intervalus: [1;2), [2;3), [3;4). Editor lange įvedame: DATA duom1; INPUT k1 @@; IF k1=. THEN intervalas=.; ELSE IF 1<=k1<2 THEN intervalas=1; ELSE IF 2<=k1<3 THEN intervalas=2; ELSE IF 3<=k1<4 THEN intervalas=3; DATALINES; 1.5 1.7 1.9 2.0 . 2.5 3.1 ; RUN;

Pirmoji sudėtinio sąlyginio dalis yra skirta praleistiems stebėjimams, jeigu šios dalies nebūtų, tai gautume nekorektišką rezultatą, nes praleista reikšmė būtų priskirta pirmajam intervalui, į kurį turi patekti tik skaičiai iš intervalo [1;2), nes praleista reikšmė yra traktuojama kaip pati mažiausia reikšmė.

24

Šio Data žingsnio rezultatas yra duomenų lentelė „duom1“: k1 1.5 1.7 1.9 2.0 . 2.5 3.1

intervalas 1 1 1 2 . 2 3

Sąlyginį sakinį galima panaudoti stebėjimų poaibio išrinkimui. Jei parašysime IF sąlyga;

tai lentelėje bus palikti tik stebėjimai, kurie tenkina nurodytą sąlygą; jei parašysime IF sąlyga THEN DELETE;

tai tenkinantys nurodytą sąlygą stebėjimai nebus įrašomi į lentelę. 1.16 p a v y z d y s. Tegu turime duomenis iš 1.15 pavyzdžio. Editor lange įveskime: DATA duom1; INPUT k1 @@; IF k1>=2; DATALINES; 1.5 1.7 1.9 2.0 . 2.5 3.1 ; RUN;

Gautoje lentelėje bus tik tie stebėjimai, kurie tenkina sąlygą: k1>=2, t.y. tik trys stebėjimai. 1.17 p a v y z d y s. Komandos LENGTH panaudojimas su sąlyginiu sakiniu. Su komanda LENGTH galima nurodyti kiek simbolių skirti kintamajam. Nagrinėkime tokį Data žingsnį: DATA pvz; INFILE ’c:\duom.txt’; INPUT numeris $ tipas; IF tipas=1 THEN pavad=’pradinė’; ELSE if tipas=2 THEN pavad=’pagrindinė’; ELSE pavad=’vidurinė’; RUN;

Ši programa veiks blogai, nes kintamojo „pavad“ ilgis yra 7 simboliai ir jo reikšmė „pagrindinė“ bus sutrumpinta iki „pagrind“, o reikšmė „vidurinė“ - iki „vidurin“. Taip atsitinka todėl, kad SAS nustato: 1) kintamasis „pavad“ yra simbolinio tipo, nes priskiriama simbolinio tipo konstanta; 2) iš to pačio sąlyginio sakinio SAS nustato, kad kintamojo „pavad“ reikšmė bus neilgesnė už 7 simbolius. Šios išvados padaromos iš priskyrimo sakinio pavad=’pradinė’, nes jame yra pirmą kartą panaudotas kintamojo „pavad“ vardas, net jeigu pradinėje duomenų byloje pirmas stebėjimas yra su reikšme „pagrindinė“ ir todėl pirmasis ELSE sakinys atliekamas pirmas, kintamojo „pavad“ ilgis vis tiek bus 7 simboliai. Vienas iš sprendimo būdų: DATA pvz; LENGTH pavad $10; INFILE ’c:\duom.txt’; INPUT numeris $ tipas; IF tipas=1 THEN pavad=’pradinė’; ELSE if tipas=2 THEN pavad=’pagrindinė’; ELSE pavad=’vidurinė’; RUN;

25

5.3. Ciklai SAS yra trijų tipų ciklai: I) DO ciklas. Sintaksė: DO ciklo_kintamasis=išraiška_1 <,… išraiška_n >; SAS komandos; END;

čia išraiška – tokio pavidalo reiškinys (arba reiškinių aibė): pradžia <WHILE(reiškinys) | UNTIL(reiškinys)>

kur pradžia yra pradinė ciklo kintamojo reikšmė; pabaiga - paskutinė ciklo kintamojo reikšmė; žingsnis – teigiamas arba neigiamas skaičius (arba reiškinys, kurio reikšmė yra skaičius), nurodantis kaip turi kisti ciklo kintamojo reikšmės; WHILE(reiškinys) nurodytas reiškinys yra tikrinamas prieš kiekvieną ciklo iteraciją ir ciklas yra atliekamas tol, kol reiškinys yra teisingas; UNTIL(reiškinys) nurodytas reiškinys yra tikrinamas po kiekvienos ciklo iteracijos ir ciklas yra atliekamas tol, kol reiškinys taps teisingas. 1.18 p a v y z d y s. a) b) c) d) e) f) g)

DO numeris=’pirmas’, ’antras’, ’trečias’; DO skaičius=2, 3, 5, 7; n=3; DO i=n TO 1 BY -1; DO i=0.1 TO 0.9 BY 0.1, 1 TO 10 BY 1, 20 TO 100 BY 10; DO i=0.2 TO 0.8 BY 0.05; DO i=1 TO 10 UNTIL(x
1.19 p a v y z d y s. DATA dd; DO i=1 TO 15; hh=i*2; OUTPUT; IF hh>=8 THEN i=15; END; RUN;

Rezultatas i hh 1 2 2 4 3 6 4 8

P a s t a b a. Komanda OUTPUT nurodo, kad kintamojo reikšmes reikia įrašyti į lentelę. Pagal nutylėjimą duomenys įrašomi į lentelę Data žingsnio pabaigoje. Taigi, jei cikle nepanaudosime komandos OUTPUT, tai į lentelę bus įrašytas tik paskutinės ciklo iteracijos rezultatas. II) DO UNTIL ciklas. Sintaksė: DO UNTIL(sąlyga); SAS_komandos; END;

Sąlyga yra tikrinama ciklo pabaigoje. Jei sąlyga teisinga, tai ciklo pabaiga. 1.20 p a v y z d y s. DATA duom1; y=1; DO UNTIL(y<=8); y=2*y; END; RUN;

Rezultatas y 2

III) DO WHILE ciklas. Sintaksė: DO WHILE (sąlyga); SAS_komandos; END;

26

Sąlyga yra tikrinama ciklo pradžioje. Komandos atliekamos tol, kol sąlyga teisinga. 1.21 p a v y z d y s. DATA duom; y=1; DO WHILE(y<=8); y=2*y; OUTPUT; END; RUN;

Rezultatas y 2 4 8 16

5.4. RETAIN ir sumavimo sakiniai Pradžioje kiekvienos Data žingsnio iteracijos visiems kintamiesiems automatiškai yra priskiriama praleisto stebėjimo reikšmė. Jei kintamajam nepriskiriama reikšmė, pavyzdžiui, INPUT sakinyje arba priskyrimo sakinyje, tai jo reikšmė bus praleistas stebėjimas. Kad kintamųjų reikšmės būtų imamos iš ankstesnės Data žingsnio iteracijos galima nurodyti su RETAIN arba sumavimo sakiniu. RETAIN sakinyje nurodyto kintamojo (kintamųjų) reikšmės yra perkeliamos į kitą iteraciją, t.y. pradžioje Data žingsnio kintamajam (kintamiesiems) bus priskirta ne praleisto stebėjimo reikšmė, bet reikšmė iš prieš tai buvusios iteracijos. Ši komanda gali būti panaudota bet kurioje Data žingsnio vietoje. Sintaksė: RETAIN

kintamieji;

P a s t a b a. Nurodytiems kintamiesiems pirmoje Data žingsnio iteracijoje bus priskirta praleisto stebėjimo reikšmė. RETAIN

kintamieji

pradine_reiksme;

Šis sakinys nurodo, kad visiems kintamiesiems pirmoje Data žingsnio iteracijoje turi būti priskirta nurodyta pradinė reikšmė. Sumavimo sakinys taip pat išsaugo kintamųjų reikšmes iš ankstesnės Data žingsnio iteracijos. Jis naudojamas sumavimui. Sintaksė: kintamasis + reiškinys;

Kiekvienoje Data žingsnio iteracijoje prie kintamojo reikšmės pridedama reiškinio reikšmė, perkeliant gautą kintamojo reikšmę į sekančią iteraciją. P a s t a b a. Negalima rašyti minuso ženklo, reikia rašyti, pavyzdžiui, +(-B). Kintamasis turi būti skaitinio tipo ir jam automatiškai yra suteikiama pradinė reikšmė nulis. 1.22 p a v y z d y s. Duota: diena, parduotų per tą dieną prekių skaičius. Reikia sukurti lentelę, kurioje be pradinių duomenų dar būtų tokie kintamieji: maksimalus prekių, parduotų per vieną dieną, skaičius iki tos dienos imtinai, bendras parduotų prekių skaičius iki tos dienos imtinai. Editor lange parašome: DATA pvz; INPUT diena sk; RETAIN sk did; did=max(did, sk); bendras + sk; DATALINES; 1 2 5 10 7 5 12 15 15 7 RUN;

Gauname tokią duomenų lentelę: 27

diena 1 5 7 12 15

sk 2 10 5 15 7

did 2 10 10 15 15

bendras 2 12 17 32 39

6. SAS duomenų lentelės keitimas Su komanda SET Data žingsnyje galime pertvarkyti jau sukurtą SAS duomenų lentelę, t.y. galima pašalinti esančius lentelėje kintamuosius, pridėti naujus kintamuosius, išrinkti duomenų poaibius ir pan. Sintaksė: DATA nauja_lentelė; SET sena_lentelė; duomenų koregavimo komandos; RUN;

čia nauja_lentelė – lentelės, kurią norime sukurti, vardas; sena_lentelė – lentelės, kurią norime pertvarkyti, vardas; duomenų koregavimo komandos – priskyrimo sakiniai, sąlyginiai sakiniai ir pan. Jeigu po DATA ir SET nurodome tokį patį lentelės vardą, tai pakeitimai išsaugomi toje pačioje lentelėje. 1.23 p a v y z d y s. Duota lentelė „duom“, kurioje yra keturi stulpeliai: tipas, k1, k2, k3. Reikia sukurti naują lentelę, kurioje būtų visi kintamieji iš pradinės lentelės, naujas kintamasis „suma“ ir tik tie stebėjimai, kuriems tipas=’pirmas’. Editor lange parašome: DATA nauja; SET duom; IF tipas=’pirmas’; suma=k1+k2+k3; RUN;

7. Kelių lentelių sukūrimas viename Data žingsnyje Su komanda OUTPUT galima sukurti kelias duomenų lenteles viename Data žingsnyje. Jeigu Editor lange parašome, pavyzdžiui, DATA d1 d2 d3;

tai bus sukurtos trys vienodas lentelės. Jeigu norime sukurti skirtingas lenteles, tai naudojame OUTPUT komandą. Komanda OUTPUT nurodo įrašyti einamojo stebėjimo kintamųjų reikšmes į kuriamą lentelę prieš grįžtant į Data žingsnio pradžią. Sintaksė: OUTPUT lentelė;

P a s t a b a. Jeigu nenurodysime lentelės pavadinimo, tai stebėjimas bus įrašytas į visas lenteles išvardintas po žodžio DATA. OUTPUT komanda gali būti naudojama atskirame sakinyje, sąlygos sakiniuose arba cikluose. 1.24 p a v y z d y s. Tarkime, kad turime tokius duomenis: x x1 x2 x3 x4 x5 x6

y a r v v a r

Reikia įrašyti duomenis į dvi lenteles: jeigu y=’a’ arba y=’r’, tai į lentelę „d1“; jeigu y=’a’ arba y=’v’, tai į lentelę „d2“. Editor lange įvedame:

28

DATA d1 d2; INFILE ’c:/duom.txt’; INPUT x $ y $; IF y=’r’ THEN OUTPUT d1; ELSE IF y=’v’ THEN OUTPUT ELSE IF y=’a’ THEN OUTPUT; RUN;

d2;

8. Kintamųjų pašalinimo ir pervardinimo komandos SAS visus kintamuosius, kurių vardai buvo panaudoti Data žingsnyje įrašo į duomenų lentelę. Pagalbinius kintamuosius galima panaikinti su komanda KEEP arba DROP. Jos rašomos Data žingsnyje. Sintaksė: KEEP

kintamųjų_sąrašas;

DROP kintamųjų_sąrašas;

Jei naudojame KEEP, tai duomenų lentelėje paliekami tik nurodyti kintamieji. Jei naudojame DROP, tai nurodyti kintamieji yra pašalinami iš duomenų lentelės. P a s t a b a. Viename Data žingsnyje KEEP ir DROP naudoti negalima. 1.25 p a v y z d y s. KEEP k1 k2; /* lentelėje liks tik kintamieji k1 ir k2 */ DROP k1 k2; /* lentelėje neliks kintamųjų k1 ir k2 */

Kintamojo vardą galima pakeisti su komanda RENAME. Sintaksė: RENAME senas_vardas=naujas_vardas;

Komandos KEEP, DROP, RENAME gali būti naudojamos bet kurioje Data žingsnio vietoje. 1.26 p a v y z d y s. Editor lange parašykime tokį Data žingsnį: DATA dd; DO i=1 TO 10; x=i*i; y=x+1; OUTPUT; END; DROP i; RENAME y=z; RUN;

Šio Data žingsnio rezultatas yra lentelė „dd“, kurioje bus du kintamieji „x“ ir „z“. 9. Lentelių apjungimo komandos 9.1. Lentelių apjungimas su komanda SET Komanda SET naudojama, kai norime apjungti kelias lenteles su tais pačiais kintamaisiais, bet skirtingais stebėjimais. Sintaksė: DATA lentelė; SET lent_1 ... lent_n; RUN;

čia lentelė – naujos lentelės vardas; po SET nurodome lenteles, kurias norime apjungti. Stebėjimų skaičius naujoje lentelėje lygus senų lentelių stebėjimų sumai. Stebėjimų tvarka priklauso nuo to, kaip išvardiname lenteles SET sakinyje. Jei lentelėje yra kintamasis, kuris neįeina į kitas lenteles, tai stebėjimuose iš tų lentelių to kintamojo reikšmė bus praleistas stebėjimas.

29

1.27 p a v y z d y s. Tegu turime dvi lenteles „D1“ ir „D2“: D1 D2 K1 K2 K3 K1 K2 1 A C 4 E 2 B D Reikia sukurti naują lentelę „nauja“, kurioje būtų duomenys iš abiejų pradinių lentelių. Editor lange parašykime DATA nauja; SET D1 D2; RUN;

Šio Data žingsnio rezultatas yra tokia lentelė: K1 K2 K3 1 A C 2 B D 4 E Jei turime surūšiuotus duomenis, tai anksčiau aprašytas apjungimas išardys surūšiavimo tvarką. Galima apjungti, o paskui surūšiuoti su procedūra SORT, bet tai užima laiko. Galima daryti taip: DATA nauja; SET lent_1 ... lent_n; BY kintamieji; RUN;

Atlikus šį Data žingsnį bus sukurta nauja lentelė „nauja“ ir nebus išardyta surūšiavimo tvarka pagal kintamuosius, nurodytus po komandos BY. Lentelės „lent_1“,...,“lent_n“ turi būti surūšiuotos pagal kintamuosius, nurodytus po BY komandos. 1.28 p a v y z d y s. Tegu turime dvi lenteles „D1“ ir „D2“: K1 1 3 5

D1 K2 A B C

D2 K3 D E F

K1 2 6

K2 M N

Reikia sukurti naują lentelę „nauja“, kurioje būtų duomenys iš abiejų pradinių lentelių. Editor lange parašykime DATA nauja; SET D1 D2; BY K1; RUN;

Šio Data žingsnio rezultatas yra tokia lentelė: K1 1 2 3 5 6

K2 A M B C N

K3 D E F

9.2. Lentelių apjungimas su komanda MERGE Ši komanda naudojama Data žingsnyje. Lentelėse turi būti bent vienas bendras kintamasis pagal kurį apjungsime lenteles. Prieš naudojant komandą MERGE reikia lenteles surūšiuoti pagal bendrus kintamuosius. Sintaksė: 30

DATA nauja_lentele; /* lentelės, kuri bus sukurta, vardas */ MERGE lentele1 lentele2; /*lentelių, kurias apjungsime, vardai*/ BY kintamieji; /* kintamieji pagal kuriuos apjungsime*/ RUN;

P a s t a b a. Jei norime apjungti dvi lenteles ir jose yra kintamųjų su tais pačiais vardais (išimtis BY-kintamieji, t.y. kintamieji, nurodyti po BY), tai gautoje lentelėje tiems kintamiesiems duomenys bus iš antros nurodytos lentelės, kad neužrašytų ant viršaus prieš naudojant komandą MERGE reikia pervardinti. 1.29 p a v y z d y s. a) Tarkime, kad turime dvi lenteles: „Duom1“ ir „Duom2“. Reikia sukurti lentelę „Abi“, kurioje būtų duomenys iš abiejų pradinių lentelių. Šią užduotį galime atlikti Editor lange parašę: DATA Abi; MERGE Duom1 Duom2; BY numeris; RUN;

Duom1 Numeris 001 002 004 005

Z Z1 Z2 Z3 Z4

Duom2 Numeris V 001 V1 004 V2 005 V3 007 V4

Abi Numeris 001 002 004 005 007

Z Z1 Z2 Z3 Z4

V V1 V2 V3 V4

b) Tarkime, kad turime dvi lenteles: „Duom1“ ir „Duom2“. Reikia sukurti lentelę „Nauja“, kurioje būtų duomenys iš abiejų pradinių lentelių. Šią užduotį galime atlikti Editor lange parašę: DATA Nauja; MERGE Duom1 Duom2; BY numeris; RUN;

Duom1 Numeris Z 001 Z1 002 Z2 003 Z3

Duom2 Numeris 001 001 002 004

V V1 V2 V3 V4

Numeris 001 001 002 003 004

Nauja Z Z1 Z1 Z2 Z3

V V1 V2 V3 V4

9.3. Duomenų lentelės atnaujinimas su komanda UPDATE Ši komanda naudojama Data žingsnyje. Komanda UPDATE naudojama, kai turime pagrindinę lentelę ir norime ją pakeisti naudodami duomenis iš kitos lentelės. P a s t a b o s. 1) Praleisti stebėjimai iš papildymų lentelės neužrašomi ant pagrindinės lentelės stebėjimų. 2) Galima nurodyti tik dvi lenteles: pagrindinę ir papildymų. 3) Abi lentelės turi būti surūšiuotos pagal bendrus kintamuosius. 4) Pagrindinėje lentelėje kintamųjų, nurodytų po BY, reikšmės turi būti skirtingos; jeigu bus kelios vienodos, tai papildymai bus pritaikyti tik pirmam stebėjimui su vienodomis reikšmėmis, o kiti bus ignoruojami. 5) Jei papildymų lentelėje yra keli stebėjimai su vienodomis kintamųjų, nurodytų po BY, reikšmėmis, tai gautoje lentelėje bus tik vienas stebėjimas ir reikšmės bus iš paskutinio papildymų lentelės stebėjimo. Sintaksė: 31

DATA pagrindinė_lentelė; UPDATE pagrindinė_lentelė BY kintamųjų_sąrašas; RUN;

papildymų_lentelė;

1.30 p a v y z d y s. Tarkime, kad turime dvi lenteles: „Pagrind“ ir „Papild“. Reikia atnaujinti lentelę „Pagrind“ su lentelės „Papild“ duomenimis. Editor lange parašome: DATA pagrind; UPDATE Pagrind Papild; BY Numeris; RUN;

a) Pagrind Numeris Z 008 Z1 009 Z1 010 Z1 011 Z1 012 Z1 013 Z1 014 Z1

V V1 V1 V1 V1 V1 V1 V1

Papild Numeris Z V 011 Z2 012 Z2 V2 + 013 Z2 013 V2 015 Z2 V2

Pagrind Numeris Z 008 Z1 009 Z1 = 010 Z1 011 Z2 012 Z2 013 Z2 014 Z1 015 Z2

V V1 V1 V1 V1 V2 V2 V1 V2

Pajuodintos tos reikšmės, kurios buvo pakeistos. b) Pagrind Numeris Z V 008 Z1 V1 009 Z2 V2 009 Z3 V3 011 Z4 V4

T T1 T2 T3 T4

Papild Numeris Z 009 + 012 V7

V V6 V7

Pagrind Numeris Z V 1988 Z1 V1 = 1989 Z2 V6 1989 Z3 V3 1991 Z4 V4 1992 Z7 V7

T T1 T2 T3 T4

Pajuodintos tos reikšmės, kurios buvo pakeistos. Pagrindinėje lentelėje yra dvi vienodos kintamojo, pagal kurį apjungiame, reikšmės, tačiau pakeitimas yra atliekamas tik pirmajam stebėjimui su vienodomis reikšmėmis (žr. 4 pastabą). 10. Duomenų lentelės pasirinktys SAS yra trys pagrindiniai pasirinkčių tipai: 1) sisteminės pasirinktys; 2) pasirinktys, naudojamos komandose; 3) duomenų lentelių pasirinktys. Sisteminės pasirinktys veikia visą SAS darbo sesijos laiką. Jas nurodome su globalia komanda OPTIONS (žr. 1 skyrelį). Pasirinktys, naudojamos komandose, veikia tik tame Data arba Proc žingsnyje, kuriame yra nurodytos. Pavyzdžiui, pasirinktis DATA=lentelė, kuri yra naudojama procedūrose, nurodo, kokią duomenų lentelę naudoti. Duomenų lentelių pasirinktys nurodo kaip duomenys skaitomi arba rašomi atskiroje duomenų lentelėje. Duomenų lentelės pasirinktis galima naudoti Data žingsnyje (su DATA, SET, MERGE arba UPDATE komandomis) arba Proc žingsnyje su DATA=lentelė pasirinktimi. Duomenų lentelės pasirinktys yra nurodomos skliaustuose po duomenų lentelės pavadinimo. Dažniausiai naudojamos tokios pasirinktys: KEEP=kintamieji palikti nurodytus kintamuosius; DROP=kintamieji išmesti nurodytus kintamuosius; 32

RENAME=(senas_kint=naujas_kint) pervardinti kintamąjį; FIRSTOBS=n pradėti skaityti nuo n-to stebėjimo OBS=n baigti skaityti n-tu stebėjimu 1.31 p a v y z d y s. DATA d1; SET d2 (KEEP=k1 k5);

Šiuo Data žingsniu yra sukuriama lentelė „d1“, kurioje bus du kintamieji (k1 ir k5) iš lentelės „d2“. 1.32 p a v y z d y s. DATA d1; SET d2 (RENAME=(k1=kint1 k3=kint3));

Šiuo Data žingsniu yra sukuriama lentelė „d1“, kurioje bus visi duomenys iš lentelės „d2“, tačiau kintamojo „k1“ vardas bus pakeistas į „kint1“, o kintamojo „k3“ – į „kint3“. Yra analogiškos komandos KEEP, DROP, RENAME (žr. 8 skyrelį). Lentelėje 1.2 yra pateiktas duomenų lentelių pasirinkčių ir atitinkamų komandų palyginimas. P a s t a b o s. 1) Jei pasirinktis panaudota su pradine lentele, tai: a) pašalintų kintamųjų negalima naudoti Data žingsnyje (skaičiavimuose ir pan.); b) komandose ir kuriamos lentelės pasirinktyse reikia naudoti naują vardą; reikia naudoti seną vardą kitose pradinės lentelės pasirinktyse. 2) Jei pasirinktis panaudota su kuriama lentele, tai: a) visus kintamuosius galima naudoti skaičiavimuose; b) reikia naudoti seną vardą programos komandose ar kitose kuriamos lentelės pasirinktyse. 1.2 lentelė. Duomenų lentelių pasirinkčių ir atitinkamų komandų palyginimas Komandos Duomenų lentelių pasirinktys taikomos tik kuriamoms lentelėms; taikomos ir pradinėms, ir kuriamoms lentelėms; veikia visas tame Data žingsnyje kuria- veikia tik atskirą lentelę; mas lenteles; naudojamos tik Data žingsnyje; naudojamos ir Data, ir Proc žingsniuose; rašomos bet kurioje Data žingsnio vie- rašomos iš karto po lentelės, kuriai taikomos, toje; pavadinimo 1.33 p a v y z d y s. a) DATA d2; SET d1 (DROP=k1 k2); k3=2*k4; RUN;

Pasirinktis panaudota su pradine lentele, todėl kintamųjų „k1“ ir „k2“ negalima naudoti komandose, jų nebus ir lentelėje „d2“. b) DATA d2 (DROP=k1 k2); SET d1; k3=2*k4; RUN;

Pasirinktis panaudota su kuriama lentele, todėl kintamųjų „k1“ ir „k2“ nebus lentelėje „d2“, bet juos galima naudoti skaičiavimuose. c) DATA d2 (RENAME=(x=naujas)); SET d1; z=x+y; RUN;

Pasirinktis panaudota su kuriama lentele, todėl skaičiavimuose naudojame seną vardą. 33

d) DATA d2; SET d1 (RENAME=(x=naujas)); z=naujas+y; RUN;

Pasirinktis panaudota su pradine lentele, todėl skaičiavimuose naudojame naują vardą. e) PROC PRINT data=d1 (firstobs=101 obs=120); RUN;

Nurodome, kuriuos stebėjimus spausdinti, t.y. spausdins pradedant 101 stebėjimu ir baigiant 120 stebėjimu. 11. Automatiniai kintamieji Automatiniai kintamieji – laikini kintamieji, kurie yra sukuriami Data žingsnio metu. Jie neįrašomi į duomenų lentelę. Sukuriami automatiškai Data žingsnio metu; laikini kintamieji, neįrašomi į SAS duomenų lentelę. Automatinis kintamasis _N_ parodo kiek kartų buvo atliktas Data žingsnis. 1.34 p a v y z d y s. Tarkime, kad turime duomenų lentelę „duom“. Šią lentelę reikia papildyti tokiu nauju kintamuoju „sk“: kintamojo reikšmė pirmiems penkiems stebėjimams turi būti lygi 1, kitiems penkiems stebėjimams reikšmė turi būti lygi 2 ir t.t. Šią užduotį galima atlikti Editor lange parašius tokią programą: DATA duom; SET duom; RETAIN sk 0; IF MOD(_N_,5)=1 THEN sk=sk+1; /* funkcijos MOD rezultatas yra liekana*/ RUN; /* padalinus _N_ iš 5 */

Automatiniai kintamieji FIRST.kint ir LAST.kint yra sukuriami, kai Data žingsnyje naudojame BY komandą. Vietoje „kint“ reikia įrašyti kintamojo, nurodyto po BY, vardą. Šie kintamieji gali įgyti tik reikšmę 0 arba 1. FIRST.kint įgyja reikšmę 1, jei dirbama su stebėjimu, kuriam keičiasi BY-kintamųjų reikšmė (t.y. pirmas stebėjimas, kuriam yra nauja BY-kintamųjų reikšmė) ir reikšmę 0 kitiems stebėjimams. LAST.kint įgyja reikšmę 1 paskutinei tai pačiai BY-kintamųjų reikšmei, o kitoms bus 0. 1.35 p a v y z d y s. Tarkime, kad gaminant tam tikrą gaminį, gamybos operacija yra kartojama, jei gaminio parametrų matavimai neatitinka nustatytų normatyvų, t.y. duomenų lentelėje kai kuriems gaminiams gali būti po keletą stebėjimų. Reikia palikti tik paskutinį matavimą. Editor lange parašome: DATA duom2; SET duom1; BY gaminio_nr; IF LAST.gaminio_nr =1; RUN;

Šiame Data žingsnyje parašytas sąlyginis sakinys nurodo, kad reikia palikti tik tuos stebėjimus, kuriems automatinio kintamojo LAST.gaminio_nr reikšmė yra 1, t.y. tik paskutinį stebėjimą kiekvienam gaminiui. 12. Kintamųjų vardų sąrašai Išvardinant kintamuosius galima naudoti sutrumpinimus, kurie yra vadinami SAS kintamųjų vardų sąrašais. Juos galima naudoti įvairiose SAS komandose, duomenų lentelių pasirinktyse, SAS procedūrose ir pan. Tegu turime aibė kintamųjų, kurių vardai yra tokie patys išskyrus paskutinį arba kelis paskutinius simbolius, kurie yra nuosekli skaičių seka, pavyzdžiui, vardas1, vardas2,…, vardasn, kur vardas yra kintamojo vardas. Tada galime naudoti tokį sutrumpinimą: vardas1vardasn. Pavyzdžiui, pilnas užrašymas: k5, k6, k7, k8; sutrumpinimas: k5-k8. 34

Kuriant lentelę kintamieji lentelėje yra išdėstomi tokia tvarka, kokia jie paminėti Data žingsnyje. Galima naudoti sutrumpinimus atsižvelgiant į kintamųjų išdėstymą duomenų lentelėje: x--a visi kintamieji nuo x iki a; x-numeric-a visi skaitinio tipo kintamieji nuo x iki a; x-character-a visi simbolinio tipo kintamieji nuo x iki a; 1.36 p a v y z d y s. Tarkime, kad lentelę sukūrėme su tokiu Data žingsniu: DATA pavyzdys; INFILE ’c:\duom.txt’; INPUT y a c $ h r; b=a+r; RUN;

Tada duomenų lentelėje kintamieji bus išdėstyti tokia tvarka: y, a, c, h, r, b. Editor lange parašykime: Sutrumpinimas: Pilnas užrašymas: DATA rez1; SET pavyzdys; KEEP a--h; RUN;

DATA rez1; SET pavyzdys; KEEP a c h; RUN;

Atlikus šį Data žingsnį lentelėje „rez1“ bus kintamieji nuo a iki h, t.y. kintamieji a, c, h. Editor lange parašykime: DATA rez2; SET pavyzdys; DROP a-numeric-h; RUN;

Atlikus šį žingsnį lentelėje „rez2“ nebus skaitinių kintamųjų nuo a iki h, t.y. kintamųjų a, h. Editor lange parašykime: DATA rez3; SET pavyzdys; DROP a-character-h; RUN;

Atlikus šį Data žingsnį lentelėje „rez3“ nebus simbolinio tipo kintamųjų nuo a iki h, t.y. kintamojo c. P a s t a b a. Kokia tvarka kintamieji yra išdėstyti duomenų lentelėje galima pažiūrėti su procedūra CONTENTS: PROC CONTENTS DATA=duomenų_lentelė POSITION; RUN;

Sutrumpinimus galima naudoti funkcijose. Šiuo atveju reikia nurodyti OF, pavyzdžiui, SUM(OF kint8-kint12) – kintamųjų k8, k9, k10, k11, k12 reikšmių suma. Specialūs kintamųjų vardų sąrašai: _NUMERIC_ visi skaitinio tipo kintamieji; _CHARACTER_ visi simbolinio tipo kintamieji; _ALL_ visi kintamieji. Pavyzdžiui, SUM(OF _NUMERIC_) visų skaitinio tipo kintamųjų reikšmių suma. Tarkime, kad turime aibę kintamųjų, kurių vardai prasideda tokiais pačiais simboliais, pavyzdžiui, kaina_sausio, kaina_vasario, kaina_kovo. Tada galima naudoti tokį sutrumpinimą: MEAN(OF kaina:) – kintamųjų reikšmių vidurkis.

35

13. Kintamųjų masyvai SAS kintamųjų masyvas – sutvarkyta kintamųjų grupė. Visi kintamieji turi būti to pačio tipo, t.y. arba visi skaitinio tipo, arba visi simbolinio tipo. Gali būti nauji arba anksčiau sukurti kintamieji. SAS kintamųjų masyvai yra dviejų tipų: vienmačiai ir daugiamačiai. Masyvas nėra išsaugomas duomenų lentelėje, jis yra sukuriamas tik Data žingsnio atlikimo laikotarpiui. Masyvai naudojami, kai tą patį veiksmą reikia atlikti daugeliui kintamųjų. Masyvas yra apibrėžiamas su ARRAY komanda, kuri rašoma Data žingsnyje. Sintaksė: ARRAY masyvo_vardas {masyvo_dydis} <$> <(pradinių_reikšmių_sąrašas)>;

Masyvo dydį galima nurodyti laužtiniuose „[ ]“, figūriniuose „{ }“ arba paprastuose skliaustuose „( )“. Masyvo vardas negali sutapti su kurio nors duomenų lentelės kintamojo vardu ar SAS rezervuotu žodžiu. Masyvo dydį galima nurodyti keliais būdais: a) nurodant elementų skaičių kiekvienoje masyvo dimensijoje. 1.37 p a v y z d y s. 1) ARRAY m(3) k1 k2 k3; apibrėžiame vienmatį masyvą, kurio vardas yra „m“ ir kuris yra sudarytas iš trijų kintamųjų k1, k2, k3. 2) ARRAY m(5,3) T1-T15; dvimatis masyvas: penkios eilutės ir trys stulpeliai, iš viso masyvą sudaro 15 kintamųjų. Kintamieji masyve yra išdėstomi tokiu būdu: užpildoma pirma eilutė iš kairės į dešinę, tada antra eilutė ir t.t. Taigi, šiame pavyzdyje kintamieji masyve bus išdėstyti tokiu būdu: T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 T15

b) nurodant kiekvienos masyvo dimensijos apatinį ir viršutinį rėžį: { viršutinė_riba <,... viršutinė_riba>},

1.38 p a v y z d y s. 1) ARRAY mm{5,3} T1-T15; šis užrašas ekvivalentus: ARRAY mm{1:5,1:3} T1T15; 2) ARRAY mm{0:7} T0-T7; apibrėžiame vienmatį masyvą, kurio vardas yra „mm“ ir kuris yra sudarytas iš kintamųjų T0, T1,...,T7. c) Jeigu nurodome {*}, tai masyvo dydis nustatomas suskaičiuojant kintamuosius masyve. Šis būdas naudojamas tik apibrėžiant vienmačius masyvus. Nebūtina pasirinktis „$” naudojama, kai masyvą sudarantys kintamieji yra simbolinio tipo. Pasirinktis „ilgis“ apibrėžia kintamųjų ilgį, jeigu jis nebuvo apibrėžtas anksčiau. Galima masyvo elementams priskirti pradines reikšmes. Jas reikia išvardinti skliaustuose, atskiriant tarpais arba kableliais. Masyvo elementai ir nurodytos pradinės reikšmės yra susijusios, t.y. pirmajam elementui priskiriama pirmoji nurodyta pradinė reikšmė, antrajam elementui – antroji ir t.t. Jeigu masyvo elementų yra daugiau negu nurodyta pradinių reikšmių, tai likusiems elementams priskiriama praleisto stebėjimo reikšmė. kintamajam priskirta pradinė reikšmė pakeičiama priskyrus kitą reikšmę. Pradines reikšmes galima tiesiog išvardinti arba naudoti sutrumpinimą, t.y. nurodome reikšmę ir kiek kartų ją reikia pakartoti. 1.39 p a v y z d y s. 1) ARRAY m{5} k1-k5; 2) ARRAY men{*} sausis vasaris kovas balandis; 3) ARRAY testas(4) t1 t2 t3 t4 (90 80 70 70); ekvivalentus užrašymas:

36

ARRAY testas(4) t1-t4 (90 80 2*70); 4) ARRAY x{10} x1-x10 (10*5); kintamiesiems x1,...x10 priskiriama pradinė reikšmė 5; 5) ARRAY testas2 {*} a1 a2 a3 (’a’, ’b’, ’c’); 6) ARRAY naujas (2:5) T1-T4; 7) ARRAY testas3 {3:4,3:7} T1-T10;

Kreipinio į masyvą sintaksė: masyvo_vardas (indeksas)

čia indeksas – skaičius, aritmetinis reiškinys. 1.40 p a v y z d y s. Tarkime, kad lentelėje yra šimtas kintamųjų: x1,...,x100. Šių kintamųjų reikšmę -1 reikia pakeisti į 0. Šį uždavinį galime atlikti su tokiu Data žingsniu: DATA rezultatas; SET pradiniai; ARRAY pag(100) x1-x100; DO i=1 TO 100; IF pag(i)=-1 THEN pag(i)=0; END; DROP i; RUN;

Šio Data žingsnio sąlyginiame sakinyje pag(i) yra kreipinys į masyvą, t.y. imamas i-tasis kintamasis. 14. SAS Procedūros SAS procedūros yra skirtos atlikti įvairią duomenų analizę, atspausdinti duomenis, surūšiuoti ir pan. Visos procedūros prasideda žodžiu PROC, toliau rašomas procedūros pavadinimas ir įvairios pasirinktys. 1.41 p a v y z d y s. PROC CONTENTS DATA=lentelė;

čia CONTENTS yra procedūros pavadinimas. Ši procedūra pateikia informaciją apie duomenų lentelę. Nebūtina pasirinktis DATA=lentelė nurodo kokią duomenų lentelę analizuojame. Jei šios pasirinkties nenurodome, tai pagal nutylėjimą imama paskutinė sukurta lentelė, o ji nebūtinai sutampa su paskutine naudota lentele, taigi šią pasirinktį rekomenduojama naudoti, kad būtų aišku, kokia duomenų lentelė yra analizuojama. SAS yra keletas sakinių, kuriuos galima naudoti bet kurioje procedūroje. Aprašysime dažniausiai naudojamus. BY kintamieji;

Šis sakinys yra būtinas tik procedūroje SORT, kitose procedūrose – nebūtinas. Jis nurodo, kad turi būti atlikta atskira duomenų analizė kiekvienam BY-kintamųjų reikšmių deriniui, o ne bendra visų stebėjimų analizė. Pavyzdžiui, BY mokykla; bus atlikta atskira duomenų analizė kiekvienai mokyklai. P a s t a b a. Jei naudojame sakinį BY, tai prieš tai duomenis reikia surūšiuoti pagal kintamuosius, nurodytus po BY. TITLE ir FOOTNOTE sakiniai. Galima nurodyti iki 10 pavadinimų ir užrašų puslapio apačioje. Pavyzdžiui, FOOTNOTE3 ‘Rezultatai’. Nurodyti pavadinimai spausdinami tol, kol nepakeičiami naujais arba nepanaikinami su sakiniu TITLE. Kai nurodome naują pavadinimą, jis pakeičia anksčiau nurodytą ir panaikina visus pavadinimus su didesniu numeriu, pavyzdžiui, naujas TITLE2 panaikina egzistuojantį TITLE3. Sintaksė: TITLEn

’pavadinimas’;

FOOTNOTEn

’pavadinimas’;

37

čia n=2 iki 10 nurodo, kurioje eilutėje bus spausdinamas nurodytas pavadinimas. Sakinys WHERE nurodo, kad procedūroje turi būti panaudota tik dalis lentelės duomenų. Sintaksė: WHERE

sąlyga;

Sąlygoje galima naudoti palyginimo operatorius: =, <, >, <=, >=, ^=, OR, AND, o taip pat tokius operatorius: IS NOT MISSING; pavyzdžiui, WHERE k1 IS NOT MISSING; analizuojami tik tie stebėjimai, kur k1 reikšmė nėra praleistas stebėjimas; BETWEEN AND; pavyzdžiui, WHERE k1 BETWEEN ‘reikšmė_1’ AND ‘reikšmė_2’; analizuojami tik tie stebėjimai, kur k1 reikšmė yra tarp ‘reikšmė_1’ ir ‘reikšmė_2’; CONTAINS; pavyzdžiui, WHERE k1 CONTAINS ‘ain’; analizuojami tik tie stebėjimai, kur k1 reikšmėje yra simbolių seka ‘ain’. IN (sąrašas); pavyzdžiui, WHERE k1 IN (‘reikšmė_1’, ‘reikšmė_2’, ‘reikšmė_3’); analizuojami tik tie stebėjimai, kur k1 reikšmė yra lygi kuriai nors iš nurodytų reikšmių. 1.42 p a v y z d y s. PROC PRINT DATA=mano.d1; WHERE k1>10 AND k2 IN (011 012); TITLE ’Pavadinimas’; FOOTNOTE ’Prierašas’; RUN;

Pasirinktis DATA=mano.d1 nurodo, kad spausdinsime lentelės “d1”, esančios bibliotekoje “mano”, duomenis. Sakiniu WHERE nurodome, kad turi būti spausdinami tik stebėjimai, tenkinantys nurodytą sąlygą. Prieš duomenis bus atspausdinta “Pavadinimas”, o po duomenimis “Prierašas”. 14.1. Duomenų rūšiavimas SAS procedūra SORT yra skirta duomenų rūšiavimui. Sintaksė: PROC SORT DATA=lentelė OUT=lentelė_1; BY kintamųjų_sąrašas; RUN;

DATA=lentelė pasirinktis nurodo, kokios lentelės duomenys turi būti surūšiuoti; OUT=lentelė_1 pasirinktis nurodo, į kokią lentelę turi būti įrašyti surūšiuoti duomenys; duomenys yra surūšiuojami pagal po BY nurodytus kintamuosius. 1.43 p a v y z d y s. PROC SORT DATA=pradiniai OUT=rezultatas; BY k1 k2 k3; RUN;

Duomenys imami iš lentelės ‘pradiniai’, surūšiuojami ir įrašomi į lentelę ‘rezultatas’. Iš pradžių surūšiuojami pagal kintamąjį k1 didėjančia tvarka, paskui vienodos k1 reikšmės surūšiuojamos pagal k2 didėjančia tvarka ir t.t. P a s t a b a. 1) Jei nenurodome pasirinkties OUT= , tai surūšiuoti duomenys įrašomi į tą pačią lentelę. 2) Pagal nutylėjimą rūšiuojama didėjančia tvarka, jei norime mažėjančia tvarka, tai prieš kintamąjį nurodome DESCENDING. 3) Praleistas stebėjimas visada mažiausia reikšmė. 1.44 p a v y z d y s. PROC SORT DATA=pradiniai OUT=rezultatas; BY k1 DESCENDING k2; RUN;

38

Duomenys imami iš lentelės ‘pradiniai’, surūšiuojami ir įrašomi į lentelę ‘rezultatas’. Iš pradžių surūšiuojami pagal kintamąjį k1 didėjančia tvarka, paskui vienodos k1 reikšmės surūšiuojamos pagal k2 mažėjančia tvarka. SAS numatyta galimybė surūšiuoti duomenis nerašant programinio kodo. Jeigu norime surūšiuoti pagal vieną kintamąjį (stulpelį), tai ant stulpelio pavadinimo paspaudžiame dešinį pelės klavišą ir iš atsiradusio kontekstinio meniu pasirenkame Sort, paskui Ascending (didėjančia tvarka) arba Descending (mažėjančia tvarka). Jeigu norime surūšiuoti pagal kelis kintamuosius arba vieną kintamąjį, reikia atidaryti lentelę, kurios duomenis norime surūšiuoti, tada pagrindiniame meniu pasirinkti Data→Sort. Atsidariusiame „Sort“ lange (žr. 1.14 pav) pasirenkame kintamuosius (arba vieną kintamąjį) pagal kuriuos norime surūšiuoti bei rūšiavimo tvarką (didėjanti arba mažėjanti). Pasirinkę Save As nurodome į kokią lentelę įrašyti rūšiavimo rezultatą.

1.14 pav. Rūšiavimo langas Jei atidarome lentelę peržiūros režime (Browse Mode), tai surūšiuotus duomenis galime išsaugoti tik kitoje lentelėje. Jei atidarome lentelę redagavimo režime (Edit Mode), tai surūšiuotus duomenis galime išsaugoti ir toje pačioje lentelėje (apie lentelės atidarymą redagavimo ir peržiūros režime žr.3.1 skyrelyje).

1.15 pav. Papildomų rūšiavimo pasirinkčių langas Rūšiavimo lange paspaudus Advanced mygtuką yra atidaromas langas (žr.1.15 pav), kuriame galima pasirinkti, pavyzdžiui: Equals - nurodo eilučių vietą surūšiuotoje lentelėje. Ši pasirinktis nurodo, kad eilutės su vienodomis BY-kintamųjų reikšmėmis surūšiuotoje lentelėje bus išdėstytos tokia pačia tvarka kaip ir pradinėje lentelėje; Force – nurodo surūšiuoti ir išsaugoti toje pačioje lentelėje, kai nenurodome lentelės, į kurią reikia įrašyti pakeitimus, vardo Save As lange; No duplicate keys – eliminuoja eilutes su vienodomis BY-kintamųjų reikšmėmis; No duplicate – eliminuoja eilutes su vienodomis reikšmėmis.

39

1.45 p a v y z d y s. Sukurkime duomenų lentelę „duomenys“ su tokiu Data žingsniu: DATA duomenys; INPUT x $ y z; DATALINES; x5 5 8 x5 4 2 x5 4 2 x3 1 5 x2 4 3 x2 6 1 x1 2 7 ; RUN;

Surūšiuokime lentelės duomenis pagal kintamąjį x didėjančia tvarka, o paskui vienodas x reikšmės pagal kintamąjį y mažėjančia tvarka, be to panaikinkime vienodas eilutes. Atidarykime lentelę Viewtable lange. Pagrindiniame meniu pasirinkime punktą Edit→Edit Mode, o paskui Data→Sort. Atsidariusiame Sort lange į Selected lauką perkelkime kintamuosius x ir y, pažymėkime y ir Sort Order pasirinkime Descending (surūšiuoti mažėjančia tvarka). Paspauskime mygtuką Save As ir įveskime lentelės, kurioje norime išsaugoti surūšiuotus duomenis, vardą (pavyzdžiui, „rezultatas“). Paspauskime mygtuką Advanced, atsidariusiame lange pažymėkime „No duplicates“ ir paspauskime mygtuką OK, bus sukurta lentelė „rezultatas“, kurioje bus tokie duomenys:

Tokį patį rezultatą galime gauti parašę tokį kodą: PROC SORT DATA=duomenys OUT=rezultatas NODUPRECS; BY x DESCENDING y; RUN;

čia NODUPRECS nurodo panaikinti vienodas eilutes; jeigu norėtume eliminuoja eilutes su vienodomis BY-kintamųjų reikšmėmis, tai reikėtų parašyti NODUPKEY. 14.2. Duomenų spausdinimas Duomenų atspausdinimui Output lange yra skirta SAS procedūra PRINT. Jeigu Editor lange parašysime tokį Proc žingsnį: PROC

PRINT

DATA=lentelė;

tai Output lange bus atspausdinti nurodytos lentelės duomenys. Jeigu Editor lange parašysime: PROC

PRINT

DATA=lentelė

NOOBS;

tai Output lange bus atspausdinti nurodytos lentelės duomenys, tačiau priekyje nebus spausdinamas stebėjimo numeris. Procedūroje PRINT galima naudoti sakinius: BY, WHERE, TITLE, FOOTNOTE (žr. aprašymą 14 skyrelio pradžioje). Pagal nutylėjimą spausdinami visi kintamieji ir visi stebėjimai taip, kaip jie išdėstyti lentelėje. Galime naudoti papildomus sakinius, kurie gali būti išdėstyti bet kokia tvarka: VAR kintamieji; ID kintamieji; SUM kintamieji;

40

VAR sakinyje nurodome kuriuos kintamuosius spausdinti ir kokia tvarka. Jeigu nenurodytas nei VAR, nei ID sakinys, tai visi kintamieji iš lentelės spausdinami tokia tvarka kaip jie išdėstyti lentelėje. Kai panaudojame ID sakinį, tai stebėjimų numeriai nespausdinami. Kintamieji nurodyti ID sakinyje yra spausdinami kairėje puslapio pusėje. Jei panaudojame tik ID sakinį, tai visi kintamieji bus spausdinami, tik po ID nurodyti kintamieji spausdinami kairėje pusėje. Jei panaudojame ID sakinį ir VAR sakinį, tai iš pradžių spausdinami kintamieji, nurodyti po ID, o paskui kintamieji, nurodyti po VAR. Nurodžius SUM spausdinama kiekvieno nurodyto po SUM kintamojo reikšmių suma. 1.46 p a v y z d y s. DATA d1; INPUT x y z Vardas $; DATALINES; 23 46 5 Jonas 32 77 234 Petras 4 4 88 Tomas ; PROC PRINT DATA=d1; PROC PRINT DATA=d1; ID Vardas; VAR z y; SUM y; RUN;

Pirmosios procedūros PRINT rezultatas: visi kintamieji ir stebėjimai iš lentelės „d1“ atspausdinti Output lange tokia tvarka kaip jie yra išdėstyti lentelėje. Antrosios procedūros PRINT rezultatas: kintamieji z, y, Vardas iš lentelės „d1“ atspausdinti Output lange (pradžioje spausdinamos kintamojo Vardas reikšmės; spausdinama kintamojo y reikšmių suma): Vardas Jonas Petras Tomas

z 5 234 88

y 46 77 4 ---127

14.3 Duomenų lentelės transponavimas Duomenų transponavimą atlieka SAS procedūra TRANSPOSE. Sintaksė: PROC TRANSPOSE ; BY kintamasis_1 <... kintamasis_n>; COPY kintamieji; ID kintamieji; IDLABEL kintamasis; VAR kintamieji; RUN;

čia lentelė_1 – duomenų lentelės, kurią norime transponuoti, vardas; lentelė_2 – duomenų lentelės, kurioje bus įrašyti transponuoti duomenys, vardas. PREFIX=simboliai nurodo kokiais simboliais turi prasidėti transponuotų kintamųjų vardai, pavyzdžiui, jeigu nurodome PREFIX=VAR, tai transponuotų kintamųjų vardai bus VAR1, VAR2,... Jeigu pasirinktis PREFIX=simboliai yra naudojama kartu su ID sakiniu, tai simboliai, nurodyti pasirinktyje PREFIX=simboliai yra rašomi prieš ID kintamojo reikšmes. VAR sakinyje nurodome kintamuosius, kuriuos norime transponuoti. Galime nurodyti vieną arba kelis kintamuosius. Jei VAR sakinio nenurodome, tai transponuojami visi skaitinio tipo kintamieji iš pradinės duomenų lentelės, kurie nebuvo nurodyti kituose sakiniuose. Jeigu norime transponuoti simbolinio tipo kintamuosius, tai juos reikia nurodyti VAR sakinyje.

41

Jeigu nurodome BY sakinį, tai yra suformuojamos stebėjimų grupės. Procedūra TRANSPOSE netransponuoja šių grupių, o kiekvienai grupei sukuria po vieną stebėjimą kiekvienam transponuojamam kintamajam. COPY sakinyje nurodyti kintamieji nėra transponuojami, o tiesiog perkopijuojami. Jeigu nurodome ID sakinį, tai transponuoti kintamieji bus pavadinti kintamojo, nurodyto po ID, reikšmėmis, t.y. kintamajame, nurodytame ID sakinyje, yra vardai transponuotiems kintamiesiems. Jei ID sakinio nenurodome, tai pagal nutylėjimą transponuotų kintamųjų vardai bus COL1, COL2,... Jei po ID nurodome skaitinio tipo kintamąjį, tai priekyje rašomas simbolis „_“, nes SAS kintamųjų vardai negali prasidėti skaitmeniu. IDLABEL sakinys gali būti naudojamas po ID sakinio. Jame nurodytame kintamajame yra žymės transponuotiems kintamiesiems. IDLABEL sakinyje nurodytas kintamasis gali būti skaitinio arba simbolinio tipo. 1.47 p a v y z d y s. 1) Tarkime, kad duomenų lentelę „duom1“ sukūrėme su tokiu Data žingsniu: DATA duom1; INPUT pavadinimas DATALINES; x 2 3 4 6 4 5 8 y 3 2 7 7 2 5 4 z 4 4 8 8 9 4 5 ; RUN;

$ k1-k10; 1 7 4 4 1 8 6 7 9

Reikia transponuoti lentelės „duom1“ kintamuosius k1,..., k10; vardai transponuotiems kintamiesiems yra kintamajame „pavadinimas“. Editor lange parašome: PROC TRANSPOSE DATA=duom1 OUT=rezultatas; ID pavadinimas; VAR k1-k10; RUN;

Pasirinktis DATA=duom1 nurodo, kad transponuoti reikia lentelę „duom1“; pasirinktis OUT=rezultatas nurodo, kad transponuoti duomenys bus išsaugoti lentelėje „rezultatas“; transponuotų kintamųjų vardai bus kintamojo „pavadinimas“ reikšmės; sakinys VAR nurodo. kad bus transponuoti kintamieji k1,..., k10. Taigi, šio Proc žingsnio rezultatas yra duomenų lentelė „rezultatas“: _NAME_ k1 k2 k3 k4 k5 k6 k7 k8 k9 k10

x 2 3 4 6 4 5 8 1 7 4

y 3 2 7 7 2 5 4 4 1 8

z 4 4 8 8 9 4 5 6 7 9

2) Tarkime, kad duomenų lentelę „duom2“ sukūrėme su tokiu Data žingsniu: DATA duom2; INPUT tipas $ kint1 kint2 kint3; DATALINES; x1 5 27 31 x1 6 16 35 x2 8 8 28 x2 2 10 7 x2 4 15 6 ; RUN;

42

Editor lange parašykime: PROC TRANSPOSE DATA=duom2 OUT=rezultatas; BY tipas; VAR kint2 kint3; RUN;

Šio Proc žingsnio rezultatas yra tokia duomenų lentelė: tipas x1 x1 x2 x2

_NAME_ kint2 kint3 kint2 kint3

COL1 27 31 8 28

COL2 16 35 10 7

COL3 . . 15 6

Sukurtoje lentelėje stebėjimų skaičius (keturi stebėjimai) yra lygus BY grupių skaičiui (dvi BY grupės) padaugintam iš transponuojamų kintamųjų skaičiaus (du kintamieji). BY sakinyje nurodytas kintamasis nėra transponuojamas. Jei BY grupėse stebėjimų skaičius yra skirtingas, tai stulpeliuose, kuriems neužtenka reikšmių, bus praleisto stebėjimo reikšmė (pavyzdyje pirmoje BY grupėje yra du stebėjimai, antroje – trys stebėjimai, todėl gautoje lentelėje pirmos BY grupės stebėjimams trečiame stulpelyje yra praleistos reikšmės. 15. Rašymo formatai Rašymo formatas nurodo kaip duomenys rodomi atidarius duomenų lentelę, spausdinami procedūrų rezultatuose, jį galima panaudoti duomenų grupavimui ir pan. Pavyzdžiui, 1) turime užkoduotus duomenis (pvz., amžiaus kategorijos užkoduotos skaičiais: 1 – paauglys, 2 – suaugęs, 3 – senyvo amžiaus), tokius duomenis patogu įvesti ir analizuoti, bet nepatogu, kai reikia interpretuoti rezultatus. Geriau sukurti savo rašymo formatą ir atspausdinti rezultatus su formatuotomis, o ne užkoduotomis reikšmėmis; 2) su rašymo formatu galime sugrupuoti kintamojo reikšmes. SAS yra dviejų tipų rašymo formatai: a) standartiniai; b) sukurti vartotojo (su procedūra FORMAT). Standartiniai rašymo formatai yra trijų tipų: 1) simbolinio tipo: $formatasw. 2) skaitinio tipo: formatasw.d 3) datos tipo: formatasw. čia formatas - rašymo formato vardas, w – simbolių skaičius, d – skaitmenų po kablelio skaičius. 1.48 p a v y z d y s. 1) $w. standartinių simbolinio tipo duomenų rašymo formatas (pavyzdžiui, $8.); 2) yymmddw. datos rašymo formatas (pavyzdžiui, kai w=10, tai data pavidalo 1999.01.03, o kai w=8, tai data pavidalo 99.01.03); 3) dayw. mėnesio diena (pagal nutylėjimą w=2); 4) w.d standartinių skaitinio tipo duomenų rašymo formatas (pavyzdžiui 6.2 iš viso šeši simboliai (įskaitant tašką, atskiriantį trupmeninę dalį) ir du skaitmenys po kablelio). P a s t a b a. Pilną standartinių rašymo formatų sąrašą galima pasižiūrėti pagrindiniame meniu pasirinkus Help→SAS Help and Documentation. Rašymo formatas susiejamas su kintamuoju sakiniu FORMAT, pavyzdžiui, FORMAT kaina pelnas 6.2 data yymmdd8.; P a s t a b a. FORMAT sakinys gali būti naudojamas Data arba Proc žingsnyje. Jei panaudojame DATA žingsnyje, tai rašymo formatas saugomas kartu su SAS duomenų lentele. Jei panaudojame Proc žingsnyje, tai rašymo formatas taikomas tik to Proc žingsnio rezultatams. Galima sukurti savo rašymo formatą su procedūra FORMAT. Paskui jį galime susieti su kintamaisiais su FORMAT sakiniu. 43

Procedūros FORMAT sintaksė: PROC FORMAT; VALUE vardas reikšmių_aibė_1=’formatuotas_tekstas_1’ reikšmių_aibė_2=’formatuotas_tekstas_2’ ... reikšmių_aibė_n=’formatuotas_tekstas_n’; RUN;

Gali būti keli VALUE sakiniai vienoje FORMAT procedūroje; vardas - formato vardas (negali būti ilgesnis nei 8 simboliai, negali prasidėti ir baigtis skaičiumi, negali būti specialių simbolių, negali sutapti su standartinio formato vardu, jei formatas simbolinio tipo, tai turi prasidėti „$“ simboliu); reikšmių_aibė - kintamojo reikšmė arba reikšmės, kurioms priskiriamas tekstas, esantis dešinėje lygybės pusėje. 1.49 p a v y z d y s. 1) ‘A’ = ‘aukšta’; 2) 1,3,5,7,9 = ‘nelyginis’; 3) LOW – 7.5 = ‘žemas’; 4) 13 -< 20 = ‘jaunuolis’; 5) 0<- HIGH = ‘teigiamas’; 6) OTHER=‘blogi duomenys’; P a s t a b o s. 1) reikšmė, prie kurios parašytas ženklas „<“, neįtraukiama (1.49 pavyzdžio 4) punkte neįtraukiama reikšmė 20, o 5) neįtraukiama reikšmė 0); 2) simbolinės reikšmės turi būti kabutėse; 3) jei nurodomos kelios kintamojo reikšmės, tai jos atskiriamos kableliais, jei nurodomas reikšmių intervalas, tai naudojamas brūkšnelis; 4) LOW – mažiausia reikšmė, HIGH – didžiausia reikšmė; 5) su OTHER priskiriamas formatas reikšmėms, neišvardintoms VALUE sakinyje. 1.50 p a v y z d y s. 1) duomenų grupavimas panaudojant formatą: PROC FORMAT; VALUE grupavim 0 – 5 =’pirma grupė’ 6 - 10 = ’antra grupė’ 11 -20 = ’trečia grupė’ 21 – HIGH = ’ketvirta grupė’;

Šiame pavyzdyje su procedūra FORMAT yra sukuriamas skaitinio tipo formatas „grupavim“, su kuriuo pradinius duomenis galima sugrupuoti į keturias grupes. 2) simbolinio tipo rašymo formato sukūrimo ir panaudojimo pavyzdys. Editor lange įveskime: PROC FORMAT; VALUE $lyt_kodas ’0’=’moteris’ PROC PRINT DATA=pavyzdys; FORMAT lytis $lyt_kodas.; RUN;

’1’=’vyras’ ;

16. Makroprogramos Šiame skyrelyje aptarsime tik pagrindinius makroprogramų rašymo principus. Pilną aprašymą galima pasižiūrėti pagrindiniame meniu pasirinkus Help→SAS Help and Documentation → SAS Products → SAS Macro Reference. SAS makroprogramos rašomos Editor lange. Jos dažniausiai naudojamos tada, kai tą patį veiksmą tenka atlikti ne vieną kartą. Rašant makroprogramas naudojami tokie elementai: makrokintamieji, makrokomandos. Makrokintamojo vardas prasideda simboliu „&“, o makrokomandos - simboliu „%“. Makrokintamasis nuo standartinio kintamojo skiriasi tuo, kad gali įgyti tik vieną reikšmę, jis nepriklauso jokiai duomenų lentelei ir jo reikšmė visada yra simbolinio tipo. Makrokintamojo reikšme gali būti kintamojo vardas, skaičius arba tekstas. Makroprograma gali būti sudaryta iš Data, Proc žingsnių ir makrokomandų (pavyzdžiui, %DO - %END; %IF - %THEN / %ELSE). Makrokintamieji gali būti dviejų tipų: lokalūs, globalūs. Jeigu makrokintamasis panaudotas viduje makroprogramos, tai jis vadinamas lokaliu, priešingu atveju jis vadinamas globaliu (t.y. jei jis apibrėžtas makroprogramos išorėje). Jie skiriasi tuo, kad globalius makrokintamuosius galima naudoti 44

bet kurioje programos vietoje, o lokalius tik makroprogramoje, kurioje jie yra apibrėžti. Kai kompiliuojamas programinis kodas, tai toje vietoje, kur yra makrokintamojo vardas, yra tiesiog įstatoma makrokintamojo reikšmė. Vienas iš būdų priskirti makrokintamajam reikšmę yra toks: %LET vardas = reikšmė;

čia vardas – makrokintamojo vardas; reikšmė - makrokintamajam priskiriama nurodyta reikšmė. 1.51 p a v y z d y s. a) %LET skaicius = 1; b) %LET diena = Pirmadienio;

Kabučių rašyti nereikia, nors b) punkte priskiriama simbolinio tipo reikšmė. Kai norime makrokintamąjį panaudoti programoje, tai prieš jo vardą rašome simbolį „&“. Jei makrokintamojo vardą reikia panaudoti kabutėse, tai reikia rašyti dvigubas kabutes (žr. 1.51 pavyzdžio tęsinį, sakinį TITLE). 1.51 p a v y z d y s (tęsinys). Aukščiau apibrėžtus makrokintamuosius galima panaudoti, pavyzdžiui, taip: DATA duomenys; INFILE `c:\duom.txt`; INPUT tipas @; IF tipas=&skaicius; INPUT k1-k50; RUN; PROC PRINT DATA=duomenys; VAR k1-k0; TITLE „&diena skaičiavimo rezultatai“; RUN;

Kai makroprocesorius sukompiliuoja šį kodą, jis atrodo taip: DATA duomenys; INFILE `c:\duom.txt`; INPUT tipas @; IF tipas=1; INPUT k1-k50; RUN; PROC PRINT DATA=duomenys; VAR k1-k0; TITLE „Pirmadienio skaičiavimo rezultatai“; RUN;

Norint pakeisti programą, pavyzdžiui, kad spausdintų antradienio skaičiavimo rezultatus, reikia tik pakeisti makrokintamojo „diena“ reikšmę %LET sakinyje, o procedūros PRINT keisti nereikia. Šiame pavyzdyje programa yra labai trumpa, todėl ir pačioje programoje pakeitimus būtų nesunku atlikti, tačiau kai ji ilga ir pakeitimus reikia atlikti įvairiose vietose, tai makrokintamųjų panaudojimas žymiai palengvina darbą. Makroprogramos naudingos, kai dažnai reikia atlikti tą patį ar panašų veiksmą. Makroprogramos sintaksė: %MACRO makroprogramos_vardas; /* makroprogramos pradžia */ SAS komandos /* makroprogramos tekstas;*/ %MEND makroprogramos_vardas; /* makroprogramos pabaiga */

Kreipinys į makroprogramą: % makroprogramos_vardas;

Dažniau yra naudojamos makroprogramos su parametrais. Parametrai yra makrokintamieji, kurių reikšmes nurodome, kai kreipiamės į makroprogramą. Sintaksė: 45

%MACRO vardas(parametras_1= , parametras_2= , parametras_n= ); makroprogramos_tekstas; %MEND vardas;

čia vardas – makroprogramos vardas. 1.52 p a v y z d y s. Tegu turime duomenų lentelę „duomenys“, kurioje yra duomenys apie vienos sesijos metu studentų išlaikytus egzaminus. Lentelėje yra tokie kintamieji: studento pažymėjimo numeris (nr), kursas (kursas), grupė (grupe), disciplina (dalykas), įvertinimas (ivertinimas), čia skliaustuose yra nurodyti stulpelių vardai. Parašykime makroprogramą, kuri atspausdintų norimo kurso studentų tam tikros disciplinos įvertinimus, surūšiuotus pagal pasirinktą kintamąjį. %MACRO rezultatai(kurso_nr=, dalyko_pav=, sur_kint=); PROC SORT DATA=duomenys OUT=pagalbine; BY &sur_kint; WHERE kursas=&kurso_nr and dalykas=“&dalyko_pav“; PROC PRINT DATA = pagalbine; TITLE "&kurso_nr kurso egzamino rezultatai, disciplina: &dalyko_pav"; %MEND rezultatai; %rezultatai(kurso_nr=2, dalyko_pav=informatika, sur_kint=grupe); %rezultatai(kurso_nr=1, dalyko_pav=geometrija, sur_kint=ivertinimas); RUN;

Pirmojo kreipinio į makroprogramą rezultatas yra Output lange atspausdinti duomenys (surūšiuoti pagal kintamojo „grupė“ reikšmes) apie antro kurso studentų informatikos egzamino rezultatus. Antrojo kreipinio į makroprogramą rezultatas yra Output lange atspausdinti duomenys (surūšiuoti pagal kintamojo „ivertinimas“ reikšmes) apie pirmo kurso studentų geometrijos egzamino rezultatus. Sąlyginės makrokomandos naudojamos tik makroprogramose. Jos skiriasi nuo paprastų sąlyginių sakinių tuo, kad veiksmas, kuris atliekamas, jeigu sąlyga teisinga, gali susidėti iš pilnų Proc arba Data žingsnių. Sintaksė: %IF sąlyga %THEN veiksmas; %ELSE %IF sąlyga %THEN veiksmas; %ELSE veiksmas;

Jei stebėjimams, tenkinantiems nurodytą sąlygą, reikia atlikti keletą veiksmų, tai rašome: %IF sąlyga %THEN veiksmas; veiksmas; %END;

%DO;

Makroprogramose galima naudoti automatinius makrokintamuosius, paminėsime keletą (pilną sąrašą galima rasti pagrindiniame meniu pasirinkus Help→SAS Help and Documentation → SAS Products → SAS Macro Reference): Makrokintamojo vardas Aprašymas &SYSDATE SAS sesijos darbo pradžios data; &SYSDAY savaitės diena (žodis, anglų kalba); &SYSLAST paskutinės sukurtos lentelės vardas tokiu pavidalu: biblioteka.lentelė. 1.53 p a v y z d y s. Tarkime, kad lentelėje „duomenys“ turime tokius duomenis: data (metai, mėnuo, diena), prekės pavadinimas (kintamojo vardas – prekes_pavadinimas), parduotų vienetų skaičius (kintamojo vardas - parduota). Darbuotojas kiekvieną dieną turi atspausdinti kiek kokių prekių buvo parduota tą dieną, o trisdešimtą kiekvieno mėnesio dieną turi atspausdinti kiek kiekvieno tipo prekių buvo parduota per tą mėnesį. Galime parašyti tokią makroprogramą:

46

%macro ataskaita; %LET diena=%sysfunc(day("&sysdate"D)); %LET menuo=%sysfunc(month("&sysdate"D)); %if &diena=30 %then %do; title 'Menesio suvestine'; proc sort data=duomenys; BY prekes_pavadinimas; proc means data=duomenys sum; var parduota; BY prekes_pavadinimas; WHERE &menuo= month(data); run; %end; %else %do; title 'Dienos duomenys'; proc sort data=duomenys; BY prekes_pavadinimas; proc print data=duomenys noobs; var parduota; BY prekes_pavadinimas; WHERE &diena= day(data) and &menuo= month(data); run; %end; %mend ataskaita; %ataskaita;

Su komanda CALL SYMPUT galima reikšmę iš Data žingsnio priskirti makrokintamajam ir šį makrokintamąjį naudoti tolesniuose žingsniuose. Sintaksė: CALL SYMPUT("vardas", reikšmė);

čia vardas yra naujo arba anksčiau sukurto makrokintamojo vardas; reikšmė - kintamojo vardas arba konstanta (simbolinio arba skaitinio tipo), parašyta kabutėse. CALL SYMPUT dažnai naudojama su sąlyginiu sakiniu IF-THEN, pavyzdžiui, 1.54 p a v y z d y s. IF Dydis>=10 THEN CALL SYMPUT(”Tipas”, ”T1”); ELSE CALL SYMPUT(”Tipas”, ”T0”);

Šiuo sakiniu makrokintamajam Tipas priskiriama reikšmė T1 arba T0, priklausomai nuo kintamojo Dydis reikšmės. IF Suma<10 THEN CALL SYMPUT(”Tipas”, Kint1);

Šiuo sakiniu makrokintamajam Tipas priskiriama kintamojo Kint1 reikšmė, kai Suma mažesnė už 10. P a s t a b a. Negalima sukurto su CALL SYMPUT komanda makrokintamojo panaudoti tame pačiame Data žingsnyje, nes reikšmė makrokintamajam yra priskiriama tik Data žingsnio pabaigoje.

47

II skyrius. SPECIALIOS FUNKCIJOS SAS yra realizuota apie 450 įvairių funkcijų. Jas pagal paskirtį galima suskirstyti į tokias grupes (žr. [9]): 1) matematinės funkcijos (mathematical functions); 2) skaitinių charakteristikų funkcijos (descriptive characteristics functions); 3) funkcijos, skirtos įvairių tikimybinių skirstinių tankio, skirstinio funkcijų reikšmių apskaičiavimui (probability functions); 4) kvantilių funkcijos (quantile functions); 5) atsitiktinių dydžių modeliavimo funkcijos (random numbers functions); 6) simbolinio tipo duomenų funkcijos (character functions); 7) datos ir laiko funkcijos (date and time functions); 8) masyvų funkcijos (array functions); 9) finansinės funkcijos (financial functions); 10) funkcijos, skirtos darbui su išorinėmis bylomis (external files); 11) funkcijos, naudojamos makroprogramose (macro functions); 12) SAS bylų įvesties/išvesties funkcijos (SAS files I/O); 13) funkcijos, suteikiančios informacijos apie kintamuosius (variable information); 14) interneto funkcijos (Web tools functions). SAS funkcijos dažniausiai naudojamos Data žingsnio priskyrimo, sąlyginiuose sakiniuose cikluose, Proc žingsnio WHERE sakinyje. Visų funkcijų sintaksė yra tokia pati: vardas(argumentas_1 <,... argumentas_n>) vardas(OF kintamųjų_sąrašas) vardas(OF masyvo_vardas {*})

čia vardas – yra funkcijos pavadinimas; argumentas – kintamojo vardas, konstanta, funkcija, reiškinys; argumentai atskiriami kableliais. 2.1 p a v y z d y s. 1) x=SQRT(25); šiame pavyzdyje funkcijos argumentas yra skaitinio tipo konstanta; funkcijos SQRT reikšmė yra kvadratinė šaknis iš argumento; 2) IF MEAN(t1,t2,t3)>8 THEN lygis=1; šiame pavyzdyje funkcijos argumentai yra kintamųjų vardai; funkcijos MEAN reikšmė yra argumentų vidurkis; 3) vardas=UPCASE(vardas); šiame pavyzdyje funkcijos argumentas yra kintamojo vardas; šiuo priskyrimo sakiniu yra pakeičiama kintamojo „vardas“ reikšmė (visos mažosios raidės pakeičiamos didžiosiomis); 4) y=SUM(2*suma1, suma2+suma3); šiame pavyzdyje funkcijos argumentai yra reiškiniai; funkcijos SUM reikšmė yra argumentų suma. Kintamųjų sąrašas – bet kokio tipo kintamųjų vardų sąrašas (žr. I sk.,12 skyrelį), tame tarpe ir atskiri kintamųjų vardai, pavyzdžiui, y=SUM(OF x1-x5); y=SUM(OF x1-x5, y1-y5);

Masyvo_vardas{*} – anksčiau apibrėžto masyvo vardas (I sk., žr.13 skyrelį); imami visi masyvo elementai, pavyzdžiui, ARRAY xx{5} x1-x5; z=MEAN(OF xx{*});

Šiame skyriuje pateikiamas matematinių, tikimybinių, kvantilių, atsitiktinių dydžių modeliavimo, skaitinių charakteristikų funkcijų aprašymas ir funkcijų naudojimo pavyzdžiai, o taip pat aptariamos kai kurių simbolinio tipo duomenų, datos ir laiko, masyvų funkcijų panaudojimo galimybės. Pilną SAS funkcijų sąrašą ir jų aprašymą galima pasižiūrėti pagrindiniame meniu pasirinkus Help→SAS Help and Documentation.

48

1. Matematinės funkcijos SAS matematines funkcijas galima suskirstyti į tokias grupes: 1) standartinės, pavyzdžiui, skaičiaus modulis, logaritmas, šaknis; 2) specialios, pavyzdžiui, gama, beta; 3) trigonometrinės, 4) hiperbolinės; 5) skaičių apvalinimo. 2.1 lentelėje yra pateiktos SAS realizuotos matematinės funkcijos ir jų aprašymai, o 2.2 lentelėje – funkcijų panaudojimo pavyzdžiai. 2.1 lentelė. Matematinės funkcijos Sintaksė Standartinės ir specialios matematinės funkcijos ABS(x) x modulis. AIRY(x)

Aprašymas

Airy funkcija, t.y. sprendinys diferencialinės lygties: ω ( 2) − xω = 0 su sąlygomis 1 1 ir ω ′(0) = − ω ( 0) = . 2/3 1/ 3 3 Γ(1 / 3) 3 Γ(2 / 3) 1

BETA(a,b)

Beta funkcija: β (a, b) = ∫ x a −1 (1 − x) b −1 dx, a > 0, b > 0. 0

CNONCT(x,n,p)

Rezultatas yra neneigiamas necentriškumo parametras chi-kvadrato skirstinio, kurio parametrai yra x, n, λ, čia x ≥ 0 – taškas kuriame skaičiuojama, n>0 – laisvės laipsniai, λ - necentriškumo parametras, 0
COMB(n,r)

CONSTANT(konst) DAIRY(x) DIGAMMA(x)

ERF(x) EXP(x) FACT(n)

FNONCT(x,m,n,p)

1 x a −1 −t ∫ t e dt. Γ(a ) 0

Galimų derinių skaičius, kai iš n elementų išrenkama r elementų ( r ≤ n ), t.y.  n n!   = .  r  r! (n − r )!

Nurodytos konstantos „konst“ reikšmė; π = CONSTANT(′PI′); e = CONSTANT(′E′); CONSTANT(′EULER′) – Eulerio konstanta. Airy funkcijos išvestinės reikšmė taške x. Ψ ( x) = Γ ′( x) / Γ( x), čia Γ - gama funkcija, Γ ′ - gama funkcijos išvestinė; apribojimas: x negali būti neigiamas sveikas skaičius arba nulis.

ERF ( x) =

2

π

x

∫e

−z2

dz.

0

ex . n faktorialas (n - neneigiamas sveikas skaičius): n! Rezultatas yra neneigiamas necentriškumo parametras F skirstinio, kurio parametrai yra x, m, n, λ, čia x ≥ 0 – taškas kuriame skaičiuojama, m>0 – skaitiklio laisvės laipsniai, n>0 – vardiklio laisvės laipsniai, λ - necentriškumo parametras, 0
( λ / 2) j n n I mx  + j , , kur j ! 2 2  j =0 m+ n

P f ( x | m, n, λ ) = e −λ / 2 ∑ I x ( a, b) = GAMMA(x)

Γ(a + b) x a −1 b −1 ∫ t (1 − t ) dt. Γ(a )Γ(b) 0



Γ( x) = ∫ t x −1e −t dt , apribojimas: x negali būti neigiamas sveikas skaičius arba nulis. 0

LGAMMA(x) LOG(x) LOG10(x) LOG2(x)

Gama funkcijos natūrinis logaritmas; apribojimas: x teigiamas. Natūrinis logaritmas; apribojimas: x teigiamas. Logaritmas pagrindu 10; apribojimas: x teigiamas. Logaritmas pagrindu 2; apribojimas: x teigiamas.

49

2.1 lentelės tęsinys. Matematinės funkcijos Sintaksė Aprašymas MOD(arg1, arg2) Liekana padalinus arg1 iš arg2; rezultato ženklas toks pats kaip arg1, arg2 ženklas ignoruojamas n! , n ir r neneigiami sveiki skaičiai ( r ≤ n ). PERM (n, r ) = PERM(n,r) (n − r )! SIGN(x)

SQRT(x)

TNONCT(x,n,p)

− 1,  SIGN( x) = 0, 1, 

jei x < 0; jei x = 0; jei x > 0.

x , x - neneigiamas skaičius. Rezultatas yra neneigiamas necentriškumo parametras Stjudento T skirstinio, kurio parametrai yra x, n, λ, čia x ≥ 0 – taškas kuriame skaičiuojama, n>0 – laisvės laipsniai, λ - necentriškumo parametras, 0
Pt ( x | n, λ ) =

∞ x 2v / n 2 1 v n / 2−1e −v ∫ e −(u −λ ) / 2 dudv. ∫ Γ(n / 2) 0 −∞

TRIGAMMA(x)

Digama funkcijos išvestinė; apribojimas: x negali būti neigiamas sveikas skaičius arba nulis. Trigonometrinės funkcijos ARCOS(x) Arckosinusas; apribojimas: −1 ≤ x ≤ 1. ARSIN(x) Arcsinusas; apribojimas: −1 ≤ x ≤ 1. ATAN(x) Arctangentas; apribojimas: −1 ≤ x ≤ 1. COS(x) Kosinusas. SIN(x) Sinusas. TAN(x) Tangentas. Hiperbolinės funkcijos COSH(x) Hiperbolinis kosinusas: (e x + e − x ) / 2. SINH(x)

Hiperbolinis sinusas: (e x − e − x ) / 2.

TANH(x)

Hiperbolinis tangentas: (e x − e − x ) /(e x + e − x ).

Apvalinimo funkcijos CEIL(x) FLOOR(x) INT(x) ROUND(x, <,u>)

Mažiausias sveikas skaičius, kuris yra didesnis arba lygus x. Didžiausias sveikas skaičius, kuris yra mažesnis arba lygus x. Sveikoji x dalis. Apvalina x iki u, jei u nenurodome, tai apvalina iki sveiko skaičiaus.

2.2 lentelė. Matematinių funkcijų panaudojimo pavyzdžiai. Pavyzdys Rezultatas Pavyzdys X=ABS(-2); X=2 X=ABS(5); tik1=cdf ('chisquare', 3.1, 5, 2); tik1=0.1698178 nc2=cnonct (3.1, 5, 0.2); nc1=cnonct (3.1, 5, prob1); nc1=2 Y=GAMMA(-1.5); Y=2.3632718 Y=GAMMA(2); X=MOD(10,2); X=0 X=MOD(-12,-5); X=LOG(5); X=1.6094379 X=LOG(EXP(1)); X=CEIL(-2.4); X=-2 X=CEIL(2.01); X=FLOOR(-2.4); X=-3 X=FLOOR(2.01); X=INT(4.7); X=4 X=INT(-3.2); X=ROUND(12.65); X=13 X=ROUND()12.65, 0.1);

50

Rezultatas X=5; nc2=1.479592 Y=1 X=-2 X=1 X=3 X=2 X=-3 X=12.7

2. Skaitinių charakteristikų funkcijos 2.3 lentelėje pateikiamos SAS realizuotos skaitinių charakteristikų funkcijos. Daugumą šių skaitinių charakteristikų galima apskaičiuoti ir su procedūra MEANS, skaičiavimo metodas toks pats (žr. III sk., 2 skyrelį). Skirtumas tas, kad su funkcija galima apskaičiuoti nurodytų reikšmių skaitinę charakteristiką, o su procedūra – kintamojo (stulpelio) nurodytų reikšmių skaitinę charakteristiką. 2.4 lentelėje pateikiami funkcijų panaudojimo pavyzdžiai. P a s t a b a. Skaičiuojant imamos tik nepraleistos argumentų reikšmės. 2.3 lentelė. Skaitinių charakteristikų funkcijos Sintaksė Aprašymas CSS(argumentas1, argumentas2,...) Koreguota kvadratų suma. CV(argumentas1, argumentas2,...) Variacijos koeficientas. GEOMEAN(argumentas1, argumentas2,...)

HARMEAN(argumentas1, argumentas2,...)

Geometrinis vidurkis: n x1 * x 2 * ... * x n , čia n – skaičius argumentų, kurių reikšmė nėra praleistas stebėjimas, o x1 ,..., x n tų argumentų reikšmės; argumentas – neneigiama konstanta, kintamasis, reiškinys. Harmoninis vidurkis: n /( x1−1 + x 2−1 + ... + x n−1 ), čia n – skaičius

argumentų, kurių reikšmė nėra praleistas stebėjimas, o x1 ,..., x n tų argumentų reikšmės; argumentas – neneigiama konstanta, kintamasis, reiškinys. IQR(argumentas1, argumentas2) Tarpkvartilinis plotis. KURTOSIS(argumentas1, argumentas2,...) Eksceso koeficientas. LARGEST(K, reikšmė1, reikšmė2,...) K-toji didžiausia nepraleista reikšmė; K ir nurodytos reikšmės gali būti: skaitinė konstanta, kintamasis, reiškinys. MAX(argumentas1, argumentas2,...) Didžiausia reikšmė. MEAN(argumentas1, argumentas2,...) Aritmetinis vidurkis (vidutinė reikšmė). MEDIAN(argumentas1, argumentas2,...) Mediana (vidurinė reikšmė). MIN(argumentas1, argumentas2,...) Mažiausia reikšmė. skaitinio_tipo_reiškinys – apibrėžia skaitinio tipo duomenis; MISSING(skaitinio_tipo_reiškinys | simbolinio_tipo_ reiškinys – simbolinio tipo kintamojo vardas arba reiškinys, kurio reikšmė yra simbolinio tipo; ši funkcija simbolinio_tipo_ reiškinys) tikrina skaitinio arba simbolinio tipo reiškinį ir įgyja reikšmę 1, jei reikšmė praleista, reikšmę 0, jei nepraleista. N(argumentas1, argumentas2,...) Nepraleistų reikšmių skaičius. NMISS(argumentas1, argumentas2,...) Praleistų reikšmių skaičius. ORDINAL(K, reikšmė1, reikšmė2,...) K-oji pozicinė statistika (K-tas variacinės eilutės narys ); skaičiuoja ir praleistas reikšmes. PCTL(p, reikšmė1, reikšmė2,...) p-tas procentilis ( 0 ≤ p ≤ 100 ), n – procentilių apskaičiavimo metodo numeris (n=1,2,…,5). RANGE(reikšmė1, reikšmė2,...) Skirtumas tarp didžiausios ir mažiausios reikšmės.

( x12 + x 22 + ... + x n2 ) / n

čia n – skaičius argumentų, kurių

reikšmė nėra praleistas stebėjimas, o x1 ,..., x n tų argumentų reikšmės; argumentas – neneigiama skaitinio tipo konstanta, kintamasis, reiškinys. SKEWNESS(argumentas1,argumentas2,...) Asimetrijos koeficientas. SMALLEST(K, reikšmė1, reikšmė2,...) K-toji mažiausia nepraleista reikšmė; K ir nurodytos reikšmės gali būti: skaitinė konstanta, kintamasis, reiškinys. STD(argumentas1, argumentas2,...) Standartinis nuokrypis STDERR(argumentas1, argumentas2,...) Standartinė vidurkio paklaida. SUM(argumentas1, argumentas2,...) Nepraleistų reikšmių suma. USS(argumentas1, argumentas2,...) Nekoreguota kvadratų suma. VAR(argumentas1, argumentas2,...) Dispersija. RMS(argumentas1, argumentas2,...)

51

2.4 lentelė. Skaitinių charakteristikų funkcijų panaudojimo pavyzdžiai. Pavyzdys Rezultatas Pavyzdys Y=GEOMEAN(2, . , 1); Y=1.4142 Y=GEOMEAN(2, 5, 6); Y=LARGEST(2, 5, 4, . , 6); Y=5 Y=SMALLEST(1, 5, 4, . , 6); Y=MEAN(1, . , 4); Y=2.5 X=5; Y=MEAN(2*5, X, X-2); X1=1; X2=. ; X3=. ; Y=1 X1=2; X2=3; X3=1; Y=MISSING(X1+X2+X3); Y=MISSING(X1+X2+X3); X1=2; X2=. ; X3=1; Y=2 Y=N(2, . , 3); Y=N(OF X1-X3); X1=5; X2=. ; X3=. ; X4=4; X5=6; Y=. X1=5; X2=. ; X3=. ; X4=4; X5=6; Y=ORDINAL(2, OF X1-X5); Y=ORDINAL(4, OF X1-X5); Y=SUM(2, 3, .); Y=5 Y=SUM(MEAN(1, 3), MEAN (4, 5));

Rezultatas Y=3.9149 Y=4 Y=4 Y=0 2 Y=5 Y=6.5

3. Tikimybinių skirstinių funkcijos SAS yra numatyta galimybė įvairiems tikimybiniams skirstiniams apskaičiuoti tokių funkcijų reikšmes: 1) skirstinio funkcija (cumulative distribution function); 2) tankio funkcija (probability density (mass) function); 3) išgyvenimo funkcija (survival function). Skirstinio funkcijos rekšmėms apskaičiuoti yra skirta funkcija CDF, tankio funkcijos reikšmėms – funkcija PDF, o išgyvenimo funkcijos reikšmėms funkcija SDF (S(x)=1-F(x), čia F – skirstinio funkcija, o S – išgyvenimo funkcija). Visų šių funkcijų sintaksė yra tokia pati: CDF(’skirstinys’, argumentas <, parametras_1,...,parametras_k>) PDF(’skirstinys’, argumentas <, parametras_1,...,parametras_k>) SDF(’skirstinys’, argumentas <, parametras_1,...,parametras_k>)

čia skirstinys – žodis, identifikuojantis skirstinį; galimi skirstiniai yra pateikti 2.5 lentelėje; argumentas – taškas, kuriame norime apskaičiuoti funkcijos reikšmę; parametras_1, ..., parametras_k – yra nebūtini formos, padėties, mastelio parametrai. 2.6 lentelėje pateikiama funkcijos CDF sintaksė įvairių skirstinių atveju. Funkcijų PDF ir SDF sintaksė analogiška. 2.5 lentelė. Skirstinius identifikuojantys raktiniai žodžiai Skirstinio pavadinimas Raktinis žodis Skirstinio pavadinimas ’BERNOULLI’ Bernulio Logistinis ’BETA’ Lognormalusis Beta ’BINOMIAL’ Binominis Neigiamas binominis ’CAUCHY’ Koši Normalusis ’CHISQUARE’ Chi-kvadrato Normalių mišinys ’EXPONENTIAL’ Eksponentinis Pareto ’F’ Puasono Fišerio ’GAMMA’ Gama Stjudento ’GEOMETRIC’ Geometrinis Tolygus ’HYPERGEOMETRIC’ Valdo (atvirkštinis Gauso) Hipergeometrinis ’LAPLACE’ Laplaso Veibulo

52

Raktinis žodis ’LOGISTIC’ ’LOGNORMAL’ ’NGBINOMIAL’ ’NORMAL’ ’NORMALMIX’ ’PARETO’ ’POISSON’ ’T’ ’UNIFORM’ ’WALD’|’IGAUSS’ ’WEIBULL’

2.6 lentelė. CDF funkcijos sintaksė Skirstinys Bernulio

CDF funkcija (skirstinio funkcija) 0 , x < 0,   CDF(’BERN’,x,p)= 1 − p, 0 ≤ x < 1, čia 0 ≤ p ≤ 1 sėkmės tikimybė; 1, x ≥ 1. 

Beta

Binomial

Koši

0, x ≤ 1,  1 x ( x − 1) a −1 (r − x) b −1  CDF(’BETA’,x,a,b, l,r)=  dx, l < x ≤ r , ∫ (r − l ) a +b −1  β ( a, b) l 1, x > r; čia a>0, b>0, r>l; parametrai r ir l nebūtini (pagal nutylėjimą l=0, r=1), ∞ Γ(a )Γ(b) β ( a, b) = , Γ(a ) = ∫ x a −1e − x dx ; Γ ( a + b) 0 CDF(’BINOM’,m,p,n)=

 n j =0 i  m

∑   p j (1 − p) n − j , čia m=0,1,...,n – sėkmių skaičius,

0 ≤ p ≤ 1 sėkmės tikimybė, n=0,1,... – nepriklausomų Bernulio eksperimentų skaičius; 1 1  x −θ  CDF(’CAUCHY’,x,θ,λ)= + tan −1  , parametrai θ, λ>0 nebūtini (pagal 2 π  λ 

nutylėjimą θ=0, λ=1); Chi-kvadrato

CDF(’CHISQ’,x,ν,λ)=



∑ e −λ / 2

j =0

( λ / 2) j Pc ( x,ν + 2 j ), x>0; čia ν >0 – laisvės j!

laipsniai, λ ≥ 0 - nebūtinas necentriškumo parametras, jei parametro λ nenurodome, tai centrinis chi-kvadrato skirstinys; Pc ( x, a ) = Pg ( x / 2, a / 2) - centrinio chi-kvadrato skirstinio tikimybė;

Pg ( y, b) = Eksponentinis Fišerio

1 y −v b −1 ∫ e v dv - gama skirstinio tikimybė; Γ(b) 0

CDF(’EXPO’,x,λ)= 1 − e − x / λ , nutylėjimą λ = 1 ) ; CDF(’F’,x, v1 , v 2 , λ)=



∑ e −λ / 2

j =0

λ >0

x ≥ 0,

- nebūtinas parametras (pagal

( λ / 2) j P f ( x, v1 + 2 j , v 2 ), j!

x ≥ 0,

čia

v1 > 0 –

skaitiklio laisvės laipsniai, v 2 > 0 – vardiklio laisvės laipsniai, λ ≥ 0 - nebūtinas necentriškumo parametras, jei parametro λ nenurodome, tai centrinis Fišerio skirstinys; P f ( x, u1 , u 2 ) = PB (u1 x /(u1 x + u 2 ), u1 / 2, u 2 / 2) - centrinio Fišerio skirstinio tikimybė; PB ( x, a, b) - standartinio beta skirstinio tikimybė; Gama

CDF(’GAMMA’,x,a,λ)=

1

x

∫v

a −1 − v / λ

λ a Γ(a ) 0

e

dv,

x ≥ 0,

čia

a > 0,

λ >0

-

nebūtinas parametras (pagal nutylėjimą λ = 1 ); Geometrinis

CDF(’GEOM’,m,p)=

j ≤m

∑ p(1 − p) j , čia m = 0,1,... , 0 ≤ p ≤ 1 sėkmės tikimybė;

j =0

Hipergeometrinis

 R  N − R  i o i =0 i  n − i  x

∑  

CDF(’HYPER’,x,N,R,n,o)=

, čia  R  N − R  j o   ∑ j = max(0, R + n − N )  j  n − j  max(0, R + n − N ) < x < min( R, n), N = 1,2... - populiacijos dydis, R = 0,1,...N elementų, turinčių dominančią savybę skaičius, n = 1,...N - imties dydis, o>0 – nebūtinas parametras; min( R , n )

53

2.6 lentelės tęsinys. CDF funkcijos sintaksė Skirstinys Laplaso

CDF funkcija (skirstinio funkcija)  1 ( x −θ ) / λ x < 0, ,  e čia θ CDF(’LAPLACE’,x,θ,λ)=  2 1 1 − e −( x −θ ) / λ , x ≥ 0,  2 parametrai (pagal nutylėjimą θ = 0, λ = 1 );

Logistinis

1

CDF(’LOGISTIC’,x,θ,λ)=

−( x −θ ) / λ

1+ e (pagal nutylėjimą θ = 0, λ = 1 );

ir λ > 0 - nebūtini

čia θ ir λ > 0 - nebūtini parametrai

Lognormalus

 (v − θ ) 2  dv, x > 0, čia θ 2  λ 2π 0 λ 2   nebūtini parametrai (pagal nutylėjimą θ = 0, λ = 1 );

Neigiamas binominis

m  n + j − 1 (1 − p ) j , čia m=0,1,... – nesėkmių skaičius, CDF(’NEGB’,m,p,n)= p n ∑  j  j =0 n=0,1,... – sėkmių skaičius, 0 ≤ p ≤ 1 sėkmės tikimybė;

Normalusis

 (v − θ ) 2  − dv, čia θ ir λ > 0 - nebūtini exp ∫  λ 2π −∞ 2λ 2   parametrai (pagal nutylėjimą θ = 0, λ = 1 ); CDF(’NORMALMIX’,x, n, p1 ,..., p n , m1 ,..., m n , s1 ,..., s n )=

Normalių mišinys

CDF(’LOGN’,x,θ,λ)=

1

CDF(’NORMAL’,x,θ,λ)=

log( x )

∫ exp −

1

ir λ > 0 -

x

n

= ∑ p1 * CDF (' NORMAL' , x, mi , s i ) , čia n = 1,2,... mišinių skaičius; p1 ,..., p n i =1

proporcijos,

n

∑ p1 = 1 ; m1 ,..., m n - vidurkiai; s1 ,..., s n - standartiniai nuokrypiai,

i =1

s i > 0, i = 1,..., n; Pareto

Puasono Stjudento

Tolygusis

Valdo (atvirkštinis Gauso)

Veibulo

x < k; 0, CDF(’PARETO’,x,a,k)=  , čia a>0, k>0 – nebūtinas parametras a 1 − (k / x ) , x ≥ k ; (pagal nutylėjimą k = 1 ); CDF(’POISSON’,n,m)=

m i −m e , čia n = 0,1,... , m>0 – vidurkis; i =0 i! n



CDF(’T’,t,v,λ) čia v>0 – laisvės laipsniai, λ - necentriškumo parametras (nebūtinas parametras), nebūtinai sveikas skaičius, jei λ nenurodome, tai centrinis Stjudento skirstinys; x < l, 0,  CDF(’UNIFORM’,x,l,r)= ( x − l ) /(r − l ), l ≤ x < r , čia l ir r (r>l) nebūtini 1, x ≥ r;  parametrai (pagal nutylėjimą l = 0, r = 1 ); CDF(’WALD’,x,d)=CDF(’IGAUSS’,x,d) =  d  d  2d  , x > 0; čia parametras d>0, Φ + e Φ − ( x + 1) = Φ ( x − 1)   x  x    standartinio normalaus skirstinio pasiskirstymo funkcija;   x  a  CDF(’WEIBULL’,x,a,λ)= 1 − exp−   , x ≥ 0; čia a>0, nebūtinas parametras   λ   λ > 0 (pagal nutylėjimą λ = 1 );

54

2.2 p a v y z d y s. a) Apskaičiuokime normalaus skirstinio su vidurkiu 5 ir dispersija 1 skirstinio funkcijos ir tankio reikšmę taške 3.1. Editor lange įvedame: data d1; s1=CDF(’NORMAL’,3.1,5,1); t1=PDF(’NORMAL’,3.1,5,1); run;

/*skirstinio funkcija*/ /*tankio funkcija*/

Gauname s1=0,0287165598; t1=0.0656158148. b) Apskaičiuokime centrinio chi-kvadrato skirstinio su 6 laisvės laipsniais tankio funkcijos reikšmę taške 5.1. Editor lange įvedame: data d2; s=PDF(’CHISQ’,5.1,6); run;

Gauname s=0.1269315083. c) Apskaičiuokime necentrinio Stjudento skirstinio su 2 laisvės laipsniais ir necentriškumo parametru 3.6 tankio funkcijos reikšmę taške 6.8. Editor lange įvedame: data d3; t=PDF(’T’,6.8,2,3.6); run;

Gauname t=0.0612465389. 2.3 p a v y z d y s. Užduotis: kam lygi tikimybė, kad tris kartus metant idealią monetą, iškris: a) tris kartus skaičius; b) du kartus skaičius ir vieną kartą herbas? Sprendimas. Turime Bernulio schemos realizaciją. Bandymų skaičius n=3; jeigu moneta ideali, tai tikimybė, kad iškris skaičius yra lygi p=0.5. Taigi, reikia apskaičiuoti Binominio skirstinio tikimybes. Editor lange įvedame: data moneta; tik1=PDF(’BINOMIAL’,3,0.5,3); /* a punktas */ tik2=PDF(’BINOMIAL’,2,0.5,3); /* b punktas */ run;

Gauname: tikimybė, kad tris kartus metant idealią monetą tris kartus iškris skaičius yra lygi 0,125; tikimybė, kad tris kartus metant idealią monetą du kartus iškris skaičius ir vieną kartą herbas yra lygi 0,375. SAS funkcija PROBBNRM yra skirta dvimačio normaliojo skirstinio su vidurkiu 0, dispersija 1 ir koreliacijos koeficientu r pasiskirstymo funkcijos reikšmėms apskaičiuoti: x y  u 2 − 2ruv + v 2  1 PROBBNRM(x,y,r)= P{ X ≤ x, Y ≤ y} = exp ∫ ∫  − 2(1 − r 2 ) dvdu , 2π 1 − r 2 −∞−∞  čia x ir y yra skaitiniai kintamieji, r – koreliacijos koeficientas ( − 1 ≤ r ≤ 1 ). 2.4 p a v y z d y s. Funkcijos PROBBNRM panaudojimo pavyzdžiai Pavyzdys Rezultatas Tik1= PROBBNRM(2, 3.1, 0.9); Tik1=0.9772359531 Tik2= PROBBNRM(0.4, 0.8, 0.6); Tik2=0.5893469719 4. Kvantilių funkcijos SAS funkcija QUANTILE skirta įvairių tikimybinių skirstinių p-tojo kvantilio apskaičiavimui. Sintaksė: QUANTILE(’skirstinys’, p <, parametras_1,...,parametras_k>)

55

čia skirstinys – žodis, identifikuojantis skirstinį (žr. 2.5 lentelę); apskaičiuojamas p-tasis kvantilis ( 0 < p < 1 ); parametras_1, ..., parametras_k – yra nebūtini formos, padėties, mastelio parametrai (skirstinio parametrus nurodome taip pat, kaip ir funkcijoje CDF (žr.2.6 lentelę)). 2.5 p a v y z d y s. Funkcijos QUANTILE panaudojimo pavyzdžiai Pavyzdys Q1=QUANTILE(’EXPO’, 0.6); Q2=QUANTILE(’T’, 0.8, 5);

Paaiškinimas (0.6)- tasis standartinio eksponentinio skirstinio (t.y. vidurkis lygus 1) kvantilis (0.8)- tasis centrinio Stjudento skirstinio su 5 laisvės laipsniais kvantilis

Rezultatas Q1=0,9162907319 Q2=0,9195437802

2.7 lentelė. Konkrečių skirstinių kvantilių funkcijos. Skirstinys Funkcija Aprašymas Beta BETAINV(p,a,b) p-tasis kvantilis; a>0, b>0 Beta skirstinio parametrai; Chi-kvadrato CINV(p,ν,λ) p-tasis kvantilis; ν>0 - laisvės laipsniai, λ ≥ 0 (nebūtinas parametras) - necentriškumo parametras; Fišerio FINV(p, v1 , v 2 , λ) p-tasis kvantilis; v1 > 0 – skaitiklio laisvės laipsniai, v 2 > 0 – laipsniai, λ ≥ 0 (nebūtinas parametras)vardiklio laisvės necentriškumo parametras; Gama GAMAINV(p,a) a > 0 gama skirstinio parametras; Standartinis PROBIT(p) p-tasis kvantilis; normalusis Stjudento TINV(p,v,λ) p-tasis kvantilis; v>0 – laisvės laipsniai, λ - nebūtinas necentriškumo parametras;

SAS yra keletas funkcijų skirtų konkrečių tikimybinių skirstinių kvantilių apskaičiavimui, jos pateikiamos 2.7 lentelėje (skirstinių parametrų pažymėjimai ir apibrėžimai analogiški nurodomiems funkcijoje CDF (žr. 2.6 lentelę)). 2.6 p a v y z d y s. Kvantilių funkcijų panaudojimo pavyzdžiai Pavyzdys b=BETAINV(0.5, 4, 2); Chi1=CINV(0.95, 4); Chi2=CINV(0.95, 4.1, 4.8); F1=FINV(0.9, 2, 6); F2=FINV(0.9, 2, 6.1, 3); Pavyzdys G1=GAMINV(0.1, 3.2); N=PROBIT(0.95); T1=TINV(0.9, 5); T2=TINV(0.9, 3.2, 4);

Paaiškinimas 50-tasis Beta skirstinio su parametrais 4 ir 2 procentilis; 95-tasis chi-kvadrato skirstinio su 4 laisvės laipsniais procentilis; 95-tasis chi-kvadrato skirstinio su 4.1 laisvės laipsniais ir necentiškumo parametru 4.8 procentilis; (0.9)-tasis Fišerio skirstinio su 2 ir 6 laisvės laipsniais kvantilis; (0.9)-tasis Fišerio skirstinio su 2 ir 6.1 laisvės laipsniais, ir necentiškumo parametru 3 kvantilis; Paaiškinimas (0.1)-tasis gama skirstinio su parametru 3.2 kvantilis; (0.95)-tasis standartinio normalaus skirstinio kvantilis; (0.9)-tasis Stjudento skirstinio su 5 laisvės laipsniais kvantilis; (0.9)-tasis Stjudento skirstinio su 3.2 laisvės laipsniais ir necentiškumo parametru 4 kvantilis;

Rezultatas b=0.6861898295 Chi1=9.4877290368 Chi2=18.793397996 F1=3.4633040701 F2=8.1926587045 Rezultatas 1.2260018937= N=1.644853627 T1=1.4758840488 T2=9.1167128952

5. Atsitiktinių dydžių modeliavimas Su kompiuteriu galima generuoti pseudoatsitiktinius skaičius. Šie skaičiai nėra tikri atsitiktiniai skaičiai, nes apskaičiuojami naudojant tam tikrą algoritmą, tačiau jų savybės tokios pačios kaip ir tikrai atsitiktinių skaičių. SAS yra keletas funkcijų, skirtų atsitiktinių dydžių modeliavimui. Funkcijose reikia nurodyti pradinį skaičių (seed). Šis pradinis skaičius turi būti sveikas neneigiamas skaičius, mažesnis už 231-1. Jeigu nurodome 0, tai modeliuojama atsižvelgiant į kompiuterio laikrodį.

56

P a s t a b a. Jeigu nurodome skaičių, didesnį už 0, tai atlikę kelis kartus tą patį Data žingsnį gausime tą pačią skaičių seką, o jeigu 0, tai skaičių seka priklauso nuo laiko momento ir tos pačios sekos nebepakartosime. SAS funkcija RAND yra skirta modeliuoti atsitiktinius dydžius įvairių skirstinių atveju. Sintaksė: RAND(’skirstinys’, skirstinio_parametrai)

čia skirstinys – žodis, identifikuojantis skirstinį; galimi skirstiniai yra pateikti 2.8 lentelėje; skirstinio_parametrai – sąrašas formos, padėties, mastelio parametrų. 2.9 lentelėje pateikiama funkcijos RAND sintaksė įvairių skirstinių atveju. 2.8 lentelė. Skirstinius identifikuojantys raktiniai žodžiai Skirstinio Raktinis žodis Skirstinio pavadinimas pavadinimas ’BERNOULLI’ Bernulio Hipergeometrinis ’BETA’ Lognormalus Beta ’BINOMIAL’ Binominis Neigiamas binominis ’CAUCHY’ Normalus Koši ’CHISQUARE’ Chi-kvadrato Puasono ’ERLANG’ Erlango Stjudento ’EXPONENTIAL’ Diskretus Eksponentinis ’F’ Fišerio Trikampio ’GAMMA’ Gama Tolygus ’GEOMETRIC’ Geometrinis Veibulo

Raktinis žodis

’HIPERGEOMETRIC’ ’LOGNORMAL’ ’NEGBINOMIAL’ ’NORMAL’|’GAUSSIAN’ ’POISSON’ ’T’ ’TABLE’ ’TRIANGLE’ ’UNIFORM’ ’WEIBULL’

P a s t a b a. Jei norime, kad pakartoję tą patį Data žingsnį gautume tą pačią seką, tai Data žingsnyje prieš funkciją RAND reikia panaudoti komandą CALL STREAMINT, kurioje nurodomas pradinis skaičius, jei šios komandos nepanaudojame, tai kelis kartus kartojant tą patį Data žingsnį gausime vis kitą seką. Sintaksė: CALL STREAMINT(sk);

čia sk - skaičius didesnis už 0 ir mažesnis už 231-1. 2.9 lentelė. Funkcijos RAND sintaksė Sintaksė X tankio funkcija (tolydus skirstinys) / tikimybė (diskretus skirstinys) RAND(’BERN’,x,p) p = 0, x = 0, 0,  P{ X = x | p} =  p x (1 − p )1− x , 0 < p < 1, x = 0,1, čia p - sėkmės tikimybė; 1, p = 1, x = 1,  RAND(’BETA’,a,b) RAND(’BINOMIAL’,p,n)

RAND(’CAUCHY’) RAND(’CHISQUARE’,ν) RAND(’ERLANG’,a) RAND(’EXPONENTIAL’)

f ( x) =

Γ(a + b) a −1 x (1 − x) b −1 , 0 < x < 1, a > 0, b > 0 ; Γ(a )Γ(b)

p = 0, x = 0, 0  x x n− x P{ X = x | p, n} = C n p (1 − p ) , x = 0,1,..., n, čia x – sėkmių skaičius, 1 p = 1, x = 1,  p - sėkmės tikimybė, n=0,1,... – nepriklausomų Bernulio eksperimentų skaičius; 1 f ( x) = , − ∞ < x < +∞; π (1 + x 2 ) f ( x) =

2 −ν / 2 v / 2−1 − x / 2 x e , x > 0; čia ν >0 – laisvės laipsniai; Γ ( v / 2)

f ( x) =

1 x a −1e − x , x > 0, a = 1,2,... ; Γ(a )

f ( x) = e − x , x > 0;

57

2.9 lentelės tęsinys. Funkcijos RAND sintaksė Sintaksė X tankio funkcija (tolydus skirstinys) / tikimybė (diskretus skirstinys) RAND(’F’, v1 , v 2 ) v +v  Γ 1 2  v /2 v /2 v11 v 22 x v1 2−1  2  , x > 0, čia v1 > 0 – skaitiklio f ( x) = Γ(v1 / 2)Γ(v 2 / 2) (v1 + v 2 ) (v1 + v2 ) / 2 laisvės laipsniai, v 2 > 0 – vardiklio laisvės laipsniai; RAND(’GAMMA’,a) 1 f ( x) = x a −1e − x , x > 0, a > 0 ; Γ(a) RAND(’GEOMETRIC’,p) (1 − p ) x −1 p, 0 < p < 1, x = 1,2,..., P{ X = x | p} =  čia p - sėkmės tikimybė; 1, p = 1, x = 1; RAND(’HYPER’,N,R,n)  R  N − R      x  n − x  P{ X = x} = , čia x = max(0, (n − ( N − R))),..., min(n, R), N   n

N = 1,2... - populiacijos dydis, R = 0,1,...N - elementų, turinčių dominančią savybę, skaičius, n = 1,...N - imties dydis; RAND(’LOGNORMAL’) RAND(’NEGBIN’,p,k)

RAND(’NORMAL’ <,θ,λ>)

f ( x) =

exp{− ln 2 ( x) / 2} x 2π

, x ≥ 0;

 x + k − 1 (1 − p ) x p k , 0 < p < 1, x = 0,1,...,  P{ X = x} =  k − 1  1, p = 1, x = 0,  sėkmių skaičius, 0 < p ≤ 1 sėkmės tikimybė;

čia k=1,2,... –

 (x −θ ) 2  , čia θ - vidurkis, λ > 0 standartinis nuokrypis exp −  λ 2π 2λ 2   ( nebūtini parametrai; pagal nutylėjimą θ = 0, λ = 1 ); f ( x)

RAND(’POISSON’,m)

1

m x −m e , čia x = 0,1,... , m>0 – vidurkis; x! RAND(’T’,v)  v +1 −( v +1) / 2 Γ  2  2   x  1+ , − ∞ < x < +∞, čia v > 0 – laisvės f ( x) = v  vπ Γ(v / 2)  laipsnių skaičius; RAND(’TABLE’, p1 , p 2 ,... ) A.d. X įgyja reikšmes 1,2,…,n su tikimybėmis p1 , p 2 ,..., p n P{ X = x} =

( 0 ≤ p1 , p 2 ,..., p n ≤ 1 ); RAND(’TRIANGLE’,h)

RAND(’UNIFORM’)

n

∑ pi = 1 ;

i =1

0 ≤ x ≤ h, 2 x / h,  P{ X = x} =  2(1 − x) čia 0 ≤ x ≤ 1, 0 ≤ h ≤ 1 ; , h < x ≤ 1,  1 − h f ( x) = 1, 0 < x < 1 ;

RAND(’WEIBULL’,a,b)

f ( x) =

  x  a  x a −1 exp−   , x ≥ 0, čia a>0, b>0; ba   b   a

2.7 p a v y z d y s. Tarkime, kad reikia sumodeliuoti atsitiktinio dydžio, kurio skirstinys yra Stjudento skirstinys su 6 laisvės laipsniais, dydžio 200 imtį. Editor lange įvedame: %LET ll=6; %LET n=200; DATA modeliavimas; DO i=1 TO &n; t=RAND(’T’,&ll);

DATA modeliavimas; DO i=1 TO 200; t=RAND(’T’,6);

arba

58

OUTPUT; END; RUN;

OUTPUT; END; RUN;

Toliau yra pateikiamas kitų SAS atsitiktinių dydžių modeliavimo funkcijų aprašymas, jose be skirstinio parametrų reikia nurodyti pradinį skaičių (sk), aprašytą šio skyrelio pradžioje. Funkcijos UNIFORM(sk) ir RANUNI(sk) yra skirtos modeliuoti tolygų intervale (0,1) atsitiktinį dydį. Tolygų intervale (a,b) atsitiktinį dydį galime modeliuoti taip: kint=(b-a)*uniform(sk)+a;

arba

kint=(b-a)*ranuni(sk)+a;

2.8 p a v y z d y s. Modeliuoti atsitiktinio dydžio, pasiskirsčiusio pagal tolygų dėsnį intervale (0,1), dydžio n=100 imtį. DATA tolygus; DO i=1 TO 100; Y=UNIFORM(0); OUTPUT; END; RUN;

Funkcija NORMAL(sk) yra skirta modeliuoti standartinį normalų atsitiktinį dydį (t.y. vidurkis lygus 0, o standartinis nuokrypis 1. Atsitiktinį dydį, kurio skirstinys yra normalus su vidurkiu θ ir standartiniu nuokrypiu λ (žr. 2.9 lentelę), galime modeliuoti taip: Y=θ+λ*NORMAL(sk);

Funkcija RANBIN(sk,n,p) yra skirta modeliuoti atsitiktinį dydį, kurio skirstinys yra binominis su parametrais n ir p (n – nepriklausomų Bernulio eksperimentų skaičius, p – sėkmės tikimybė; žr.2.9 lentelę). Funkcija RANEXP(sk) yra skirta modeliuoti atsitiktinį dydį, kurio skirstinys yra eksponentinis su vidurkiu 1 (žr. 2.9 lentelę). Atsitiktinį dydį, kurio skirstinys yra eksponentinis su vidurkiu 1/λ, t.y. tankio funkcija yra f ( x) = λe − λx , x > 0, λ > 0 , galime modeliuoti taip: y=RANEXP(sk)/ λ;

Funkcija RANGAM(sk,a) yra skirta modeliuoti atsitiktinį dydį, kurio skirstinys yra gama su parametru a (žr. 2.9 lentelę). Atsitiktinį dydį, kurio skirstinys yra gama su 1 parametrais a ir λ, t.y. tankio funkcija yra f ( x) = a x a −1e − x / λ , x > 0, λ > 0, a > 0 λ Γ(a ) galime modeliuoti taip: y=λ*RANGAM(sk,a);

Funkciją RANGAM galime panaudoti atsitiktinio dydžio, kurio skirstinys yra chikvadrato skirstinys su 2*η (sveikas skaičius) laisvės laipsnių, modeliavimui: X=2*RANGAM(sk, η);

Funkciją RANGAM galime panaudoti atsitiktinio dydžio X∼Be(γ, η), t.y. X skirstinys yra Beta skirstinys su parametrais γ ir η, modeliavimui: y1=RANGAM(sk, γ); y2=RANGAM(sk, η); X=y1/(y1+y2);

Funkcija RANPOI(sk, λ) yra skirta modeliuoti atsitiktinį dydį, kurio skirstinys yra Puasono skirstinys su vidurkiu λ (žr. 2.9 lentelę). Diskretų atsitiktinį X, įgyjantį reikšmės 1,2,...,n su tikimybėmis p1 , p 2 ,..., p n ( p1 + p 2 + ... + p n = 1 ) galime modeliuoti su funkcija RANTBL(sk, p1 , p 2 ,..., p n ).

59

2.9 p a v y z d y s. Tegu reikia modeliuoti atsitiktinio dydžio, įgyjančio reikšmes 2, 4, 6 su tikimybėmis 0.3, 0.1, 0.6, dydžio 50 imtį. Editor lange įveskime: DATA diskretus; ARRAY m{3} m1-m3 (2 4 6); ARRAY DO i=1 TO 50; x=m{RANTBL(0, of p1-p3)}; OUTPUT; END; RUN;

p{3} p1-p3 (0.3 0.1 0.6);

Tą patį uždavinį galime išspręsti ir nenaudojant funkcijos RANTBL. Galime panaudoti tokią procedūrą. Tegu X diskretus a.d., įgyjantis reikšmes x1 , x 2 ,..., x n su tikimybėmis p1 = P{ X = xi }, i = 1,2,..., n . Daliname intervalą (0,1) į nesikertančius ilgio p1 , p 2 ,..., p n intervalus. Generuojame tolygaus intervale (0,1) atsitiktinio dydžio realizaciją; į kurį intervalą pateko generuota reikšmė, tokią reikšmę ir įgijo atsitiktinis dydis X. Naudodami šią procedūrą modeliuokime atsitiktinio dydžio, įgyjančio reikšmes 2, 4, 6 su tikimybėmis 0.3, 0.1, 0.6, dydžio 50 imtį. Editor lange įveskime: DATA diskretus; DO i=1 TO 50; u=UNIFORM(0); if 0
P a s t a b a. a ) Kitus skirstinius galima modeliuoti naudojant atsitiktinių dydžių transformacijas (žr.[5]). b) Atsitiktinių dydžių modeliavimui galime naudoti atvirkštinės transformacijos metodą. Tegu X tolydus atsitiktinis dydis su pasiskirstymo funkcija F(x). Tada atsitiktinio dydžio U=F(X) skirstinys yra tolygusis intervale (0,1). Taigi, jei U 1 , U 2 ,..., U n yra atsitiktinio dydžio U imtis, tai X i = F −1 (U i ), i = 1,..., n yra atsitiktinio dydžio X imtis.

6. Simbolinės funkcijos Šios funkcijos yra skirtos darbui su simbolinio tipo duomenimis, pavyzdžiui, apjungti dvi simbolinio tipo reikšmes į vieną, pakeisti mažąsias raides didžiosiomis, išskirti dalį simbolių iš reikšmės, panaikinti tarpus ir pan. 2.10 lentelėje yra pateikti funkcijų pavyzdžiai, o 2.11 lentelėje funkcijų naudojimo pavyzdžiai. Pilną funkcijų sąrašą galima pasižiūrėti pagrindiniame meniu pasirinkus punktą Help→SAS Help and Documentation.

2.10 lentelė. Funkcijų pavyzdžiai Sintaksė Apibrėžimas Argumento reikšmę pakartoja n kartų; arg – REPEAT(arg,n) simbolinio tipo reiškinys; LEFT(arg) LENGTH(arg) SUBSTR(arg, k, n) TRANSLATE(arg, į_1, iš_1,…, į_n, iš_n) TRIM(arg) UPCASE(arg) PROPCASE(arg)

Išlygiuoja simbolinį reiškinį į kairę pusę; Argumento ilgis (simboliais), neįskaičiuojant tarpų gale reikšmės; praleisto stebėjimo ilgis 1; Išskiria dalį argumento; pradedant nuo k-tuoju simboliu išskiria n simbolių; Pakeičia argumente simbolius: simbolius iš_1 pakeičia simboliais į_1,..., simbolius iš_n pakeičia simboliais į_n (iš_n ir į_n simbolių skaičius vienodas); Panaikina tarpus argumento pabaigoje; Mažąsias raides pakeičia didžiosiomis; Pakeičia žodžius taip: pirma raidė didžioji, kitos mažosios;

60

2.11 lentelė. Funkcijų naudojimo pavyzdžiai. Pavyzdys Rezultatas Pavyzdys Y=REPEAT(‘Dd’,3); a=’ ddd’; X=LEFT(a); a=’ddd’; X=LENGTH(a); a=’(916)734-6281’; X=SUBSTR(a,2,3); a=’6/16/99’; X=TRANSLATE(a,’-’,’/’); a=’vienas ’; b=’du’; X=TRIM(a)||b; a=’Rasa’; X=UPCASE(a); X=PROPCASE(’aAAa ’);

Y=‘DdDdDd‘ X=’ddd ’

Rezultatas

Y=REPEAT(‘0’,3); A=’ mano’; Y=LEFT(a); A=’ mano ’; y=LENGTH(a); Y=SUBSTR(‘abc’,2);

Y=‘000‘ Y=’mano ’

Y=’bb bb’

X=’RASA’

A=’bc bc’; Y=TRANSLATE(a,’b’,’c’); A=’du ’; Y=TRIM(a); Y=UPCASE(’raSa’);

X=’Aaaa’

Y=PROPCASE(’rasa rasytė ’);

Y=’Rasa Rasytė’

X=3 X=’916’ X=’6-16-99’ X=’vienasdu’

Y=5 Y=’bc’

Y=’du’ Y=’RASA’

7. Datos ir laiko funkcijos Šios funkcijos yra skirtos darbui su laiko ir datos duomenimis. 2.12 lentelėje yra pateikti funkcijų pavyzdžiai. Pilną funkcijų sąrašą galima pasižiūrėti pagrindiniame meniu pasirinkus punktą Help→SAS Help and Documentation.

2.12 lentelė. Funkcijų pavyzdžiai Sintaksė Apibrėžimas DAY(arg) Mėnesio diena; arg – SAS datos reikšmė; QTR(arg) Metų ketvirtis; arg – SAS datos reikšmė; TODAY( ) Šios dienos data (SAS datos reikšmė) DATEPART(arg) Išskiria datą iš SAS datos-laiko reikšmės; HOUR(arg) Išskiria valandą iš SAS datos-laiko arba laiko reikšmės; TIME(arg) Dabartinio laiko reikšmė; P a s t a b a. SAS datos reikšmė – dienų skaičius nuo 1960.01.01; laiko reikšmė yra skaičius sekundžių po vidurnakčio; datos-laiko reikšmė yra sekundžių skaičius nuo 1960.01.01 vidurnakčio. 2.10 p a v y z d y s. Editor lange įveskime: DATA pavyzdys; INPUT data yymmdd10. +1 laikas hhmmss8.; diena=DAY(data); ketvirtis=QTR(data); valanda=HOUR(laikas); DATALINES; 1960.01.01 00:01:00 1960.01.02 00:00:12 1959.12.30 00:01:00 2005.02.01 12:00:00 ; RUN; PROC PRINT DATA=pavyzdys; RUN;

Output lange gauname tokį rezultatą: Obs 1 2 3 4

data 0 1 -2 16468

laikas 60 12 60 43200

diena 1 2 30 1

ketvirtis 1 1 4 1

61

valanda 0 0 0 12

8. Masyvų funkcijos SAS yra trys funkcijos, skirtos darbui su masyvais (žr. I sk.,13 skyrelį): 1) DIM funkcijos rezultatas yra masyvo elementų skaičius. Sintaksė: DIM(vardas)

arba

DIM(vardas <, n>)

čia n nurodo daugiamačio masyvo dimensijos, kurioje norime sužinoti elementų skaičių, numerį; vardas – masyvo vardas. 2.11 p a v y z d y s. a) DATA pavyzdys; ARRAY masyvas{4} el1-el4; DO i=1 TO DIM(masyvas); Y=2*i; END; RUN;

Šiame pavyzdyje funkcijos DIM reikšmė yra 4, todėl ciklas atliekamas keturis kartus. b)

I variantas

II variantas

DATA pavyzdys; ARRAY masyvas{4,8,3}el1-el4(14*1); X1=DIM(masyvas,1); X2=DIM(masyvas,2); X3=DIM(masyvas,3); DROP el1-el14; RUN;

DATA pavyzdys; ARRAY masyvas{4,8,3}el1-el4(14*1); X1=DIM(masyvas); X2=DIM2(masyvas); X3=DIM3(masyvas); DROP el1-el14; RUN;

Atlikę šį Data žingsnį gausime tokią duomenų lentelę „pavyzdys“: X1 4

X2 8

X3 3

2) HBOUND funkcijos rezultatas yra viršutinis nurodytos masyvo dimensijos rėžis. Sintaksė: HBOUND(vardas)

arba

HBOUND(vardas <, n>)

čia n yra daugiamačio masyvo dimensijos numeris; vardas – masyvo vardas. 3) LBOUND funkcijos rezultatas yra apatinis nurodytos masyvo dimensijos rėžis. Sintaksė: LBOUND(vardas)

arba

LBOUND(vardas <, n>)

čia n yra daugiamačio masyvo dimensijos numeris; vardas – masyvo vardas. 2.12 p a v y z d y s. DATA pavyzdys; ARRAY m(2:6,4:13,2) k1-k100; DO i=LBOUND(m,3) TO HBOUND(m,2); Y=2*i; END; RUN;

Šiame Data žingsnyje užrašytas ciklas ekvivalentus tokiam ciklui: DO i=1 TO 13; Y=2*i; END; RUN;

62

III skyrius. APRAŠOMOJI STATISTIKA Surinkus duomenis prieš atliekant sudėtingesnę duomenų analizę naudinga atlikti pradinę duomenų analizę, nes tai a) leidžia surasti duomenų įvedimo klaidas; b) daryti išvadas apie duomenų savybes ir skirstinio pavidalą. Aprašomoji statistika, tai duomenų sisteminimo ir grafinio vaizdavimo metodai, kuriuos naudojant galima daryti išvadas apie nagrinėjamos populiacijos savybes. Aprašomoji statistika apima dvi grupes metodų: skaitiniai ir grafiniai metodai. Derinant šiuos metodus galima gauti daug naudingos informacijos apie tiriamos populiacijos savybes. Kokius grafikus braižyti ir kokias skaitines charakteristikas skaičiuoti priklauso nuo turimų duomenų tipo, t.y. buvo tirti kokybiniai ar kiekybiniai kintamieji. Yra keturios kintamųjų matavimo skalės. 1) Nominalioji. Matuojami požymiai užkoduojami simbolių sekomis, kurios tarpusavyje nepalyginamos, pavyzdžiui, 1 – matematika, 2 – fizika, 3 – lietuvių kalba. Kintamieji matuojami nominalioje skalėje vadinami nominaliaisiais kintamaisiais. Atskiras nominalios matavimų skalės atvejis yra dichotominė matavimų skalė, kurioje yra tik dvi reikšmės, pavyzdžiui, 1 – vyras, 0 - moteris. 2) Ranginė. Matuojami požymiai žymimi simbolių sekomis, kurias galima tarpusavyje palyginti, bet negalime pasakyti kokiu didumu skiriasi, pavyzdžiui, 1 – geriausias studentas, 2 – blogesnis, 3 – dar blogesnis. Kintamieji matuojami ranginėje skalėje vadinami ranginiais kintamaisiais. 3) Intervalinė. Parodo kokiu didumu skiriasi, bet nėra tikro nulio (atskaitos pradžios), pavyzdžiui, testo rezultatai (nulinis įvertinimas nebūtinai reiškia, kad nieko nežino). Kintamieji matuojami intervalinėje skalėje vadinami intervaliniais kintamaisiais. 4) Santykinė. Panaši į intervalinę, skiriasi tik tuo, kad yra absoliutus nulis (atskaitos pradžia), kuris rodo tiriamos savybės nebuvimą, pavyzdžiui, atstumas. Kintamieji matuojami santykinėje skalėje vadinami santykiniais kintamaisiais. Ranginiai ir nominalieji kintamieji vadinami kokybiniais, o intervaliniai ir santykiniai – kiekybiniais kintamaisiais. Šio skyriaus pirmame skyrelyje aprašomos dažnių lentelės, antrame – skaitinės kintamųjų charakteristikos, o trečiame – grafiniai duomenų vaizdavimo metodai.

1. Dažnių lentelės Dažnių lentelės padeda lengviau pastebėti duomenų savybes, pavyzdžiui, kiek yra skirtingų reikšmių, kokia didžiausia ir mažiausia reikšmė, kuri reikšmė pasikartojo daugiausiai kartų ir pan. Jei yra matuojamas tolydus kintamasis, pavyzdžiui ūgis, svoris, tai stebėjimus reikia sugrupuoti į intervalus ir tada skaičiuoti dažnius. Duomenis sugrupuoti galima su sąlyginiu sakiniu (žr. I sk., 5.2 skyrelį), panaudojant vartotojo sukurtus formatus (žr. I sk., 15 skyrelį). Šiame skyrelyje nagrinėsime vieno kintamojo ir kryžmines dažnių lenteles.

1.2. Vieno kintamojo dažnių lentelės Tarkime, kad tirdami tam tikrą požymį išmatavome n objektų. Turime statistinę eilutę X 1 , X 2 ,..., X n . Kai kurios reikšmės statistinėje eilutėje gali kartotis. Sudarykime variacinę eilutę, t.y. išdėstykime reikšmes X i didėjančia tvarka: X (1) , X ( 2 ) ,..., X ( n ) , čia X (1) ≤ X ( 2 ) ≤ ... ≤ X ( n ) . Tarkime, kad yra k skirtingų reikšmių X 1* , X 2* ,..., X k* . Pažymėkime f i - i-tosios reikšmės pasikartojimų skaičių. Šis skaičius vadinamas reikšmės dažniu (frequency). k

Akivaizdu, kad

∑f

i

= n.

i =1

Dydis

63

f i* =

fi n

(3.1)

yra vadinamas i-tosios reikšmės santykiniu dažniu (relative frequency). Tegu Fi yra i-tosios reikšmės sukauptas dažnis (cumulative frequency), jis parodo kiek yra reikšmių mažesnių arba lygių i-tajai reikšmei. Dydis F Fi * = i (3.2) n yra vadinamas i-tosios reikšmės santykiniu sukauptu dažniu (relative cumalative frequency). Sudarant dažnių lenteles dar yra skaičiuojami tokie dažniai: ~* fi f i = * 100, n

(3.3)

F ~ Fi * = i * 100. (3.4) n ~ ~ čia f i * yra procentinis dažnis (percent), o Fi * - sukauptas procentinis dažnis (cumulative percent). 3.1 p a v y z d y s. Tegu turime tokius duomenis: X i : 1, 2, 5, 4, 3, 2, 1, 2, 3, 2. Sudarome variacinę eilutę: X (i ) : 1, 1, 2, 2, 2, 2, 3, 3, 4, 5. Iš viso reikšmių yra n=10, o skirtingų reikšmių yra k=5. Gauname tokią dažnių lentelę: X i* 1 2 3 4 5

~* fi 2 4 2 1 1

f i* 2/10=0.2 4/10=0.4 2/10=0.2 1/10=0.1 1/10=0.1

Fi *

Fi 2 6 8 9 10

2/10=0.2 6/10=0.6 8/10=0.8 9/10=0.9 10/10=1

~* fi 20 40 20 10 10

~ Fi * 20 60 80 90 100

Dažnius galima apskaičiuoti su SAS procedūra FREQ. Sintaksė: PROC FREQ pasirinktys; TABLES kintamieji / pasirinktys; RUN;

P a s t a b a. Kintamieji, nurodyti TABLES sakinyje, gali būti skaitinio arba simbolinio tipo. Sudaroma atskira dažnių lentelė kiekvienam nurodytam kintamajam. TABLES sakinyje galima nurodyti tokias pasirinktis: OUT=lentelė nurodo dažnius surašyti į duomenų lentelę; MISSPRINT nurodo įtraukti į dažnių lentelę praleistus stebėjimus, t.y. skaičiuojant procentinius, sukauptus ir sukauptus procentinius dažnius praleisti stebėjimai neįtraukiami į skaičiavimus, o tik spausdinamas praleistų stebėjimų dažnis; MISSING nurodo įtraukti praleistus stebėjimus į skaičiavimus; NOCUM nurodo neskaičiuoti sukauptų ir procentinių sukauptų dažnių; NOPERCENT nurodo neskaičiuoti procentinių dažnių. PROC FREQ sakinyje galima nurodyti:

64

DATA=lentelė nurodome kokios lentelės duomenis analizuosime; jeigu ši pasirinktis nėra nurodyta, tai analizuojami paskutinės sukurtos lentelės duomenys; ORDER=DATA | FORMATTED | FREQ | INTERVAL nurodo kokia tvarka spausdinti dažnius. Ši pasirinktis netaikoma praleistiems stebėjimams, kurie visada spausdinami pradžioje; DATA nurodo išdėstyti dažnius tokia tvarka kaip išdėstytos reikšmės duomenų lentelėje; FORMATTED nurodo dažnius išdėstyti pagal formatuotas reikšmes; FREQ nurodo išdėstyti reikšmes pagal mažėjantį dažnį; INTERVAL pagal neformatuotas reikšmes, t.y. tokia tvarka kaip surūšiuotų procedūra SORT; šis dažnių išdėstymo būdas yra pagal nutylėjimą. Procedūroje FREQ galima nurodyti sakinį WEIGHT kintamasis;

čia kintamasis – skaitinio tipo kintamasis, kurio reikšmės yra stebėjimų dažniai. Šiuo atveju vienas stebėjimas atitinka n stebėjimų, kur n nurodyto kintamojo reikšmė. Nurodyto kintamojo reikšmė nebūtinai sveikas skaičius, bet, kai reikšmė yra 0 arba praleista, tai atitinkamas stebėjimas ignoruojamas. 3.2 p a v y z d y s. a) Tarkime, kad turime tokius pačius duomenis kaip 3.1 pavyzdyje. Apskaičiuokime dažnius su procedūra FREQ. Editor lange įvedame: DATA d1; INPUT x @@; DATALINES; 1 2 5 4 3 2 1 2 3 2 ; PROC FREQ DATA=d1; TABLES x; RUN;

Output lange gauname tokią dažnių lentelę: x 1 2 3 4 5

Frequency 2 4 2 1 1

Percent 20 40 20 10 10

Cumulative Frequency 2 6 8 9 10

Cumulative Percent 20 60 80 90 100

Pirmajame stulpelyje yra skirtingos reikšmės X i* , antrajame stulpelyje – reikšmių ~ dažniai f i , trečiajame stulpelyje procentiniai dažniai f i * (žr.(3.3)), ketvirtajame – sukaupti ~ dažniai Fi (žr.(3.2)), o paskutiniame stulpelyje – sukaupti procentiniai dažniai Fi * (žr.(3.4)). Iš dažnių lentelės matome, kad mažiausia reikšmė yra 1, didžiausia reikšmė yra 5, daugiausiai kartų pasikartojo reikšmė 2 ir t.t. b) DATA d1; INPUT x @@; DATALINES; 1 2 1 . 2 1 1 1 . 2 ; PROC FREQ DATA=d1; TABLES x; RUN;

Output lange gauname tokią dažnių lentelę: x 1 2

Frequency 5 3

Percent 62.50 37.50

Cumulative Frequency Cumulative Percent 5 62.50 8 100 Frequency missing = 2

65

Šiame pavyzdyje stebėjimų yra n=10, skirtingų reikšmių k=3. Pagal nutylėjimą praleisti stebėjimai nėra įtraukiami į dažnių lentelę, tik apačioje parašoma kiek tokių stebėjimų yra, todėl dažniai yra skaičiuojami tik kintamojo x reikšmėms 1 ir 2, be to, pagal ~ nutylėjimą skaičiuojant procentinius ( f i * ), sukauptus Fi ir sukauptus procentinius dažnius ~ Fi * praleisti stebėjimai į skaičiavimus neįtraukiami, t.y. juos skaičiuojant naudojamas nepraleistų stebėjimų skaičius, kuris šiame pavyzdyje yra 8, pavyzdžiui, reikšmės x=1 procentinis dažnis apskaičiuojamas taip: 5/8*100=62.50. c) Tegu turime tokius pačius duomenis kaip punkte b. PROC FREQ DATA=d1; TABLES x / MISSPRINT; RUN;

Output lange gauname tokią dažnių lentelę: x . 1 2

Frequency 2 5 3

Percent . 62.50 37.50

Cumulative Frequency Cumulative Percent . . 5 62.50 8 100 Frequency missing = 2

Kadangi nurodėme pasirinktį MISSPRINT, tai praleisti stebėjimai yra įtraukiami į dažnių lentelę (spausdinamas jų dažnis), tačiau skaičiuojant procentinius, sukauptus ir sukauptus procentinius dažnius naudojamas nepraleistų stebėjimų skaičius, t.y. kaip ir punkte b. d) Tegu turime tokius pačius duomenis kaip punkte b. PROC FREQ DATA=d1; TABLES x / MISSING MISSPRINT; RUN;

Output lange gauname tokią dažnių lentelę: x . 1 2

Frequency 2 5 3

Percent 20 50 30

Cumulative Frequency Cumulative Percent 2 20 7 70 10 100 Frequency missing = 2

Kadangi panaudojome MISSING ir MISSPRINT, tai praleisti stebėjimai yra įtraukiami į procentinių, sukauptų ir sukauptų procentinių dažnių skaičiavimą. e) Tegu turime tokius pačius duomenis kaip punkte b. PROC FREQ DATA=d1; TABLES x / MISSING MISSPRINT OUT=d2; RUN;

Rezultatai bus ne tik Output lange, bet ir bus įrašyti į duomenų lentelę „d2“. Gausime tokią lentelę: x . 1 2

Frequency Count 2 5 3

Percent of total frequency 20 50 30

f) DATA d1; INPUT x @@; DATALINES; 2 1 1 . 2 4 1 1 . 2 ; PROC FREQ DATA=d1 ORDER=DATA; TABLES x; RUN;

66

Output lange gauname tokią dažnių lentelę: x 2 1 4

Frequency 3 4 1

Percent 37.5 50.0 12.5

Cumulative Frequency Cumulative Percent 3 37.5 7 87.5 8 100 Frequency missing = 2

Kadangi nurodėme ORDER=DATA, tai kintamojo x reikšmės dažnių lentelėje išdėstytos taip, kaip jos yra išdėstytos duomenų lentelėje. g) Tegu duomenys tokie patys kaip punkte f. PROC FREQ DATA=d1 ORDER=FORMATTED; TABLES x; FORMAT x words10.; RUN;

Output lange gauname tokią dažnių lentelę: x four one two

Frequency 1 4 3

Percent 12.5 50.0 37.5

Cumulative Frequency 1 5 8 Frequency missing = 2

Cumulative Percent 12.5 62.5 100

Kadangi nurodėme ORDER=FORMATTED, tai kintamojo x reikšmės dažnių lentelėje išdėstytos pagal formatuotas reikšmes. h) Tegu duomenys tokie patys kaip punkte f. PROC FREQ DATA=d1 ORDER=FREQ; TABLES x / missprint; RUN;

Output lange gauname tokią dažnių lentelę: x . 1 2 4

Frequency 2 4 3 1

Percent . 50.0 37.5 12.5

Cumulative Frequency Cumulative Percent . . 4 50. 7 87.5 8 100 Frequency missing = 2

Kadangi nurodėme ORDER=FREQ, tai kintamojo x reikšmės dažnių lentelėje išdėstytos mažėjančio dažnio tvarka, išskyrus praleistus stebėjimus, kurie visada spausdinami pradžioje. i) Tarkime, kad duomenys yra tekstinėje byloje „duomenys.txt“. Duomenys yra tokie: kintamojo x reikšmės: kintamojo y reikšmės:

a 1

b 2

. 1

a 2

a 1

a 2

b 1

c 1

. 1

a 1

Sudarykime atskirą dažnių lentelę kiekvienai kintamojo y reikšmei. DATA d2; INFILE ’c:\duomenys.txt’; INPUT x $ y; PROC SORT DATA=d2; BY y; PROC FREQ DATA=d2; TABLES x / missprint; BY y; RUN;

Kadangi nurodėme BY sakinį, tai Output lange gauname atskiras lenteles kiekvienai kintamojo y reikšmei:

67

--------------------------------y=1------------------------------x Frequency Percent Cumulative Frequency Cumulative Percent 2 . . . a 3 60 3 60 b 1 20 4 80 c 1 20 5 100 Frequency missing = 2 --------------------------------y=2------------------------------x Frequency Percent Cumulative Frequency Cumulative Percent a 2 66.67 2 66.67 b 1 33.33 3 100

Kadangi procedūroje FREQ naudojame sakinį BY, tai prieš tai reikia surūšiuoti pradinę duomenų lentelę pagal BY kintamuosius. j) DATA d1; INPUT x $ y @@; DATALINES; a 1 b 2 a 1 a 2 c 1 . 1 b 3 . 4 b 1 a 1 ; PROC FREQ DATA=d1; TABLES x; WEIGHT y; RUN;

Output lange gauname tokią dažnių lentelę: x a b c

Frequency 5 6 1

Percent 41.67 50.00 8.33

Cumulative Frequency Cumulative Percent 5 41.67 11 91.67 12 100 Frequency missing = 5

WEIGHT sakinyje nurodytame kintamajame y yra stebėjimo dažnis.

1.2. Kryžminės dviejų kintamųjų dažnių lentelės Kryžminės dažnių lentelės sudaromos, kai turime du kintamuosius ir norime apskaičiuoti kiek kartų pasikartojo kintamųjų reikšmių deriniai. Kryžminėms dažnių lentelėms taip pat naudojama procedūra FREQ. Skiriasi tik TABLES sakinio sintaksė: TABLES

kintamasis_1 * kintamasis_2

/ pasirinktys;

čia kintamasis_1, kintamasis_2 – kintamieji, kurių kryžminę dažnių lentelę norime sudaryti. Galima naudoti tokias pačias pasirinktis kaip ir sudarant vieno kintamojo dažnių lenteles, be to, TABLES sakinyje galima nurodyti tokias papildomas pasirinktis: NOCOL – neskaičiuoti stulpelių procentinių dažnių; NOROW - neskaičiuoti eilučių procentinių dažnių; NOFREQ - neskaičiuoti dažnių kiekvienam lentelės langeliui; NOPERCENT - neskaičiuoti procentinių dažnių (t.y. spausdinti tik dažnį, eilučių ir stulpelių procentinius dažnius). Taip pat galima naudoti WEIGHT ir BY sakinius kaip ir sudarant vieno kintamojo dažnių lenteles. 3.3 p a v y z d y s. Pateiksime kryžminės dviejų kintamųjų dažnių lentelės pavyzdį. Editor lange įveskime: DATA pavyzdys; INPUT x $ y @@; DATALINES; a 1 b 2 a 1 a 2 . 1 b 3 . 4 b 1 a 1 ; PROC FREQ DATA=pavyzdys; TABLES x*y; RUN;

68

Output lange gauname tokią dažnių lentelę: x Frequency Percent Row Pct Col Pct

y

1

2

3

4

a

3 42.86 75.00 75.00

1 14.29 25.00 50.00

0 0.00 0.00 0.00

0 0.00 0.00 .

4 57.14

b

1 14.29 33.33 25.00

1 14.29 33.33 50.00

1 14.29 33.33 100.00

0 0.00 0.00 .

3 42.86

Total

4 57.14

2 28.57

1 14.29

0 0.00

Total

7 100.00

Frequency Missing = 2

Šioje lentelėje kiekvienam kintamųjų x ir y reikšmių deriniui yra spausdinamas dažnis, procentinis dažnis, procentinis eilutės dažnis ir procentinis stulpelio dažnis.

2. Skaitinės charakteristikos Skaitines charakteristikas galima suskirstyti į tokias tris grupes: 1) duomenų padėties; 2) duomenų sklaidos; 3) dažnių skirstinio formos. Pagrindinės duomenų padėties charakteristikos yra vidurkis, moda, mediana, kvantiliai. Pagrindinės duomenų sklaidos charakteristikos yra dispersija, standartinis nuokrypis, duomenų aibės plotis, koreguota ir nekoreguota kvadratų suma, variacijos koeficientas. Pagrindinės dažnių skirstinio formos charakteristikos yra asimetrijos ir eksceso koeficientai. Šiame skyrelyje aprašysime įvairias skaitines charakteristikas, pateiksime jų statistinę interpretaciją, formules skaitinių charakteristikų apskaičiavimui bei paaiškinsime kaip jas apskaičiuoti naudojant SAS procedūras MEANS ir UNIVARIATE.

2.1. Skaitinės charakteristikos su procedūromis MEANS ir UNIVARIATE Su procedūra MEANS galima apskaičiuoti įvairias skaitines kintamųjų charakteristikas. Procedūros MEANS sintaksė: PROC MEANS <pasirinktys> <skaitinės_charakteristikos>; VAR kintamieji; RUN;

Nebūtina pasirinktis DATA=lentelė nurodo, kokios lentelės duomenis analizuosime. Pagal nutylėjimą procedūra MEANS apskaičiuoja: stebėjimų, panaudotų skaičiavimuose, skaičių N (t.y. nepraleistų stebėjimų skaičių), vidurkį (mean), standartinį nuokrypį (standard deviation), didžiausią (max) ir mažiausią (min) reikšmę. Jeigu išvardiname skaitines charakteristikas, tai apskaičiuos tik nurodytas. 3.1 lentelėje yra pateiktas sąrašas skaitinių charakteristikų, kurias galima apskaičiuoti su procedūra MEANS. P a s t a b a. Procedūra MEANS modos neskaičiuoja.

69

3.1 lentelė. Skaitinių charakteristikų sąrašas Raktinis žodis Skaitinė charakteristika CSS koreguota kvadratų suma CV variacijos koeficientas (procentais) KURTOSIS | KURT eksceso koeficientas MAX maksimali reikšmė MEAN aritmetinis vidurkis MIN minimali reikšmė MODE Moda N stebėjimų, panaudotų skaičiavimuose, skaičius NMISS praleistų stebėjimų skaičius NOBS stebėjimų skaičius, t.y. N+NMISS RANGE duomenų aibės plotis SKEWNESS | SKEW asimetrijos koeficientas STD | STD standartinis nuokrypis STDERR | STDMEAN standartinė vidurkio paklaida SUM stebėjimų suma SUMWGT svorių suma USS nekoreguota kvadratų suma VAR Dispersija MEDIAN Mediana P1 pirmas procentilis P5 denktas procentilis P10 dešimtas procentilis P90 devyniasdešimtas procentilis P95 devyniasdešimt penktas procentilis P99 devyniasdešimt devintas procentilis Q1 pirmas kvartilis Q3 trečias kvartilis QRANGE tarpkvartilinis plotis Jeigu procedūroje MEANS nenurodome sakinio VAR, tai skaitinės charakteristikos bus apskaičiuotos visiems skaitinio tipo kintamiesiems iš pradinės duomenų lentelės. Jeigu nurodome VAR sakinį, tai skaitinės charakteristikos bus apskaičiuotos tik nurodytiems kintamiesiems. P a s t a b a. Procedūra MEANS nenaudoja skaičiavimuose stebėjimų, kuriems analizuojamo kintamojo reikšmė yra praleista. MEANS sakinyje galima nurodyti tokias pasirinktis: MAXDEC=n nurodo maksimalų skaičių skaitmenų po kablelio, kuris yra spausdinamas; galimos n reikšmės: nuo 0 iki 8. VARDEF=sk nurodo dispersijos daliklį, čia sk=n-1 (pagal nutylėjimą) arba sk=n, kur n – stebėjimų skaičius. 3.4 p a v y z d y s. a) PROC MEANS DATA=d1 MAXDEC=3 VAR MEAN;

Visiems skaitinio tipo kintamiesiems bus apskaičiuota dispersija ir vidurkis; rezultatai bus spausdinami su dviem skaitmenimis po kablelio. b) PROC MEANS DATA=d1; VAR X Y;

70

Kintamiesiems X ir Y bus apskaičiuotas stebėjimų, panaudotų skaičiavimuose, skaičius; vidurkis; standartinis nuokrypis; didžiausia ir mažiausia reikšmė. Procedūroje MEANS galima nurodyti tokius sakinius: BY kintamieji;

Bus atliekama atskira analizė kiekvienai kintamųjų, nurodytų po BY, reikšmių grupei; jei naudojame BY sakinį, tai prieš tai reikia surūšiuoti pagal kintamuosius, nurodytus po BY. Jei nurodyto kintamojo (kintamųjų) reikšmė praleista, tai su ja elgiamasi kaip su bet kuria kita reikšme. CLASS kintamieji;

Bus atliekama atskira analizė kiekvienai kintamųjų, nurodytų po CLASS, reikšmių grupei. Rezultatai spausdinami kompaktiškesne forma negu su BY sakiniu, be to, duomenų prieš tai nereikia surūšiuoti. Kai nurodome CLASS sakinį, tai pagal nutylėjimą yra skaičiuojama dar viena papildoma skaitinė charakteristika „N Obs“ – stebėjimų skaičius kiekvienoje CLASS kintamųjų reikšmių grupėje. Jei nurodyto kintamojo (kintamųjų) reikšmė yra praleista, tai atitinkamas stebėjimas neįtraukiamas į analizę, nebent nurodome MISSING pasirinktį PROC arba CLASS sakinyje. FREQ kintamasis;

Nurodyto kintamojo reikšmės yra stebėjimų dažniai, t.y. vienas stebėjimas atitinka kelis stebėjimus. Jeigu kintamojo reikšmė nesveikas skaičius, tai trupmeninė dalis atmetama. Jei reikšmė mažesnė už vienetą arba praleistas stebėjimas, tai atitinkamas stebėjimas neįtraukiamas į skaičiavimus. WEIGHT kintamasis;

Nurodome svorius. Kintamojo reikšmės nebūtinai sveiki skaičiai. Jeigu kintamojo reikšmė 0, tai stebėjimas įtraukiamas į bendrą stebėjimų skaičių. Jei kintamojo reikšmė mažesnė už 0, tai ji konvertuojama į 0 ir atitinkamas stebėjimas įtraukiamas į bendrą stebėjimų skaičių. Jeigu kintamojo reikšmė praleista, tai atitinkamas stebėjimas neįtraukiamas į analizę. Jei norime išbraukti stebėjimus su neigiamais ir nuliniais svoriais iš analizės, tai reikia PROC sakinyje nurodyti pasirinktį EXCLNPWGT. Procedūra UNIVARIATE apskaičiuoja tokias pačias skaitines kintamųjų charakteristikas (žr. 3.1 lentelę) kaip ir procedūra MEANS, tačiau pagal nutylėjimą ji spausdina praktiškai visas skaitines charakteristikas: 1) momentų lentelė (stebėjimų, panaudotų skaičiavimuose, skaičius, vidurkis, standartinis nuokrypis, asimetrijos ir eksceso koeficientai, koreguota ir nekoreguota kvadratų sumos, variacijos koeficientas, reikšmių suma, svorių suma, dispersija, standartinė vidurkio paklaida); 2) pagrindinių skaitinių charakteristikų lentelė (vidurkis, mediana, moda, standartinis nuokrypis, dispersija, duomenų aibės plotis, tarpkvartilinis plotis); 3) kvantilių lentelė; 4) ekstremalių reikšmių lentelė (pagal nutylėjimą penkios didžiausios ir penkios mažiausios reikšmės). P a s t a b a. Paprastai procedūra MEANS yra naudojama, kai norime apskaičiuoti tik keletą skaitinių charakteristikų, o procedūra UNIVARIATE, kai norime atlikti pilną kiekvieno kintamojo analizę. Procedūros UNIVARIATE sintaksė: PROC UNIVARIATE <pasirinktys> ; VAR kintamieji; RUN;

71

Procedūroje UNIVARIATE galima naudoti pasirinktis VARDEF, EXCLNPWGT, bei sakinius BY, FREQ, WEIGHT. Jų sintaksė ir paskirtis tokia pati kaip ir procedūroje MEANS. Procedūros UNIVARIATE PROC sakinyje galima nurodyti pasirinktį MODES, kuri nurodo apskaičiuoti visas modas, nes pagal nutylėjimą yra spausdinama mažiausia moda. Galima nurodyti sakinį ID kintamasis;

tada nurodyto kintamojo reikšmės bus panaudotos identifikuoti ekstremalias analizuojamo kintamojo reikšmes ekstremalių reikšmių lentelėje. 3.5 p a v y z d y s. PROC UNIVARIATE DATA=duomenys; VAR svoris; ID nr; RUN;

Šiame pavyzdyje analizuojamas kintamasis yra svoris. Kintamojo nr reikšmės bus panaudotos identifikuoti ekstremalias kintamojo svoris reikšmes ekstremalių reikšmių lentelėje. P a s t a b a. Su praleistais stebėjimais procedūroje UNIVARIATE elgiamasi taip pat kaip ir procedūroje MEANS. Toliau pateiksime formules, kurios naudojamos apskaičiuojant skaitines charakteristikas bei skaitinių charakteristikų savybes. Tegu xi - analizuojamo kintamojo i-tojo stebėjimo reikšmė (imami tik nepraleisti stebėjimai); f i - i-tosios reikšmės xi dažnis, jeigu naudojame FREQ sakinį. Jei FREQ sakinio nenaudojame, tai f i = 1 kiekvienam i; wi - i-tosios reikšmės xi svoris, jeigu naudojame WEIGHT sakinį. Jei WEIGHT sakinio nenaudojame, tai wi = 1 kiekvienam i; n – nepraleistų stebėjimų skaičius. Jei nurodome pasirinktį EXCLNPWGT ir WEIGHT sakinį, tai n nepraleistų stebėjimų su teigiamais svoriais skaičius. Duomenų padėties charakteristikos: 1) vidurkis (mean): x = ∑ wi xi / ∑ wi .

(3.5)

Vidurkis – vidutinė stebėjimų reikšmė. Jis skaičiuojamas tik kiekybiniams duomenims. Tai dažniausiai naudojama duomenų padėties skaitinė charakteristika. Vidurkis pasižymi tokiomis savybėmis. Tegu turime tokius duomenis: y1 ,..., y n . Pažymėkime y - aritmetinis vidurkis. a) Padauginkime kiekvieną reikšmę y i iš tam tikro skaičius u, t.y. vi = u * y i . Tada v1 ,..., v n aritmetinis vidurkis yra v = u * y. b) Pridėkime (atimkime) prie kiekvienos reikšmės y i tam tikrą skaičių u, t.y. vi = y i ± u . Tada v1 ,..., v n aritmetinis vidurkis yra v = y ± u. Vidurkį nepatariama naudoti, kai yra viena ar keletas stipriai išsiskiriančių (labai mažų arba labai didelių) reikšmių. 2) Moda M 0 (mode) – reikšmė, kurios dažnis didžiausias. Moda gali būti skaičiuojama ir kiekybiniams, ir kokybiniams duomenims. Moda gali neegzistuoti – visos reikšmės pasikartoja vienodą skaičių kartų. Jei yra viena moda – tai dažnių skirstinys vadinamas unimodiniu, jei yra dvi modos – bimodiniu, jei daugiau negu dvi modos, tai multimodiniu. 3) Procentiliai (percentile) – skaičiai, suskirstantys variacinę eilutę į 100 vienodų dalių; procentilis p a (a-tasis procentilis, a=1,...,100) yra skaičius variacinėje eilutėje, nuo kurio į kairę yra a% duomenų, o į dešinę (100-a) % duomenų (žr. 3.1 pav.).

72

3.1 pav. Procentilis p a Kvartiliai – skaičiai, suskirstantys variacinę eilutę į keturias lygias dalis (žr. 3.2 pav.).

3.2 pav. Kvartiliai Apatinis (pirmasis) kvartilis Q1 - skaičius variacinėje eilutėje, nuo kurio į kairę yra 25% duomenų, o į dešinę 75% duomenų, jis yra 25-tasis procentilis. Viršutinis (trečiasis) kvartilis Q3 - skaičius variacinėje eilutėje, nuo kurio į kairę yra 75% duomenų, o į dešinę 25% duomenų, jis yra 75-tasis procentilis. Mediana M d - skaičius, už kurį 50% variacinės eilutės reikšmių yra nedidesnės ir 50% nemažesnės (žr. 3.2 pav.), t.y. mediana yra vidurinė reikšmė. Mediana kaip ir vidurkis charakterizuoja duomenų centro padėtį. Ją patariama naudoti, kai duomenų aibėje yra ekstremalių reikšmių (išskirčių). Kai dažnių skirstinys simetriškas ir unimodalus, tai X = M d = M 0 . SAS yra realizuoti penki procentilių apskaičiavimo metodai. Metodas yra nurodomas su PCTLDEF=metodas (čia metodas=1, 2, 3, 4, 5) pasirinktimi procedūros MEANS arba UNIVARIATE PROC sakinyje.Tegu n yra analizuojamo kintamojo nepraleistų stebėjimų skaičius. Tarkime, kad reikšmes x1 ,..., x n išdėstėme į variacinę eilutę: x(1) ≤ x( 2 ) ≤ ... ≤ x( n ) . Reikia apskaičiuoti t-ąjį procentilį. pažymėkime p = t / 100. Tegu j yra sveikoji np dalis, o g yra np arba (n+1)p trupmeninė dalis, t.y. np = j + g ,

kai PCTLDEF = 1, 2, 3 arba 5;

(n + 1) p = j + g , kai PCTLDEF = 4. Formulės procentilių apskaičiavimui pateiktos 3.2 lentelėje. Kai nurodome WEIGHT sakinį, tai t-asis procentilis y yra apskaičiuojamas taip:

 ( x( i ) + x( i +1) ) / 2, kai   x(i +1) , kai 

i

∑w

j

= pW ,

j

< pW < ∑ w j ,

j =1 i

∑w j =1

i +1

j =1

n

čia wi yra reikšmės x(i ) dažnis, o W = ∑ wi . Kai stebėjimų svoriai vienodi, tai svertiniai i =1

procentiliai yra nesvertiniai procentiliai, apskaičiuoti naudojant metodą 5. Atskiru atveju (kai PCTLDEF=5) mediana (50-tasis procentilis) apskaičiuojama taip: 1 + x([ n / 2 ]+1) ), kai g = 0, t.y. n lyginis,  (x M d =  2 ([ n / 2 ]) kai g > 0, t.y. n nelyginis.  x([ n / 2 ]+1) ,

73

(3.7)

3.2 lentelė. Procentilių apskaičiavimo metodai PCTLDEF= Formulė 1 y = (1 − g ) x( j ) + gx( j +1) , x( 0 ) = x(1) ; 2

 x(i ) , kai g ≠ 1 / 2,  y =  x( j ) , kai g = 1 / 2 ir j lyginis, x  ( j +1) , kai g = 1 / 2 ir j nelyginis,

3

čia i yra np + 1 / 2 sveikoji dalis; kai g = 0,  x( j ) , y=  x( j +1) , kai g > 0;

4

y = (1 − g ) x( j ) + gx( j +1) , x( n +1) = x( n ) ;

5 (pagal nutylėjimą)

( x( j ) + x( j +1) ) / 2, kai g = 0, y= kai g > 0;  x( j +1) ,

Duomenų sklaidos charakteristikos parodo duomenų išsidėstymą apie duomenų centrą): 1) duomenų aibės plotis (range) – skirtumas tarp didžiausios ir mažiausios reikšmės. Ši charakteristika labai jautri išskirtims. 2) Tarpkvartilinis plotis (interquartile range): IQR = Q3 − Q1 ,

(3.8)

t.y. skirtumas tarp trečio ir pirmo kvartilio. 3) Dispersija (variance): s2 =

1 ∑ wi ( xi − x ) 2 , d

(3.9)

čia d yra dispersijos daliklis. Jis nurodomas su pasirinktimi VARDEF=d procedūros MEANS arba UNIVARIATE PROC sakinyje. Galimos d reikšmės pateiktos 3.3 lentelėje, kurioje n stebėjimų skaičius, o wi - i-tojo stebėjimo svoris. VARDEF=DF yra pagal nutylėjimą. Dispersija parodo reikšmių išsibarstymą apie vidurkį. Dispersijos savybės: a) jei visas kintamojo reikšmes padauginame iš to paties skaičiaus, tai gauta dispersija bus padauginta iš to paties skaičiaus kvadrato; b) pridedant arba atimant tą patį skaičių iš kiekvienos reikšmės, dispersija nesikeičia. 3.3 lentelė. Dispersijos daliklio reikšmės Kai VARDEF= d lygu N N DF n-1 WEIGHT ∑ wi WDF

∑w

i

−1

4) Vidutinis kvadratinis arba standartinis nuokrypis (standard deviation) kaip ir dispersija parodo duomenų sklaidą apie vidurkį. Tai dažniausiai skaičiuojama duomenų sklaidos charakteristika. Šios charakteristikos vienas iš privalumų, kad ji matuojama tais pačiais matavimo vienetais kaip ir pradiniai duomenys, tuo tarpu dispersijos matavimo vienetai yra duomenų matavimo vienetai kvadratu. Vidutinis kvadratinis nuokrypis gaunamas ištraukus kvadratinę šaknį iš dispersijos, t.y. s = s2 ,

74

(3.10)

čia s 2 yra dispersija. 5) Standartinė vidurkio paklaida (standard error of mean):

STDERR = s /

∑w , i

(3.11)

čia s yra standartinis nuokrypis, wi yra reikšmės xi dažnis. Ši charakteristika skaičiuojama tik tada, kai VARDEF=DF, kitais atvejais neskaičiuojama. 6) Nekoreguota kvadratų suma (uncorrected sum of squares): USS = ∑ wi xi . 2

(3.12)

7) Koreguota kvadratų suma (corrected sum of squares):

CSS = ∑ wi ( xi −x ) 2 .

(3.13)

8) Variacijos koeficientas (coefficient of variation) procentais: CV =

100 s . x

(3.14)

Variacijos koeficientas bedimensinis dydis, jis naudojamas lyginant skirtingų duomenų aibių sklaidas. Jis taip pat gali būti naudojamas, kai norime palyginti skirtingais matavimo vienetais matuotų duomenų aibių sklaidą. Dažnių skirstinio formos charakteristikos: 1) asimetrijos koeficientas (skewness) charakterizuoja dažnių skirstinio formos simetriškumą. Kai pasirinktis VARDEF=DF, tai asimetrijos koeficientas apskaičiuojamas taip: g1 =

n ∑ z i3 , (n − 1)(n − 2)

(3.15)

čia z i = ( xi − x ) / s standartizuoti stebėjimai. Kai pasirinktis VARDEF=N, tai asimetrijos koeficientas apskaičiuojamas taip: g1 =

1 z i3 , ∑ n

(3.16)

Kadangi asimetrijos koeficientas bedimensinis dydis, tai jį galime naudoti kelių duomenų aibių dažnių skirstinių asimetriškumui palyginti. Kai skirstinys simetriškas, tai g 1 ≈ 0. Jeigu g 1 teigiamas, tai teigiama asimetrija (dešinioji), jei neigiamas – neigiama asimetrija (kairioji). 3.3 pav. pavaizduoti visi trys atvejai.

3.3 pav. Simetriško ir asimetriškų skirstinių pavyzdžiai Jeigu g 1 arti nulio, bet sunku nuspręsti ar yra asimetrija, ar ne galima apskaičiuoti pirmąjį ir antrąjį Pirsono koeficientus (žr.[1]). Pirmasis Pirsono asimetrijos koeficientas apskaičiuojamas taip: As(1) =

X − M 0 3( X − M d ) ≈ , s s

75

(3.17)

čia X - aritmetinis vidurkis, M 0 - moda, M d - mediana, s - standartinis nuokrypis. Jeigu skirstinys simetriškas, | As(1) | < 0,15, 0,15 < | As(1) | < 1,

nedidelė asimetrija,

| As(1) | > 1,

didelė asimetrija,

As(1) ≈ 0,

skirstinys simetriškas,

As(1) > 0,

teigiama asimetrija,

| As(1) < 0,

neigiama asimetrija,

(3.18)

arba (3.19)

Antrasis Pirsono asimetrijos koeficientas apibrėžiamas taip:

As( 2 ) =

Q3 + Q1 − 2 M d , Q3 − Q1

(3.20)

čia Q1 ir Q3 - pirmasis ir trečiasis kvartiliai, M d - mediana. Asimetriškumo kriterijus toks pats kaip ir pirmajam Pirsono koeficientui. 2) eksceso koeficientas (kurtosis) – dažnių skirstinio lėkštumo matas. Kai VARDEF=DF, tai eksceso koeficientas skaičiuojamas taip: g2 =

n(n + 1) 3(n − 1) z i4 − , ∑ (n − 1)(n − 2)(n − 3) (n − 2)(n − 3)

(3.21)

čia z i = ( xi − x ) / s standartizuoti stebėjimai. Kai VARDEF=N, tai eksceso koeficientas apskaičiuojamas taip: g2 =

1 z i4 − 3. ∑ n

(3.22)

Normaliojo skirstinio eksceso koeficientas g 2 = 0. Jeigu g 1 > 0 , tai dažnių skirstinio grafikas smailesnis negu normaliojo skirstinio; jeigu g 1 < 0 , tai – lėkštesnis. 3.4 pav. pavaizduoti visi trys atvejai.

Teigiamas ekscesas

Nulinis ekscesas

Neigiamas ekscesas

3.4 pav. Skirstinio su teigiamu, nuliniu ir neigiamu ekscesu pavyzdžiai Kitos skaitinės charakteristikos, kurias skaičiuoja procedūros MEANS ir UNIVARIATE: 1) maksimali reikšmė (MAX); 2) minimali reikšmė (MIN); 3) N – nepraleistų stebėjimų skaičius. Stebėjimai, kuriems dažnis mažesnis už 1, reikšmė praleista, svoris mažesnis arba lygus nuliui (kai naudojama pasirinktis EXCLNPWGT), neįtraukiami į N skaičiavimą;

76

4) NMISS – praleistų stebėjimų skaičius. Stebėjimai, kuriems dažnis mažesnis už 1, svoris mažesnis arba lygus nuliui (kai naudojama pasirinktis EXCLNPWGT), neįtraukiami į NMISS skaičiavimą; 5) NOBS – bendras stebėjimų skaičius, t.y. NOBS=N+NMISS; 6) reikšmių suma (sum): SUM = ∑ wi xi . 7) svorių suma (sum of weights): W = ∑ wi .

3.6 p a v y z d y s. Buvo išmatuotas 20 vaikų ūgis.Gauti tokie rezultatai (cm): 124 122 123 134 124 123 121 124 128 123 126 125 131 119 122 125 130 122 125 121 Reikia apskaičiuoti vidurkį, dispersiją, standartinį nuokrypį, pirmą kvartilį ir medianą. Interpretuoti gautus rezultatus. Analizę atliksime su procedūra MEANS. Editor lange įveskime: DATA vaikai; INFILE ’c:\vaikai.txt’; INPUT ugis @@; PROC MEANS DATA=vaikai MAXDEC=2 MEAN VAR STD Q1 MEDIAN; RUN;

Output lange gauname tokius rezultatus:

Mean 124.60

The MEANS Procedure Analysis Variable : ugis Lower Variance Std Dev Quartile 13.62 3.69 122.00

Median 124.00

Kadangi nurodėme MAXDEC=DF, tai rezultatai spausdinami su dviem skaitmenimis po kablelio. Kadangi nurodėme statistikų sąrašą, tai buvo apskaičiuotos tik nurodytos skaitinės charakteristikos. Kai nenurodome VAR sakinio, tai skaitinės charakteristikos apskaičiuojamos visiems kintamiesiems iš pradinės duomenų lentelės. DATA=vaikai nurodo kokios lentelės duomenis analizuosime. Gavome, kad vidutinis vaikų ūgis yra 124.6 cm; standartinis nuokrypis yra 3.69, o dispersija yra 13.62, šios dvi skaitinės charakteristikos parodo duomenų išsidėstymą apie vidurkį; pirmasis kvartilis lygus 122 cm, t.y. 5 (t.y. 25%) vaikų ūgis mažesnis už 122 cm ir 15 (t.y.75%) vaikų ūgis didesnis už 122 cm. Tokius pačius rezultatus gautume ir su procedūra UNIVARIATE, Editor lange įvedę: PROC UNIVARIATE DATA=vaikai MAXDEC=2; RUN;

3.7 p a v y z d y s. Tarkime, kad duota SAS duomenų lentelė „Kineskopai“, kurioje yra 200 kineskopų (4 paletai po 50 kineskopų) parametrų matavimai dviejose gamybinėse operacijos (I testeris ir II testeris). I testeryje buvo matuoti tokie parametrai: spindulio R srovės stiprumas (i_katodo_r), spindulio G srovės stiprumas (i_katodo_g), spindulio B srovės stiprumas (i_katodo_b); II testeryje buvo matuoti tokie parametrai: spindulio R srovės stiprumas (i_r), spindulio G srovės stiprumas (i_g), spindulio B srovės stiprumas (i_b). Be paminėtų stulpelių lentelėje yra dar du stulpeliai: kineskopo numeris (kin_nr) ir paleto numeris (paleto_nr). Tarkime, kad reikia apskaičiuoti vidurkį, standartinį nuokrypį, minimalią ir maksimalią reikšmę I testeryje matuotiems parametrams atskirai kiekvienam paletui. Šio uždavinio sprendimui panaudosime procedūrą MEANS. Editor lange įveskime: PROC MEANS DATA=kineskopai MAXDEC=4; VAR i_katodo_r i_katodo_g i_katodo_b; CLASS paleto_nr; RUN;

Output lange gauname tokį rezultatą:

77

The MEANS Procedure N paleto_nr Obs

Variable

Label

N

Mean

Std Dev Minimum

Maximum

1

50

i_katodo_r i_katodo_g i_katodo_b

i_katodo_r i_katodo_g i_katodo_b

47 47 47

6.6915 6.5851 6.5617

0.3815 0.3557 0.3281

6.0000 6.0000 6.0000

9.0000 8.8000 8.6000

2

50

i_katodo_r i_katodo_g i_katodo_b

i_katodo_r i_katodo_g i_katodo_b

49 49 49

6.6000 6.5061 6.5061

0.1555 0.1298 0.1376

6.3000 6.3000 6.1000

7.0000 6.8000 6.8000

3

50

i_katodo_r i_katodo_g i_katodo_b

i_katodo_r i_katodo_g i_katodo_b

49 49 49

6.5898 6.5184 6.5245

0.1584 0.1318 0.1331

6.3000 6.3000 6.3000

6.9000 6.9000 6.8000

4

50

i_katodo_r i_katodo_g i_katodo_b

i_katodo_r i_katodo_g i_katodo_b

49 49 49

6.6204 6.5204 6.5184

0.1323 0.1369 0.1467

6.2000 6.2000 6.2000

6.8000 6.8000 6.8000

Kadangi nurodėme CLASS sakinį, tai stebėjimai buvo suskirstyti į grupes pagal kintamojo, nurodyto po CLASS, reikšmes ir atlikta atskira analizė kiekvienai grupei (t.y. atskira analizė kiekvienam paletui). Sakinyje VAR nurodome kurių kintamųjų skaitines charakteristikas reikia apskaičiuoti. Kiekvienam kintamajam gavome tokias skaitines charakteristikas: 1) N Obs – stebėjimų skaičius; 2) N – parodo kiek stebėjimų buvo panaudota apskaičiuojant kintamojo skaitines charakteristikas, pavyzdžiui, apskaičiuojant kintamojo i_katodo_r skaitines charakteristikas antrajame palete buvo panaudoti 49 stebėjimai (vienas stebėjimas neįtrauktas į analizę, nes jo reikšmė praleista); 3) vidurkis (Mean); matome, kad, pavyzdžiui, i_katodo_r vidurkis antrajame palete yra 6.6, o trečiajame palete yra 6.5898; 4) standartinis nuokrypis (Std Dev); matome, kad, pavyzdžiui, i_katodo_r standartinis nuokrypis antrajame palete yra 0.1555, o trečiajame palete yra 0.1584; 5) minimali reikšmė (Minimum); matome, kad, pavyzdžiui, pirmame palete visų srovių minimali reikšmė yra 6; 6) maksimali reikšmė (Maximum); matome, kad, pavyzdžiui, ketvirtajame palete visų srovių maksimali reikšmė yra 6.8. Atlikime išsamesnę kurio nors kintamojo, pavyzdžiui, i_katodo_r, stebėjimų pirmajame palete analizę. Editor lange įveskime: PROC UNIVARIATE DATA=kineskopai; VAR i_katodo_r; WHERE paleto_nr=1; RUN;

Output lange gauname tokį rezultatą: The UNIVARIATE Procedure Variable: i_katodo_r (i_katodo_r) N Mean Std Deviation Skewness Uncorrected SS Coeff Variation

47 6.69148936 0.38154707 4.85337467 2111.17 5.70197532

Moments Sum Weights Sum Observations Variance Kurtosis Corrected SS Std Error Mean

47 314.5 0.14557817 30.3015408 6.69659574 0.05565436

Basic Statistical Measures Location Mean

6.691489

Variability Std Deviation

78

0.38155

Median Mode

6.700000 6.600000

Variance Range Interquartile Range

0.14558 3.00000 0.30000

Quantiles (Definition 5) Quantile Estimate 100% Max 9.0 99% 9.0 95% 6.9 90% 6.8 75% Q3 6.8 50% Median 6.7 25% Q1 6.5 10% 6.5 5% 6.4 1% 6.0 0% Min 6.0 Extreme Observations ----Lowest-------Highest--Value Obs Value Obs 6.0 2 6.8 36 6.4 50 6.9 21 6.4 43 6.9 24 6.4 40 6.9 48 6.5 49 9.0 12

Gavome, kad pirmajame palete vidutinis spindulio R srovės stiprumas yra 6.69148936; standartinis nuokrypis yra 0.38154707; asimetrijos koeficientas yra 4.85337467, taigi, skirstinys asimetriškas; eksceso koeficientas yra 30.3015408, taigi, dažnių skirstinys žymiai smailesnis negu normaliojo skirstinio; trečiasis kvartilis lygus 6.8, t.y. 75% kineskopų spindulio R srovės stiprumas yra mažesnis už 6.8; mediana lygi 6.7, t.y. 50% kineskopų spindulio R srovės stiprumas yra mažesnis už 6.7.

2.2. Standartizuotos reikšmės Tarkime, kad turime duomenų aibę x1 , x 2 ,..., x n . Tada standartizuotos reikšmės z i , i = 1,...., n apskaičiuojamos taip: zi =

xi − x , i = 1,..., n, s

(3.23)

čia x yra reikšmių x1 , x 2 ,..., x n aritmetinis vidurkis, o s – standartinis nuokrypis. Gautos duomenų aibės z1 , z 2 ,..., z n aritmetinis vidurkis yra lygus 0, o standartinis nuokrypis lygus 1. Standartizuotos reikšmės yra bedimensiniai dydžiai ir gali būti panaudotos palyginti skirtingas duomenų aibes. 3.8 p a v y z d y s. Tarkime, kad turime duomenis iš 3.6 pavyzdžio, šiame pavyzdyje buvome gavę, kad vaikų ūgių vidurkis yra 124.6, o standartinis nuokrypis 3.69. Standartizuokime duomenis. Editor lange įveskime: DATA vaikai; SET vaikai; st_ugis=(ugis-124.6)/3.69; RUN;

Atlikus šį Data žingsnį lentelėje „vaikai“ bus sukurtas dar vienas stulpelis „st_ugis“, kuriame bus standartizuotos kintamojo „ugis“ reikšmės.

79

2.3 Išskirtys Išskirtys – reikšmės stipriai išsiskiriančios iš kitų reikšmių. Jos iškraipo skaičiavimus, apskaičiuotos charakteristikos yra nestabilios, todėl prieš atliekant duomenų analizę reikėtų patikrinti ar nėra išskirčių. Jeigu yra, tai reikia nustatyti išskirties atsiradimo priežastį, galbūt, tai duomenų įvedimo klaida, pasikeitė eksperimento sąlygos, labai retas įvykis ir pan. Matavimo rezultatai su išskirtimis kartais lengvai pastebimi, nes jie žymiai skiriasi nuo kitų. Abejotinais atvejais atliekama analizė, padedanti surasti išskirtis. Kai duomenų skirstinys normalusis, duomenų aibės išskirtys nustatomos naudojant standartizuotas reikšmes z1 , z 2 ,..., z n . Galima naudotis tokia taisykle: reikšmė xi yra sąlyginė išskirtis, jei atitinkama reikšmė z i tenkina sąlygą: 2 < | z i | < 3; reikšmė xi yra išskirtis, jei atitinkama reikšmė z i tenkina sąlygą: | z i | > 3. Kai duomenų skirstinys nėra artimas normaliajam skirstiniui galima naudotis tokia taisykle (žr. [3]): reikšmė yra sąlyginė išskirtis, jei ji priklauso intervalui: [Q1-3*IQR, Q11.5*IQR) arba (Q3+1.5*IQR, Q3+3*IQR]; reikšmė yra išskirtis, jei ji mažesnė už Q1-3*IQR arba didesnė už Q3+3*IQR, čia Q1 – pirmasis kvartilis, Q3 – trečiasis kvartilis, IQR=Q3-Q1 tarpkvartilinis plotis. 3.9 p a v y z d y s. Buvo išmatuotas 20 vaikų ūgis.Gauti tokie rezultatai (cm): 124 122 123 134 124 123 121 124 128 123 126 125 131 119 122 125 130 122 125 121 Duomenų lentelę galime sukurti su tokiu Data žingsniu: DATA vaikai; INFILE ’c:\vaikai.txt’; INPUT ugis @@; RUN;

Norint apskaičiuoti išskirtis ir sąlygines išskirtis, reikia žinoti pirmojo Q1, trečiojo Q3 kvartilio ir trapkvartilinio pločio IQR=Q3-Q1 reikšmes. Jas galima apskaičiuoti su procedūra MEANS: PROC MEANS DATA=vaikai Q1 Q3 QRANGE; var ugis; RUN;

Output lange gauname: The MEANS Procedure Analysis Variable : ugis Lower Quartile 122.0000000

Upper Quartile 125.5000000

Quartile Range 3.5000000

Apskaičiuojame sąlyginių išskirčių intervalus: [Q1-3*IQR, Q1-1.5*IQR)=[122-3*3.5, 122-1.5*3.5) =[111.5, 116.75) arba (Q3+1.5*IQR, Q3+3*IQR]=(125.5+1.5*3.5, 125.5+3*3.5] =(130.75, 136]. Palyginę gautas reikšmes su pradiniais duomenimis matome, kad reikšmės 131 ir 134 yra sąlyginės išskirtys. Reikšmė yra išskirtis, jei ji mažesnė už Q1-3*IQR=122-3*3.5=111.5 arba didesnė už Q3+3*IQR=125.5+3*3.5=136. Palyginę gautas reikšmes su pradiniais duomenimis matome, kad išskirčių nėra.

2.4. Skaitinių charakteristikų įrašymas į duomenų lentelę Visose SAS procedūrose yra numatyta galimybė gautus rezultatus įrašyti į lentelę. Aprašysime kaip skaitines charakteristikas, apskaičiuotas su procedūra MEANS arba Univariate įrašyti į lentelę.

80

Procedūroje MEANS galima naudoti sakinį OUTPUT, kuris nurodo, kad rezultatus įrašyti į SAS lentelę. Sintaksė: OUTPUT OUT = lentelė statistikų_sąrašas;

čia lentelė – lentelės vardas, į kurią norime įrašyti rezultatus, statistikų_sąrašas - išvardiname skaitines charakteristikas, kurias norime įrašyti į lentelę. Galima naudoti kelis OUTPUT sakinius arba kelis statistikų sąrašus.Viena iš galimų statistikų sąrašo formų: statistika (kintamieji)=vardų_sąrašas

čia statistika – nurodome kokią skaitinę charakteristiką įrašyti (pavyzdžiui, jei norime įrašyti vidurkį, tai rašome MEAN; galimų raktinių žodžių sąrašą žr. 3.1 lentelėje), kintamieji – analizuojami kintamieji, vardų_sąrašas – kokiais vardais pavadinti stulpelius rezultatų lentelėje; analizuojamų kintamųjų ir vardų sąrašo tvarka susijusi. 3.10 p a v y z d y s. PROC MEANS DATA=d1 NOPRINT; VAR k1 k2 k3; OUTPUT OUT=nauja SUM(k1 k3)=suma_k1 suma_k3; RUN;

Nebūtina pasirinktis NOPRINT nurodo, kad rezultatus įrašyti į lentelę, bet Output lange nespausdinti. Bus sukurta lentelė „nauja“ su dviem stulpeliais suma_k1 ir suma_k3 ir vienu stebėjimu (eilute), pirmame stulpelyje bus kintamojo k1 reikšmių suma, o antrame kintamojo k3 reikšmių suma. 3.11 p a v y z d y s. Tarkime, kad turime tokius pačius duomenis kaip 3.7 pavyzdyje, t.y. duomenų lentelė „Kineskopai“, kurioje yra 200 kineskopų (4 paletai po 50 kineskopų) parametrų matavimai dviejose gamybinėse operacijos (I testeris ir II testeris). Apskaičiuokime II testeryje matuotų parametrų (t.y. spindulio R srovės stiprumo (i_r), spindulio G srovės stiprumo (i_g), spindulio B srovės stiprumo (i_b)) vidurkius atskirai kiekvienam paletui ir įrašykime į lentelę „vidurkiai_1“. PROC MEANS NOPRINT DATA=Kineskopai; BY paleto_nr; VAR i_r i_g i_b; OUTPUT OUT=vidurkiai MEAN (i_r i_g i_b)=vid_i_r vid_i_g vid_i_b; RUN;

Gausime tokią lentelę “vidurkiai_1”: paleto_nr _TYPE_ _FREQ_ vid_i_r Vid_i_g vid_i_b 1 0 50 6.244 6.212 6.268 2 0 50 6.202 6.174 6.208 3 0 50 6.138 6.162 6.186 4 0 50 6.238 6.188 6.266 Stulpelio _TYPE_ reikšmė 0 reiškia, kad apskaičiuotas bendras vidurkis kiekviename palete; stulpelyje _FREQ_ yra stebėjimų, panaudotų skaičiuojant vidurkį, skaičius; kituose stulpeliuose yra analizuojamų kintamųjų vidurkiai. Procedūroje UNIVARIATE galima naudoti sakinį OUTPUT, kuris nurodo, kad rezultatus įrašyti į SAS lentelę. Sintaksė: OUTPUT OUT=lentelė statistikų_sąrašas=stulpelių_vardai;

3.12 p a v y z d y s. Duota lentelė „Testas“, kurioje yra tokie duomenys: studento pažymėjimo numeris (nr), dviejų testų (testas_1 ir testas_2) ir egzamino (egzaminas) rezultatai. Apskaičiuosime pirmo ir antro testo vidurkį, bei pirmojo testo standartinį nuokrypį. Duomenis įrašysime į lentelę „Rezultatai“.

81

DATA Testas; INPUT nr $ testas_1 testas_2 egzaminas @@; DATALINES; 01145 6 8 7 01147 9 10 10 01148 7 7 6 01149 6 6 7 01150 9 9 9 01152 8 9 8 01153 8 8 9 01154 9 9 8 01155 8 9 8 01156 9 10 10 01157 9 10 8 01158 6 7 6 ; PROC UNIVARIATE DATA=Testas NOPRINT; VAR testas_1 testas_2; OUTPUT OUT=Rezultatai MEAN=vid_test1 vid_test2 STD=stand_nuokr_test1; RUN;

Į lentelę įrašys pirmo ir antro testų vidurkius (stulpeliai vadinsis vid_test1 ir vid_test2); kintamojo testas_1 standartinį nuokrypį (stulpelis vadinsis stand_nuokr_test1). Lentelėje ”Rezultatai” gausime: vid_test1=7.833, vid_test2=8.5, stand_nuokr_test1=1.2673. 2.5. Skaitinių charakteristikų apjungimas su pradiniais duomenimis Iliustruosime kaip su procedūra MEANS arba UNIVARIATE apskaičiuotas ir įrašytas į lentelę statistikas apjungti su pradinės lentelės duomenimis. 3.13 pavyzdys. Duota lentelė ”Duomenys”, kurioje yra trys kintamieji: prekės pavadinimas (pavad), diena (diena), parduotų vienetų skaičius (kiekis). Reikia paruošti ataskaitą atskirai kiekvienai dienai ir apskaičiuoti procentą parduotų to pavadinimo prekių tarp tą dieną parduotų prekių. Editor lange įveskime: DATA Duomenys; INPUT pavad $ diena $ kiekis; LABEL pavad=’Prekės pavadinimas’ diena=’Diena’ kiekis=’Parduotų vienetų skaičius’; DATALINES; x1 1 15 x2 1 20 x3 2 31 x4 1 22 x5 3 41 x6 2 18 ; PROC SORT DATA=Duomenys; BY diena; PROC MEANS NOPRINT DATA=Duomenys; VAR kiekis; BY diena; OUTPUT OUT=Rezultatai SUM(kiekis)=bendras_sk; PROC PRINT DATA=Rezultatai; RUN;

Data žingsnyje yra sukuriama pradinių duomenų lentelė „Duomenys“. Procedūra MEANS apskaičiuoja kiekvieną dieną parduotų prekių skaičių (bendras_sk) ir duomenis įrašo į lentelę „Rezultatai“. Kadangi procedūroje MEANS naudojame BY sakinį, tai prieš tai reikia surūšiuoti (su procedūra SORT) pagal kintamąjį, nurodytą po BY. Rezultatas: Obs 1 2 3

diena 1 2 3

_TYPE_ 0 0 0

_FREQ_ 3 2 1

DATA Procentai; MERGE Duomenys Rezultatai; BY diena;

82

bendras_sk 57 49 41

Procentai=kiekis/bendras_sk*100; PROC PRINT DATA=Procentai; BY diena; ID diena; VAR pavad kiekis bendras_sk procentai; RUN;

Data žingsnyje yra apjungiama pradinių duomenų lentelė „Duomenys“ su lentelė „Rezultatai“, kurioje yra apskaičiuoti vidurkiai ir apskaičiuojami procentai. Rezultatas: diena 1

2 3

pavad x1 x2 x4 x3 x6 x5

kiekis 15 20 22 31 18 41

bendras_sk 57 57 57 49 49 41

procentai 26.316 35.088 38.596 63.265 36.735 100.000

Su procedūra MEANS arba UNIVARIATE galima sukurti lentelę, kurioje vietoje grupių sumų būtų bendra suma. Tačiau šiuo atveju mes negalime naudoti MERGE, nes nėra bendrų kintamųjų. Daroma taip (žr. [7]): DATA nauja_lentelė; IF _N_=1 THEN SET bendra_suma; SET pradinė_lentelė; RUN;

čia bendra_suma – lentelė su vienu stebėjimu, kurioje yra bendra suma; pradinė_lentelė – lentelė su daugiau negu vienu stebėjimu (pradinė duomenų lentelė). P a s t a b a. Tokią procedūrą galima taikyti bet kada, kai reikia apjungti lentelę su vienu stebėjimu su lentelė, kurioje yra daugiau negu vienas stebėjimas ir lentelės neturi bendrų kintamųjų. 3.14 p a v y z d y s. Tarkime, kad turime tokius pačius duomenis kaip 3.9 pavyzdyje. Šiame pavyzdyje mes tikrinome ar duomenų aibėje yra sąlyginių išskirčių arba išskirčių, tačiau tai mes atlikome rankiniu būdu. Gavome, kad reikšmės 131 ir 134 yra sąlyginės išskirtys. Parašykime programą, kuri sukurtų lentelę, kurioje būtų sąlyginės išskirtys. Iš pradžių reikia apskaičiuoti pirmą ir trečią kvartilius, juos įrašyti į lentelę, paskui šias skaitines charakteristikas apjungti su pradiniais duomenimis ir lentelėje palikti tik tuos stebėjimus, kurie yra sąlyginės išskirtys. Editor lange įveskime: DATA vaikai; INPUT ugis @@; DATALINES; 124 122 123 134 124 123 121 124 128 123 126 125 131 119 122 125 130 122 125 121 ; RUN; PROC MEANS NOPRINT DATA=vaikai; VAR ugis; OUTPUT OUT=pagalbinis Q1(ugis)=Q1 Q3(ugis)=Q3; RUN; DATA rezultatas; IF _N_=1 THEN SET pagalbinis; SET vaikai; RUN; DATA rezultatas; SET rezultatas; IQR=Q3-Q1; IF Q1-3*IQR<=ugis
83

Lentelėje „rezultatas“ bus tik tie stebėjimai iš pradinės duomenų lentelės, kurie yra sąlyginės išskirtys, t.y. reikšmės 131 ir 134.

3. Grafiniai duomenų analizės metodai Grafikai suteikia informacijos apie duomenų skirstinio formą, išskirtis, modą, didžiausią ir mažiausią reikšmes ir pan. Pavaizdavus duomenis grafiškai, lengviau juos interpretuoti. Yra labai daug įvairių grafikų. Vieni grafikai braižomi kokybiniams, kiti kiekybiniams duomenims, yra grafikų skirtų vienam kintamajam, poriniams stebėjimams ir pan. Šiame skyrelyje aprašysime kai kurių dažniausiai naudojamų grafikų ir diagramų braižymą su SAS.

3.1. Stulpelių diagramos Stulpelių diagramos braižomos kokybiniams arba kiekybiniams kintamiesiems, kurie įgyja ne daug reikšmių. Šiose diagramose dažnį atitinka stulpelio aukštis. Braižomos horizontalių ir vertikalių stulpelių diagramos. Galima braižyti dažnių, procentinių dažnių, sukauptų arba sukauptų procentinių dažnių diagramas. SAS taip pat yra numatyta galimybė braižyti palyginamąsias stulpelių diagramas, o taip pat vidurkių ir sumų stulpelių diagramas.

3.1.1. Dažnių stulpelių diagramos Stulpelių diagramos (Bar charts) yra braižomos su SAS modulio BASE procedūra CHART arba su SAS modulio GRAPH procedūra GCHART. Su procedūra GCHART galima nubraižyti aukštesnės kokybės grafikus. Iš pradžių aprašysime kaip braižyti su procedūra CHART. Vertikalių stulpelių diagrama: PROC CHART DATA=lentelė; VBAR kintamieji / pasirinktys; RUN;

Horizontalių stulpelių diagrama : PROC CHART DATA=lentelė; HBAR kintamieji / pasirinktys; RUN;

čia lentelė – duomenų lentelės vardas; kiekvienam nurodytam kintamajam braižoma atskira diagrama. VBAR ir HBAR sakinuose galima nurodyti tokias pasirinktis: grafiko tipas: TYPE =FREQ dažnių grafikas; TYPE =PECENT procentinių dažnių grafikas; TYPE =CFREQ sukauptų dažnių grafikas; TYPE =CPERCENT sukauptų procentinių dažnių grafikas; MISSING - praleisti stebėjimai pavaizduojami atskiru stulpeliu. Pagal nutylėjimą tariama, kad skaitinio tipo kintamasis yra tolydus ir procedūra sugrupuoja duomenis į intervalus. Jei skaitinio tipo kintamasis įgyja tik keletą reikšmių ir norime atskiro stulpelio kiekvienai reikšmei, tai nurodome pasirinktį DISCRETE. Kaip duomenis sugrupuoti į intervalus galima nurodyti su MIDPOINTS=reikšmės, čia reikšmės, tai grupavimo intervalo vidurio taškai (išdėstyti didėjančia tvarka), pavyzdžiui, MIDPOINTS=5.5 6.5 7.5; arba LEVELS=n, čia n – stulpelių skaičius. 3.15 p a v y z d y s. DATA d1; INPUT x $ @@; DATALINES; a b c a a b a c b a ; RUN; PROC CHART DATA=d1;

84

HBAR x / TYPE=CFREQ; RUN; PROC CHART DATA=d1; VBAR x; RUN;

Pirmosios procedūros CHART rezultatas yra kintamojo x sukauptų dažnių horizontalių stulpelių diagrama (žr. 3.5 pav.), nes nurodėme TYPE=CFREQ. Antrosios procedūros CHART rezultatas yra kintamojo x dažnių vertikalių stulpelių diagrama (žr. 3.6 pav).

3.5 pav. Sukauptų dažnių horizontalių stulpelių diagrama

3.6 pav. Dažnių vertikalių stulpelių diagrama 3.16 p a v y z d y s. DATA d2; INPUT x $ @@; DATALINES; a b c . a b . b b b ; RUN; PROC CHART DATA=d2; VBAR x; RUN; PROC CHART DATA=d2; VBAR x / MISSING; RUN;

Šių procedūrų rezultatai pateikti 3.7 pav. Antrojoje diagramoje praleisti stebėjimai pavaizduoti atskiru stulpeliu, nes procedūroje nurodėme MISSING.

85

Pirmosios procedūros CHART rezultatas

Antrosios procedūros CHART rezultatas

3.7 pav. Stulpelių diagramos P a s t a b a. Procedūroje CHART kaip ir kitose SAS procedūrose galima naudoti sakinius: BY (atskiras grafikas kiekvienai stebėjimų grupei), WHERE (grafikas imant dalį pradinių duomenų), žr. I sk. 14 skyrelį. Su procedūra GCHART galima nubraižyti geresnės kokybės grafikus. Galima naudoti tokias pačias pasirinktis kaip ir procedūroje CHART, be to, yra daug kitų pasirinkčių, kurių sąrašą galima pasižiūrėti pagrindiniame meniu pasirinkus Help→SAS Help and Documentation. Pateiksime pavyzdį. 3.17 p a v y z d y s. DATA d1; INPUT x @@; DATALINES; 1 2 1 2 3 1 1 ; RUN; pattern color=blue; PROC GCHART DATA=d1; VBAR x / DISCRETE; /* atskiras stulpelis kiekvienai x reikšmei*/ RUN; pattern color=green; /* nurodome stulpelių spalvą*/ PROC GCHART DATA=d1; HBAR x / TYPE=CFREQ DISCRETE; /* sukauptų dažnių stulpelių diagrama*/ RUN; QUIT;

Šių procedūrų rezultatas pateiktas 3.8 pav. Kadangi nurodėme DISCRETE, tai braižomas atskiras stulpelis kiekvienai x reikšmei. Sakinyje PATTERN su COLOR pasirinktimi nurodėme stulpelio spalvą. Antrojoje procedūroje CHART nurodėme TYPE=CFREQ, todėl nubraižė sukauptų dažnių diagramą.

86

Pirmosios procedūros GCHART rezultatas

Antrosios procedūros GCHART rezultatas

3.8 pav. Stulpelių diagramos Paminėsime dar kelias pasirinktis, naudojamas HBAR arba VBAR sakiniuose: ASCENDING – išdėsto stulpelius pagal aukštį didėjančia tvarka; DESCENDING – išdėsto stulpelius pagal aukštį mažėjančia tvarka; SPACE=n – nurodome tarpų tarp stulpelių dydį (čia n – neneigiamas skaičius; pavyzdžiui, SPACE=0 – nebus tarpų tarp stulpelių); WIDTH=n – nurodome stulpelių plotį (čia n - stulpelio plotis). 3.18 p a v y z d y s. DATA d1; INPUT x @@; DATALINES; 1 2 1 2 3 1 1 ; RUN; PATTERN COLOR=BLUE; PROC GCHART DATA=d1; VBAR x / DISCRETE; RUN; PATTERN COLOR=GREEN; PROC GCHART DATA=d1; VBAR x / DISCRETE ASCENDING WIDTH=1.5 ; RUN; QUIT;

Rezultatas pateiktas 3.9 paveiksle.

Pirmosios procedūros GCHART rezultatas

Antrosios procedūros GCHART rezultatas

3.9 pav. Stulpelių diagramos

87

3.1.2. Sumų ir vidurkių stulpelių diagramos Galima stulpelių diagramoje pavaizduoti ne kintamojo dažnius, o tam tikro kito kintamojo reikšmių sumas arba vidurkius analizuojamo kintamojo reikšmėms. Sintaksė: PROC CHART DATA=lentelė; VBAR kintamieji / pasirinktys; RUN;

Nurodytų kintamųjų reikšmės atidedamos horizontalioje ašyje. Braižoma atskira diagrama kiekvienam nurodytam kintamajam. Pasirinktys: SUMVAR=kintamasis, čia kintamasis, kurio reikšmės sumuojamos arba skaičiuojamas reikšmių vidurkis; apskaičiuotos charakteristikos atidedamos vertikalioje ašyje; TYPE=MEAN | SUM, jei nurodome MEAN - braižoma vidurkių diagrama, jei – SUM, tai reikšmių sumų diagrama; pagal nutylėjimą, kai nurodyta pasirinktis SUMVAR=kintamasis yra braižoma reikšmių sumų diagrama. Kaip ir dažnių stulpelių diagramose galima naudoti DISCRETE, MIDPOINTS, LEVELS pasirinktis (žr. 3.1.1 skyrelį). 3.19 pavyzdys. DATA d1; INPUT x y @@; DATALINES; 1 4 2 5 1 3 3 5 2 1 1 1 1 3 ; RUN; PROC CHART DATA=d1; VBAR x / DISCRETE SUMVAR=y TYPE=MEAN; RUN; PATTERN COLOR=GREEN; PROC GCHART DATA=d1; VBAR x / DISCRETE SUMVAR=y TYPE=MEAN; RUN; QUIT;

Rezultatas pateiktas 3.10 paveiksle. Horizontalioje ašyje yra atidėtos kintamojo x reikšmės: 1, 2, 3 ir braižomas atskiras stulpelis kiekvienai x reikšmei, nes nurodme DISCRETE. Parinktis TYPE=MEAN nurodo, kad braižoma vidurkių stulpelių diagrama, o parinktis SUMVAR=y nurodo, kad vertikalioje ašyje atidedami kintamojo y reikšmių vidurkiai kiekvienai x reikšmei (kai x=1, tai stulpelio aukštis yra (4+3+1+3)/4=2.75; kai x=2, tai stulpelio aukštis yra (5+1)/2=3; kai x=3, tai stulpelio aukštis yra 5).

Procedūros CHART rezultatas

Procedūros GCHART rezultatas

3.10 pav. Stulpelių diagramos

88

3.1.3. Grupės ir pogrupiai stulpelių diagramoje Procedūros CHART sakinyje HBAR arba VBAR galima nurodyti pasirinktis: GROUP=kintamasis; braižomi keli stulpeliai vienas šalia kito, po vieną stulpelį kiekvienai nurodyto kintamojo reikšmei; kintamasis turi būti diskretus, gali būti skaitinio arba simbolinio tipo; SUBGROUP=kintamasis; stulpelis padalinamas nuodyto kintamojo reikšmėmis; pirmas reikšmės simbolis naudojamas stulpeliui užpildyti. GROUP ir SUBGROUP galima naudoti ir kartu. Galima braižyti ne tik dažnių, bet ir sumų bei vidurkių stulpelių diagramas (reikia nurodyti SUMVAR ir TYPE=MEAN | SUM). Tokias pačias pasirinktis galima naudoti ir GCHART procedūroje. 3.20 p a v y z d y s. Duota lentelė „Duomenys“, kurioje yra tokie kintamieji: parduotuvės numeris (numeris), prekių tipas (tipas), metai, parduotų prekių skaičius (parduota). Editor lange įveskime: DATA Duomenys; INPUT numeris $ tipas $ metai parduota ; DATALINES; 15 tipas1 2004 251 15 tipas1 2005 280 15 tipas2 2004 150 15 tipas2 2005 168 16 tipas1 2004 315 16 tipas1 2005 390 16 tipas2 2004 280 16 tipas2 2005 305 ; RUN; PROC GCHART DATA=Duomenys; VBAR tipas / SUBGROUP=numeris SUMVAR=parduota; RUN; QUIT; PROC GCHART DATA=Duomenys; VBAR tipas / GROUP=metai SUBGROUP=numeris SUMVAR=parduota TYPE=MEAN; RUN; QUIT;

Pirmosios procedūros GCHART rezultatas

Antrosios procedūros GCHART rezultatas

3.11 pav. Stulpelių diagramos Rezultatas pateiktas 3.11 paveiksle. Pirmosios GCHART procedūros rezultatas yra vertikalių stulpelių diagrama: vienas stulpelis kiekvienai kintamojo „tipas“ reikšmei;

89

stulpeliai padalinti kintamojo „numeris“ reikšmėmis; horizontalioje ašyje atidėtos kintamojo „parduota“ reikšmių sumos. Antrosios GCHART procedūros rezultatas yra vertikalių stulpelių diagrama: braižomos stulpelių grupės (kintamojo „metai“ reikšmės); kiekvienoje stulpelių grupėje po vieną stulpelį kiekvienai kintamojo „tipas“ reikšmei; stulpeliai padalinti kintamojo „numeris“ reikšmėmis; horizontalioje ašyje atidėti kintamojo „parduota“ reikšmių vidurkiai. Kai braižome horizontalių stulpelių diagramą, tai pagal nutylėjimą dažnių, procentinių, sukauptų procentinių dažnių diagramose spausdinamas dažnis, sukauptas, procentinis, sukauptas procentinis dažnis. Jeigu nurodysime kokias skaitines charakteristikas spausdinti, tai spausdins tik nurodytas ir dažnį. Galima nurodyti: CFREQ sukauptas dažniai; CPERCENT sukauptas procentinis dažnis; FREQ dažnis; PERCENT procentinis dažnis; MEAN vidurkis (galima naudoti tik su SUMVAR ir TYPE=MEAN); SUM suma (galima naudoti tik su SUMVAR ir TYPE=SUM); NOSTATS nespausdinti statistikų horizontalių stulpelių diagramoje; P a s t a b a. Jei nurodėme TYPE=MEAN, tai galima apskaičiuoti tik vidurkį ir dažnį; jei nurodėme TYPE=SUM, tai galima apskaičiuoti tik sumą ir dažnį; Jei nurodome NOZEROS pasirinktį, tai diagramoje nebus stulpelių su nuliniu dažniu. Ši pasirinktis naudojama su HBAR ir VBAR sakiniais. Galima nurodyti FREQ=kintamasis pasirinktį; čia kintamojo reikšmės nurodo stebėjimo dažnį. Jei nenurodome, tai kiekvieno stebėjimo dažnis yra lygus 1. Jei FREQ kintamojo reikšmės nėra sveiki skaičiai, tai trupmeninė dalis yra atmetama. Jei naudojame SUMVAR, tai sumos dauginamos iš nurodyto kintamojo reikšmių.

3.2. Diagrama medis Diagrama medis (steam and leaf plot) parodo kiek kartų pasikartojo reikšmė. Iš jos galima spręsti apie duomenų skirstinį, modą, asimetriškumą, matomos išsiskiriančios reikšmės ir pan. Šios diagramos privalumas lyginant su grupuotų duomenų stulpelių diagrama tas, kad neprarandama pradinė informacija, kuri dingsta grupuojant duomenis. Ši diagrama braižoma taip: jei skaičius susideda iš dviejų ar daugiau skaitmenų, tai jį galima išskaidyti į šaką ir lapą. Šaka yra pirmasis skaitmuo (pirmieji skaitmenys). Lapas – paskutinis skaitmuo (paskutiniai skaitmenys), pavyzdžiui, skaičių 367 galima išskaidyti dviem būdais: a) 3|67, čia 3 – šaka, 67 – lapas; b) 36|7, čia 36 – šaka, 7- lapas. 3.21 p a v y z d y s. Tarkime, kad gavome tokią diagramą: 3|2 5|5 7|1 10|5

0 1 4 6 3 2 9 0 4 3 6 7 4

Iš diagramos matome, kad pasirodė tokios kintamojo reikšmės: 32, 30, 31, 34, 55, 56 ir t.t. Diagramą medį galima nubraižyti su procedūra UNIVARIATE, reikia nurodyti pasirinktį PLOTS. 3.22 p a v y z d y s. Tarkime, kad sukūrėme lentelę su tokiu DATA žingsniu: DATA Duomenys; INPUT x @@; DATALINES; 11 12 15 28 25 23 13 22 31 16 21 18 ; RUN; PROC UNIVARIATE DATA=Duomenys PLOTS; VAR x; RUN;

90

Output lange gauname diagramą, pavaizduotą 3.12 paveiksle.

3.12 pav. Diagrama medis Iš diagramos matome, kad kintamasis x įgijo tokias reikšmes: 11, 12, 13, 15, 16, 18, 21, 22, 23, 25, 28, 31.

3.3 Histograma Histograma (histogram) – empirinis tankio analogas. Ji skiriasi nuo stulpelių diagramos tuo, kad histogramoje dažnį charakterizuoja stulpelio plotas, o ne stulpelių aukštis. Histograma braižoma tolydiems kintamiesiems. Duomenys yra sugrupuojami į intervalus. Knygoje [1] intervalų skaičių rekomenduojama pasirinkti taip: intervalų skaičius k=5, kai stebėjimų skaičius n ≤ 25 ir k ≈ n , kai n>25. Taip pat galima naudotis Sturgeso formule: k ≈ 1 + 3.22 ln n. Pasirinkę intervalų skaičių, apskaičiuojame grupavimo intervalo ilgį: h = ( x max − x min ) / k , čia x max - maksimali analizuojamo kintamojo reikšmė, o x min minimali. Suskaičiuojame kiek reikšmių pateko į kiekvieną intervalą, t.y. nagrinėjame intervalą [ x min , x min +h), suskaičiuojame kiek kintamojo x reikšmių pateko į šį intervalą; nagrinėjame intervalą [ x min +h, x min +2h], suskaičiuojame kiek kintamojo x reikšmių pateko į šį intervalą ir t.t. Braižome stulpelius, kurių plotis lygus intervalo ilgiui h, o j-tojo stulpelio aukštis p j / h, čia p j yra į j-ąjį intervalą patekusių reikšmių skaičius padalintas iš visų reikšmių skaičiaus, t.y. santykinis dažnis. Taigi, j-tojo stulpelio plotas yra p j . 3.13 pav. yra schematiškai pavaizduotas empirinis tankio analogas n fˆn ( x) = i , x ∈ I i , nh čia I i yra i-tasis intervalas, ni - reikšmių, patekusių į i-tąjį intervalą skaičius, h – intervalo ilgis, n – stebėjimų skaičius.

3.13 pav. Histograma Histogramą galima nubraižyti su procedūra UNIVARIATE. Pateiksime pavyzdį (žr.[9]).

91

3.23 p a v y z d y s. DATA Duomenys; DROP i; LABEL n_x='Normalusis atsitiktinis dydis' e_x ='Exponentinis atsitiktinis dydis'; DO i=1 TO 200; n_x=2*normal(0)+10; e_x=ranexp(0); OUTPUT; END; RUN; PROC UNIVARIATE DATA=Duomenys NOPRINT; VAR n_x; HISTOGRAM n_x / NORMAL(NOPRINT) CBARLINE=GREY; RUN; PROC UNIVARIATE DATA=Duomenys NOPRINT; VAR e_x; HISTOGRAM /EXP(FILL l=3) CFILL=YELLOW MIDPOINTS=.05 TO 5.55 BY .25; RUN;

Pirmosios procedūros UNIVARIATE rezultatas

Antrosios procedūros UNIVARIATE rezultatas

3.14 pav. Histogramos 1) 2) 3) 4)

5)

Paaiškinimai: pasirinktis NOPRINT procedūros UNIVARIATE PROC sakinyje nurodo nespausdinti statistikų lentelių; VAR sakinyje nurodome analizuojamą kintamąjį; HISTOGRAM sakinyje nurodome analizuojamą kintamąjį; HISTOGRAM sakinyje po “/” galime nurodyti įvairias pasirinktis; NORMAL reiškia, kad histogramą norime palyginti su normalaus skirstinio tankiu; EXP, kad norime palyginti su eksponentinio skirstinio tankiu (kiti galimi skirstiniai: beta, gamma, lognormal, weibull, žr. [9]); toliau skliausteliuose galime nurodyti tankio kreivės pasirinktis: NOPRINT – braižyti tik grafiką (jei nenurodysime spausdins suderinamumo kriterijus); FILL – nurodo nuspalvinti plotą po tankio kreive su spalva nurodyta su CFILL=spalva pasirinktimi; COLOR=spalva nurodome tankio kreivės spalvą; L= nurodome tankio kreivės tipą; W= nurodome tankio kreivės storį; toliau (po skliaustų) galime nurodyti histogramos pasirinktis: CBARLNE=spalva nurodome histogramos stulpelių linijų spalvą; MIDPOINTS=”nuo” TO “iki” BY “žingsnis” nurodome histogramos stulpelių vidurio taškus; CFILL=spalva histogramos stulpelių spalva arba spalva, kuria nuspalvinamas plotas po tankio kreive, kai nurodome FILL skliaustuose po skirstinį identifikuojančio žodžio.

P a s t a b a. Jei po HISTOGRAM nurodome tik kintamąjį, tai braižys tik histogramą, nelygins su tankiu.

92

Jeigu procedūroje UNIVARIATE nurodome CLASS sakinį, tai braižomos palyginamosios histogramos (po vieną histogramą kiekvienai po CLASS nurodyto kintamojo reikšmei). Pateiksime pavyzdį. 3.24 p a v y z d y s. Tarkime, kad turime tokius pačius duomenis kaip 3.7 pavyzdyje (kineskopų parametrų matavimai; lentelė „Kineskopai“). Nubraižysime kintamojo i_r palyginamąsias histogramas trečiam ir ketvirtam paletui (po vieną histogramą kiekvienam paletui). PROC UNIVARIATE DATA=Kineskopai; VAR i_r; CLASS paleto_nr; HISTOGRAM i_r; WHERE paleto_nr=3 or paleto_nr=4; RUN;

Gautos histogramos pateiktos 3.15 paveiksle.

3.15 pav. Palyginamosios histogramos 3.4. Tikimybinės kreivės grafikas Tikimybinės kreivės grafikas skirtas palyginti empirinę pasiskirstymo fukciją su teorine. Ašys transformuojamos taip, kad teorinė pasiskirstymo funkcija transformuojama į tiesę. Jei taškai grafike išsidėstę apie tiesę, tai galime teigti, kad duomenys gauti stebint atsitiktinį dydį, kurio skirstinys yra tas, su kuriuo lyginome. 3.25 p a v y z d y s. DATA Duomenys; DROP i; LABEL n_x='Normalusis atsitiktinis dydis'; DO i=1 TO 200; n_x=2*normal(0)+10; OUTPUT; END; RUN; GOPTIONS HTITLE=1 HTEXT=1 FTEXT=swissb FTITLE=swissb; SYMBOL VALUE=star; PROC UNIVARIATE DATA=Duomenys NOPRINT; VAR n_x; PROBPLOT n_x /NORMAL(MU=est SIGMA=est); TITLE 'Pavyzdys, X~N(10,4)'; RUN;

Gautas tikimybinės kreivės grafikas pateiktas 3.16 paveiksle. Paaiškinimai: 1) Globalioje komandoje GOPTIONS panaudoti HTITLE ir HTEXT apibrėžia šrifto dydį; FTITLE ir FTEXT - šrifto tipą;

93

2) SYMBOL sakinyje panaudotas VALUE=star nurodo kokie simboliai braižomi grafike (pagal nutylėjimą “+”; kadangi nurodėme „star, tai bus žvaigždutės“); 3) PROBPLOT sakinyje reikia nurodyti su kokiu skirstiniu norime palyginti, pavyzdžiui, NORMAL(mu=est sigma=est) – normalusis skirstinys, LOGNORMAL(sigma=est) – lognormalusis skirstinys ir pan.

3.16 pav. Tikimybinės kreivės grafikas 3.5. Sklaidos diagrama Sklaidos diagramos skirtos pastebėti sąryšį tarp dviejų kintamųjų. Sklaidos diagramą galima nubraižyti su SAS/BASE procedūra PLOT arba SAS/GRAPH procedūra GPLOT. Su procedūra GPLOT galima nubraižyti aukštesnės kokybės grafikus (spalvoti, daugiau pasirinkčių). Iš pradžių aprašysime kaip nubraižyti sklaidos diagramą su procedūra PLOT. Sintaksė: PROC PLOT DATA=lentelė; PLOT kintamieji / pasirinktys; RUN;

Kintamuosius galima nurodyti trimis būdais: a) kintamasis1*kintamasis2; b) kintamasis1*kintamasis2=‘simbolis‘; c) kintamasis1*kintamasis2=kintamasis3; čia kintamojo1 reikšmės atidedamos vertikalioje ašyje, kintamojo2 reikšmės – horizontalioje ašyje. Atveju a) taškai žymimi raide „A“, jei du taškai sutampa, tai raide „B“, jei trys taškai sutampa – raide „C“ ir t.t. Atveju b) visi taškai žymimi nurodytu simboliu. Atveju c) taškas žymimas nurodyto kintamojo (kintamasis3) atitinkamo stebėjimo reikšmės pirmąja raide; jeigu keli taškai sutampa, tai bus pažymėtas pačio pirmo (iš sutampančių) reikšme ir bus parašyta pastaba, kad yra paslėptų stebėjimų. Galima nurodyti kelis PLOT sakinius arba kelis kintamųjų sąrašus, tada bus braižomi keli atskiri grafikai, pavyzdžiui, plot k1*k2 k3*k4; gausime du grafikus. PLOT sakinyje galima nurodyti tokias pasirinktis: VAXIS=reikšmių_sąrašas apibrėžia vertikalios ašies gradaciją, pavyzdžiui, VAXIS=10 20 30 40 (arba VAXIS=10 TO 40 BY 10); HAXIS=reikšmių_sąrašas apibrėžia horizontalios ašies gradaciją, pavyzdžiui, HAXIS=5 TO 15 (pagal nutylėjimą žingsnis 1); VREF=reikšmių_sąrašas nurodo nubrėžti horizontalias linijas nurodytoms reikšmėms, pavyzdžiui, VREF=5; VREF=reikšmių_sąrašas nurodo nubrėžti vertikalias linijas nurodytoms reikšmėms, pavyzdžiui, HREF=6 TO 14 BY 2 brėžia vertikalias linijas horizontalios ašies reikšmėms 6, 8, 10, 12, 14;

94

OVERLAY nurodo, kad vertikalioje ašyje atidedamos kelių kintamųjų reikšmės (t.y. keli grafikai viename), pavyzdžiui, PLOT y1*x=’A’ y2*x=‘B‘ / OVERLAY. P a s t a b a. Jei nurodome BY sakinį, tai braižys atskirus grafikus stebėjimų grupėms. 3.26 p a v y z d y s. DATA duomenys; INPUT x y; DATALINES; 1.2 3.4 2.6 3.0 1.6 3.8 1.3 3.5 3.9 1.6 2.2 2.5 ; PROC PLOT DATA=duomenys; PLOT y*x='*'/VREF=1 TO 4; RUN;

Šios procedūros rezultatas (žr. 3.17 pav.) yra kintamųjų y ir x sklaidos diagrama; kintamojo y reikšmės atidedamos ant vertikalios ašies, o x – ant horizontalios; nurodėme, kad taškus žymėtų simboliu “*“; VREF nurodo nubraižyti horizontalias linijas kintamojo y reikšmėms 1, 2, 3, 4.

3.17 pav. Kintamųjų x ir y sklaidos diagrama Sklaidos diagramas galima braižyti ir su procedūra GPLOT. Pateiksime pavyzdį. 3.26 p a v y z d y s (tęsinys). Nubraižysime tų pačių duomenų sklaidos diagramą su procedūra GPLOT. Editor lange parašome: PROC GPLOT DATA=duomenys; PLOT y*x / VREF=1 TO 4; RUN;

Gauta sklaidos diagrama pateikta 3.18 paveiksle.

3.18 pav. Sklaidos diagrama 95

Pateiksime OVERLAY panaudojimo su procedūra GPLOT pavyzdį. 3.27 p a v y z d y s. Editor lange įveskime: DATA duomenys; INPUT x y1 y2; DATALINES; 1.2 3.4 4.1 2.6 3.0 4.5 1.6 3.8 2.9 1.3 3.5 3.2 3.9 1.6 2.5 2.2 2.5 3.4 ; RUN; GOPTIONS RESET=(axis, legend, pattern, symbol, title, footnote) INTERPOL=none; SYMBOL1 height=1.5 cv=red value=star; SYMBOL2 height=1.5 cv=green value=circle; AXIS1 color=blue width=2.0 ORDER=(0 to 4 BY 1) MINOR=(NUMBER=4); AXIS2 color=blue width=2.0 LABEL=(FONT='Times New Roman' HEIGHT=12pt JUSTIFY=Right 'y1,y2'); PROC GPLOT DATA=duomenys; PLOT (y1 y2)*x /overlay HAXIS=AXIS1 VAXIS=AXIS2 FRAME LVREF=1 CVREF=BLACK VREF=2 4; RUN; QUIT;

Sakinyje GOPTIONS panaudota komanda RESET atstato išvardintų skliaustuose sakinių pasirinktis į tokias, kokios yra pagal nutylėjimą; INTERPOL=none nurodo, kad simboliai nejungiami. SYMBOL1 sakinys nurodo kaip pavaizduojamos kintamojo y1 reikšmės, o SYMBOL2 – kintamojo y2 (SYMBOL sakinių turime nurodyti tiek, kiek kintamųjų norime atidėti ant vertikalios ašies); VALUE nurodo kokiu simboliu bus pavaizduoti taškai grafike (šiame pavyzdyje taškai (x, y1) bus pavaizduoti žvaigždutėmis (star), o taškai (x, y2) – apskritimais (circle)); CV nurodo simbolių spalvą; HEIGHT – simbolių aukštį. AXIS sakiniai apibrėžia koordinačių ašis; šiame pavyzdyje AXIS1 – horizontali ašis, AXIS2 – vertikali ašis; COLOR nurodo ašies spalvą, WIDTH – linijos storį, ORDER – kaip sunumeruotos reikšmės ant ašies, MINOR – kiek mažų brūkšnelių tarp reikšmių ant ašies; LABEL – aprašo koordinačių ašies žymę. Procedūros GPLOT sakinyje PLOT nurodėme, kad kintamųjų y1, y2 reikšmės atidedamos ant vertikalios ašies, o x – ant horizontalios; FRAME – nurodo braižyti rėmelį apie grafiką; VREF kokioms kintamojo, atidėto vertikalioje ašyje, reikšmėms braižomos horizontalios linijos, CVREF – linijų spalva, LVREF – linijos tipas. Gautas grafikas pateiktas 3.19 paveiksle.

3.19 pav. Sklaidos diagrama 96

3.6. Linijinė diagrama Linijinės diagramos naudojamos, kai norime pavaizduoti kintamųjų (kintamojo) kitimą kito kintamojo atžvilgiu. Dažniausiai naudojamos laiko eilutėms. Galima palyginti kelias laiko eilutes. Linijines diagramas galima nubraižyti su procedūra GPLOT (žr.3.5 skyrelį). Reikia nurodyti, kad sujungtų taškus. Pateiksime pavyzdį. 3.28 p a v y z d y s. DATA duomenys; INPUT metai parduota_1 parduota_2; DATALINES; 1995 290 260 1996 301 290 1997 305 300 1998 309 315 1999 315 300 2000 310 305 2001 301 310 2002 305 300 2003 310 315 2004 315 320 ; RUN; GOPTIONS RESET=(axis, legend, pattern, symbol, title, footnote) INTERPOL=JOIN; SYMBOL1 height=1 cv=red value=circle; SYMBOL2 height=1 cv=green value=circle; PROC GPLOT DATA=duomenys; PLOT (parduota_1 parduota_2)*metai /overlay FRAME LVREF=1 CVREF=BLACK VREF=270 290 310; RUN; QUIT;

INTERPOL=JOIN nurodo, kad taškai sujungiami atkarpomis.

3.20 pav. Linijinė diagrama Pirmosios procedūros GPLOT rezultatas pateiktas 3.20 paveiksle. Iš diagramos matome kaip keičiasi kintamojo „parduota_1“ reikšmės priklausomai nuo kintamojo „metai“ reikšmių. Antrosios procedūros GPLOT rezultatas pateiktas 3.21 paveiksle. Grafike pavaizduotos dvi laiko eilutės.

97

3.21 pav. Linijinė diagrama 3.7. Skritulinė diagrama Skritulinė diagrama naudojama, kai kintamasis įgyja nedaug reikšmių. Skritulinės diagramos vaizdžiai atspindi dažnių skirstinį tarp kategorijų. Skritulys atitinka visą populiaciją (100%), o išpjovos – kategorijas, proporcingai jų santykiniam dažniui. Skritulinės diagramos nevaizdžios, kai yra daug dalių ir dalys mažos. Skritulinės diagramos braižomos su SAS procedūra GCHART. Sintaksė: PROC CHART DATA=lentelė; PIE kintamieji / pasirinktys; RUN;

čia lentelė – duomenų lentelės vardas; kiekvienam nurodytam kintamajam braižoma atskira diagrama. Pilną pasirinkčių, naudojamų PIE sakinyje, sąrašą galima pasižiūrėti pagrindiniame meniu pasirinkus Help→SAS Help and Documentation, čia pateiksime tik keletą iš jų: TYPE =statistika nurodo kokia skaitinė charakteristika bus pavaizduota diagramoje, čia statistika gali būti: FREQ (dažnis), PERCENT (procentinis dažnis), MEAN (vidurkis), SUM (suma); MEAN ir SUM galima naudoti tik tada, kai panaudota SUMVAR=kintamasis pasirinktis. SUMVAR=kintamasis, čia kintamasis, kurio reikšmės sumuojamos arba skaičiuojamas reikšmių vidurkis. MISSING - praleisti stebėjimai pavaizduojami atskira išpjova. Pagal nutylėjimą tariama, kad skaitinio tipo kintamasis yra tolydus ir procedūra sugrupuoja duomenis į intervalus. Jei skaitinio tipo kintamasis įgyja tik keletą reikšmių ir norime atskiros išpjovos kiekvienai reikšmei, tai nurodome pasirinktį DISCRETE. Kaip duomenis sugrupuoti į intervalus galima nurodyti su MIDPOINTS=reikšmės, čia reikšmės, tai grupavimo intervalo vidurio taškai (išdėstyti didėjančia tvarka) arba LEVELS=n, čia n – išpjovų skaičius. GROUP=kintamasis, sugrupuoja stebėjimus į grupes pagal nurodyto kintamojo reikšmes ir braižoma atskira diagrama kiekvienai stebėjimų grupei. SUBGROUP=kintamasis, diagrama padalinama į žiedus pagal nurodyto kintamojo reikšmes. EXPLODE=reikšmių_sąrašas, atitraukia atitinkamas išpjovas nuo skritulio centro, čia reikšmių_sąrašas yra sudarytas iš kai kurių braižomo kintamojo reikšmių (jei kiekvienai reikšmei braižoma atskira išpjova) arba kai kurių grupavimo intervalo vidurio taškų (jei duomenys grupuojami). OTHER=procentas, nurodome kokias reikšmes apjungti į išpjovą „Kiti“; įtraukiamos tos, kurioms skaičiuojamos charakteristikos reikšmės yra mažesnės arba lygios nurodytam 98

procentui; pagal nutylėjimą 4%; su OTHERLABEL=‘simboliai‘ galime nurodyti kaip vadinsis išpjova. PERCENT=ARROW | INSIDE | NONE | OUTSIDE nurodome kurioje vietoje spausdinamas procentas, kurį užima išpjova. Pagal nutylėjimą NONE (nespausdinamas). 3.6 pav. parodyta kurioje vietoje spausdinama priklausomai nuo PERCENT pasirinkties reikšmių.

3.22 pav. Užrašų išdėstymo variantai SLICE=ARROW | INSIDE | NONE | OUTSIDE nurodome kurioje vietoje spausdinamos analizuojamo kintamojo reikšmė. Pagal nutylėjimą OUTSIDE. VALUE=ARROW | INSIDE | NONE | OUTSIDE nurodome kurioje vietoje spausdinamos braižomos diagramoje statistikos reikšmės. Pagal nutylėjimą OUTSIDE. Galima nurodyti FREQ=kintamasis pasirinktį; čia kintamojo reikšmės nurodo stebėjimo dažnį. Jei nenurodome, tai kiekvieno stebėjimo dažnis yra lygus 1. Jei FREQ kintamojo reikšmės nėra sveiki skaičiai, tai trupmeninė dalis yra atmetama. 3.29 p a v y z d y s. Editor lange įveskime: DATA duom; INPUT x $ @@; DATALINES; a a b c b b c b b b . . d e b b a a a a c c ; RUN; PROC GCHART DATA=duom; PIE x; RUN; QUIT; PROC GCHART DATA=duom; PIE x / TYPE=PERCENT MISSING; RUN; QUIT; PROC GCHART DATA=duom; PIE x / TYPE=PERCENT EXPLODE='a'; RUN; QUIT; PROC GCHART DATA=duom; PIE x/PERCENT=INSIDE; RUN; QUIT;

Gautos skritulinės diagramos pateiktos 3.23 paveiksle. Paaiškinsime skritulines diagramas, pateiktas 3.23 paveiksle. Pirmojoje skritulinėje diagramoje yra pateikti kintamojo x dažniai (reikšmės pasikartojimų skaičius), praleisti stebėjimai pagal nutylėjimą neįtraukiami į diagramą. Antrojoje skritulinėje diagramoje yra pateikti kintamojo x procentiniai dažniai (pavyzdžiui, kintamojo x reikšmės „a“ procentinis dažnis gaunamas taip: (na / n) * 100% = (6 / 22) * 100% ≈ 27.27%, čia na - reikšmės „a“ pasikartojimų skaičius, n – bendras stebėjimų skaičius), nes nurodėme TYPE=PERCENT; nurodėme MISSING, todėl praleisti stebėjimai įtraukiami į diagramą. Trečiojoje skritulinėje diagramoje taip pat yra pateikti kintamojo x procentiniai dažniai, nes nurodėme TYPE=PERCENT; nurodėme EXPLODE=‘a‘, todėl reikšmę „a“ atitinkanti išpjova yra atitraukta nuo skritulio centro. Ketvirtojoje skritulinėje diagramoje yra pateikti kintamojo x

99

dažniai, be to ant PERCENT=INSIDE.

išpjovų

yra

parašyti

procentiniai

dažniai,

nes

nurodėme

Pirmosios procedūros GCHART rezultatas

Antrosios procedūros GCHART rezultatas

Trečiosios procedūros GCHART rezultatas

Ketvirtosios procedūros GCHART rezultatas

3.23 pav. Skritulinės diagramos Pateiksime pasirinkties SUMVAR panaudojimo pavyzdį. 3.30 p a v y z d y s. Editor lange įveskime: DATA duom1; INPUT x $ y @@; DATALINES; a 5 a 10 b 3 c 2 b 12 b 1 c 9 b 4 b 3 b 1 d 4 e 8 b 3 b 3 a 3 a 10 a 3 a 3 c 1 a 2 ; RUN; PROC GCHART DATA=duom1; PIE x/ SUMVAR=y; RUN; QUIT; PROC GCHART DATA=duom1; PIE x/ SUMVAR=y TYPE=MEAN; RUN; QUIT;

Gautos diagramos pateiktos 3.24 paveiksle. Paaiškinsime skritulines diagramas, pateiktas 3.24 paveiksle. Pirmojoje skritulinėje diagramoje yra pateiktos kintamojo y reikšmių sumos kiekvienai kintamojo x reikšmei, nes nurodėme SUMVAR pasirinktį. Antrojoje skritulinėje diagramoje yra pateikti kintamojo y reikšmių aritmetiniai vidurkiai, kiekvienai kintamojo x reikšmei, nes nurodėme SUMVAR ir TYPE=MEAN.

100

Pirmosios procedūros GCHART rezultatas

Antrosios procedūros GCHART rezultatas

3.24 pav. Kintamojo y sumų ir vidurkių skritulinės diagramos 3.31 p a v y z d y s. Sukurkime duomenų lentelę su tokiu Data žingsniu: DATA duom2; INPUT x $ y $ @@; DATALINES; a I a I b I c I b I b I c I b I b I b I c II c II b II b II a II a II a II a II c II a II ; RUN; a) PROC GCHART DATA=duom2; PIE x/ GROUP=y across=2 percent=inside; RUN; QUIT;

Šios procedūros GCHART rezultatas pateiktas 3.25 paveiksle; nurodėme GROUP=y, todėl braižoma atskira skritulinė diagrama kiekvienai kintamojo y reikšmei (šiame pavyzdyje kintamasis y įgyja tik dvi reikšmes, todėl braižomos dvi skritulinės diagramos); ACROSS=2 nurodo, kad vienoje eilutėje turi būti spausdinamos dvi skritulinės diagramos; PERCENT=INSIDE nurodo, kad ant išpjovų turi būti parašyti procentiniai dažniai.

3.25 pav. Skritulinės diagramos b) PROC GCHART DATA=duom2; PIE x/ SUBGROUP=y percent=inside; RUN; QUIT;

Šios procedūros GCHART rezultatas pateiktas 3.26 paveiksle; nurodėme SUBGROUP=y, todėl skritulys yra padalinamas į žiedus, žiedų yra tiek, kiek yra skirtingų kintamojo y reikšmių (šiame pavyzdyje kintamasis y įgyja tik dvi reikšmes, todėl yra du žiedai); kiekvienas žiedas suskirstomas į sektorius, kurių dydžiai proporcingi kintamojo x reikšmių dažniams (šiame pavyzdyje kintamasis x įgyja tris reikšmes, todėl kiekvienas žiedas padalinamas į tris dalis); PERCENT=INSIDE nurodo, kad ant išpjovų turi būti parašyti procentiniai dažniai.

101

3.26 pav. Skritulinė diagrama 3.8. Stačiakampė diagrama Stačiakampė diagrama (Box and Whiskers Plot) padeda nustatyti išskirtis, simetriškumą. Šioje diagramoje yra atidedamas vidurkis, mediana, pirmas ir trečias kvartiliai. Schematiškai stačiakampė diagrama pavaizduota 3.27 pav. Brėžiamas stačiakampis, kurio viršutinis kraštas atitinka viršutinį (trečią) kvartilį (Q3), apatinis stačiakampio kraštas atitinka apatinį (pirmą) kvartilį (Q1), stačiakampio aukštis lygus tarpkvartiliniam pločiui (Q3-Q1). Horizontali linija viduje stačiakampio žymi medianą, pliuso ženklas (+) žymi vidurkį. Nuo stačiakampio kraštų brėžiamos atkarpos: pirmoji atkarpa (į apačią nuo Q1) jungia Q1 su mažiausia reikšme, nutolusia ne daugiau kaip 1.5 tarpkvartilinio pločio nuo Q1; antroji atkarpa (į viršų nuo Q3) jungia Q3 su didžiausia reikšme, nutolusia ne daugiau kaip 1.5 tarpkvartilinio pločio nuo Q3. Reikšmės, esančios už atkarpų, yra išskirtys, jos žymimos atskirais simboliais. Jei reikšmė yra tarp 1.5 ir 3 tarpkvartilinių pločių nuo viršutinio arba apatinio stačiakampio krašto, tai žymima nuliu (0), t.y. sąlyginė išskirtis; žymima žvaigždute (*), jei reikšmė nutolusi daugiau negu per 3 tarpkvartilinius pločius (išskirtis).

3.27 pav. Stačiakampė diagrama Stačiakampę diagrama galima nubraižyti procedūroje UNIVARIATE nurodžius pasirinktį PLOTS. Jei nurodome BY sakinį, tai braižomos palyginamosios stačiakampės diagramos.

102

3.32 p a v y z d y s. DATA duom; INPUT x @@; DATALINES; 480 371 397 360 550 250 375 429 482 336 440 451 280 353 404 368 373 520 446 385 433 426 450 407 412 645 366 329 700 ; RUN; PROC UNIVARIATE DATA=duom PLOTS; VAR x; RUN;

Output lange gausime stačiakampę diagramą, pavaizduotą 3.28 pav.

3.28 pav. Stačiakampė diagrama (dešinėje), nubraižyta su procedūra UNIVARIATE Jeigu turime SAS/STAT modulį, tai stačiakampę diagramą galime nubraižyti su procedūra BOXPLOT. 3.32 p a v y z d y s (tęsinys). Editor lange įveskime: DATA duom; /* pertvarkome lentelę */ SET duom; pag=1; RUN; PROC BOXPLOT DATA=duom; /* braižome stačiakampę diagramą*/ PLOT x*pag / BOXSTYLE=schematic; RUN; QUIT; PROC BOXPLOT DATA=duom; /* braižome stačiakampę diagramą*/ PLOT x*pag / BOXSTYLE=skeletal; RUN; QUIT;

Gausime kintamojo x stačiakampes diagramas, pavaizduotas 3.29 pav.

Pirmosios procedūros BOXPLOT rezultatas

Antrosios procedūros BOXPLOT rezultatas

3.29 pav. Stačiakampės diagramos

103

BOXSTYLE=schematic nurodo, kad braižoma tokio tipo diagrama kaip pavaizduota 3.27 paveiksle; kai nurodome BOXSTYLE=skeletal, tai nuo stačiakampio kraštų brėžiamos atkarpos jungia: Q1 su mažiausia reikšme (apatinė atkarpa) ir Q3 su didžiausia reikšme (viršutinė atkarpa). Su procedūra BOXPLOT galime nubraižyti palyginamąsias stačiakampes diagramas. 3.33 p a v y z d y s. Tarkime, kad turime tokius pačius duomenis kaip 3.7 pavyzdyje (duomenų lentelė „Kineskopai“, kurioje yra 200 kineskopų (4 paletai po 50 kineskopų) parametrų matavimai dviejose gamybinėse operacijos (I testeris ir II testeris)) Nubraižykime kintamojo i_r (spindulio R srovės stiprumas II testeryje) palyginamąsias stačiakampes diagramas (grupuojantis kintamasis paleto numeris (paleto_nr). Editor lange įveskime: PROC BOXPLOT DATA=Kineskopai; PLOT i_r*paleto_nr / BOXSTYLE=schematic; RUN; QUIT;

Gauname stačiakampes diagramas, pavaizduotas 3.30 paveiksle. Braižoma atskira stačiakampė diagrama kiekvienam paletui.

3.29 pav. Palyginamosios diagramos (atskira diagrama kiekvienam paletui)

104

IV skyrius. TAŠKINIAI PARAMETRŲ ĮVERČIAI IR PASIKLIAUTINIEJI INTERVALAI Trečiame skyriuje aptarėme aprašomosios statistikos metodus, t.y. duomenų sisteminimo ir jų pateikimo metodus. Šiame ir tolesniuose skyreliuose nagrinėsime matematinės statistikos metodus, t.y. parametrų vertinimo ir hipotezių tikrinimo uždavinius. Pirmame skyrelyje pateikiamos pagrindinės matematinės statistikos sąvokos: statistika, pilna, pakankama statistika; taškiniai parametrų įverčiai (nepaslinkti, suderinti, minimalios dispersijos); įverčių radimo metodai; pasikliautinieji parametrų intervalai. Antrajame skyrelyje pateikiamos taškinių parametrų įverčių ir pasikliautinųjų intervalų išraiškos bei kaip juos apskaičiuoti su SAS kai kurių skirstinių atveju (įverčių išraiškas šiame skyriuje nepaminėtiems skirstiniams žr., pavyzdžiui, [5]). SAS yra realizuoti normalaus skirstinio parametrų vertinimo algoritmai, binominio skirstinio sėkmės tikimybės vertinimo algoritmai, vertinant kitų skirstinių parametrus reikia išraiškas patiems užprogramuoti. Tai nesunku atlikti naudojant pirmame ir antrame skyriuje aprašytas komandas.

1. Pagrindinės sąvokos ir apibrėžimai Pradžioje apibrėšime kai kurias matematinės statistikos sąvokas. Generaline aibe arba populiacija vadinama tiriamų objektų aibė. Populiacija gali būti baigtinė arba begalinė. Kadangi dažnai visos aibės ištirti negalime arba toks tyrimas reikalauja daug laiko ir lėšų, tai iš populiacijos paimama dalis objektų ir juos analizuojant stengiamasi apibūdinti populiacijos tikimybinį skirstinį. Matematinės statistikos metodai taikytini tik tada, kai stebėjimo rezultatai yra reprezentatyvūs, t.y. teisingai atspindi galimų reikšmių proporcijas generalinėje aibėje. Trumpai paminėsime kai kurias toliau naudojamas matematinės statistikos sąvokas. Tarkime, kad atliekant tam tikrą eksperimentą gaunamas stebėjimų vektorius x = ( x1 , x2 ,..., xn ) , kuris yra tam tikro a.v. X = ( X 1 , X 2 ,..., X n ) realizacija. Atsitiktinį vektorių X = ( X 1 , X 2 ,..., X n ) vadinsime tūrio n atsitiktine imtimi, o jo konkrečiame eksperimente įgytą reikšmę x = ( x1 , x2 ,..., xn ) ,- atsitiktinės imties realizacija. Parametriniuose matematinės statistikos modeliuose priimama prielaida, kad a.v. X tikimybinio skirstinio pavidalas yra žinomas, tačiau jis priklauso nuo nežinomo parametro θ , t.y. tariama, kad a.v. X skirstinys priklauso skirstinių šeimai {Pθ , θ ∈ Θ} . Diskrečiuoju atveju skirstinius Pθ galima vienareikšmiškai nusakyti tikimybėmis pθ (x) = P{X = x | θ},

θ ∈ Θ,

x∈X ,

(4.1)

čia X ⊂ R n yra a.v. X įgyjamų reikšmių aibė. Absoliučiai tolydžiu atveju skirstinius Pθ galima nusakyti n-mate pasiskirstymo funkcija F (x | θ) arba tankio funkcija f (x | θ) . Nepriklausomą nuo nežinomo parametro θ imties funkciją T = T ( X) = = T ( X 1 ,..., X n ) vadiname statistika. Parametro γ = γ (θ) taškiniu įverčiu vadiname nepriklausomą nuo nežinomo parametro θ imties funkciją (statistiką), kurią žymėsime γˆ = γˆ ( X) = γˆ ( X 1 ,..., X n ) . Funkciją

γˆ galima parinkti įvairiai. Todėl yra kriterijai, kurie leidžia parinkti tam tikra prasme geresnius įverčius. Įvertį γˆ vadiname suderintu, jeigu didėjant imties dydžiui jis artėja prie tikros parametro reikšmės γ , t.y. kiekvienam fiksuotam ε>0

P{| (γˆ − γ |> ε } → 0, kai n → ∞. 105

Įvertį γˆ vadiname nepaslinktuoju (be poslinkio), jeigu jo vidurkis visoms parametro θ ∈ Θ reikšmėms sutampa su vertinamu parametru γ = γ (θ) :

E(γˆ | θ) ≡ γ (θ),

∀θ ∈ Θ.

(4.2)

Nepaslinktųjų įverčių irgi gali būti daug. Išrinkime iš jų tarpo tokį, kuris turi mažiausią išsibarstymą. Įvertį γˆ * vadiname nepaslinktuoju minimalios dispersijos (NMD) įverčiu, jeigu jis tenkina (4.2) ir jeigu

min V (γˆ | θ) = V (γˆ* | θ),

∀θ ∈ Θ.

(4.3)

Įverčių radimui yra svarbi pakankamosios statistikos sąvoka. Statistiką T = T ( X) vadiname šeimos {Pθ , θ ∈ Θ} arba parametro θ ∈ Θ pakankamąja statistika, jeigu sąlyginis a.v. X skirstinys, kai T = t yra fiksuota, nepriklauso nuo nežinomo parametro. Kitaip sakant, žinant pakankamąją statistiką T imtyje nėra jokios papildomos informacijos apie nežinomą parametrą θ ∈ Θ . Pakankamoji statistika įgalina redukuoti imtį, t.y. sumažinti imties matavimą, neprarandant informacijos. Tą faktą, kad ieškant NMD įverčių pakanka apsiriboti funkcijomis nuo pakankamos statistikos, patvirtina pateikiama teorema. T e o r e m a. (Rao-Blekuelo). Tarkime, kad egzistuoja parametro γ = γ (θ) nepaslinktas įvertis γˆ ir T = T ( X) yra pakankamoji parametro θ statistika. Tada egzistuoja kitas nepaslinktas įvertis γ~ = γ~ (T ), kuris yra tik pakankamos statistikos T funkcija, ir kuris ne blogesnis dispersijos minimizavimo prasme: (4.4) V (γ~ | θ) ≤ V (γˆ | θ), ∀θ ∈ Θ. NMD įverčių radimą žymiai palengvina pakankamos statistikos T savybė vadinama jos pilnumu. Pakankamoji statistika T vadinama pilnąja, jeigu egzistuoja vienintelė T funkcija tapatingai lygi 0, kuri yra nepaslinktas nulio įvertis, t.y. iš sąlygos

E(ϕ (T ) | θ) ≡ 0,

∀θ ∈ Θ,

(4.5)

išplaukia, kad ϕ (t ) = 0. Teisingas toks tvirtinimas. T e o r e m a. Jeigu T yra pilnoji ir pakankamoji parametro θ statistika ir egzistuoja nepaslinktas parametro γ = γ (θ) įvertis γ~ = γ~ (T ), kuris yra funkcija tik nuo statistikos T, tai jis yra vienintelis. Tokiu būdu, bet kuri pilnos ir pakankamos statistikos T funkcija φ (T ) yra savo vidurkio E(φ (T ) | θ) NMD įvertis. Iš čia galime suformuluoti tokį NMD įverčių radimo metodą. Jeigu T yra pakankamoji ir pilnoji parametro θ statistika, tai norint rasti parametro γ = γ (θ) NMD įvertį, tereikia išspręsti funkcionalinę lygtį

E(φ (T ) | θ) ≡ γ (θ), ∀θ ∈ Θ, (4.6) funkcijos φ (T ) atžvilgiu. Tada γ~ (T ) = φ (T ) yra parametro γ = γ (θ) NMD įvertis. Šį metodą galime naudoti, jeigu egzistuoja pilna ir pakankama statistika, tačiau pilnosios ir pakankamos statistikos ne visada egzistuoja. Aptarsime kitus įverčių radimo metodus. Momentų metodas. Tai paprasčiausias ir istoriškai pirmasis taškinių įverčių radimo metodas. Tarkime, kad X = ( X 1 ,..., X n ) yra paprasčiausioji atsitiktinė imtis, gauta stebint a.d. X , t.y. X 1 ,..., X n yra vienodai pasiskirstę a.d., turintieji tą patį skirstinį, kaip ir a.d. X. Tegu

a.d. X skirstinys priklauso šeimai {Pθ , θ ∈ Θ} , priklausančiai nuo k-mačio parametro

106

θ = (θ1 ,...,θ k ) ∈ Θ. Pažymėkime α j = α j (θ 1 ,...,θ k ) = EX j , j = 1,2,... , a.d. X j-tąjį pradinį momentą. Šių momentų empiriniai analogai (įverčiai) yra aj =

1 n X i j , j = 1,2,... ∑ n i =1

(4.7)

Pirmasis momentas a1 (aritmetinis vidurkis) paprastai žymimas X . Empirinių momentų (4.7) pirmųjų momentų išraiškos yra tokios:

Ea j = α j ,

Va j =

α 2 j − α 2j n

,

cov(a j , a j ′ ) =

α j + j ′ − α jα j ′ n

.

(4.8)

Kadangi momentai (4.7) yra vienodai pasiskirsčiusių nepriklausomų a.d. sumos, tai joms bendromis sąlygomis galioja centrinė ribinė teorema ir jų skirstinius prie pakankamai didelių n galima apytiksliai aproksimuoti normaliuoju skirstiniu

n

aj −α j

α 2 j − α 2j

⇒ Z ∼ N (0,1),

n → ∞,

j = 1,2,...

(4.9)

Pagal momentų metodą teorinius momentus α j prilyginame atitinkamiems empiriniams momentams a j . Gauname lygčių sistemą

a1 = α 1 = α 1 (θ 1 ,...,θ k ), a = α = α (θ ,...,θ ),  2 2 2 1 k  L a k = α k = α k (θ 1 ,...,θ k ). Šios lygčių sistemos sprendiniai θˆ j , j = 1,2,..., k , parametrų θ1 ,θ 2 ,...,θ k atžvilgiu yra vadinami momentų metodu gautais įverčiais. Jie yra empirinių momentų (4.7) funkcijos

θˆ j = θˆ j (a1 ,..., a k ), j = 1,2,..., k . Šių įverčių savybes galime gauti iš žemiau pateikiamo tvirtinimo apie empirinių momentų funkcijas. T e o r e m a. Tegu H = H (a1 ,..., ak ) yra empirinių momentų a1 ,..., ak funkcija tenkinanti sąlygą: ji yra tolydi ir turi tolydžias pirmos ir antros eilės dalines išvestines savo argumentų atžvilgiu taško (α1 ,...,α k ) aplinkoje. Tada funkcija H (kaip ir atskiras jos argumentas) tenkina asimptotinio normalumo sąlygą n

H − H0 ⇒ Z ∼ N (0,1), BH

n → ∞,

čia EH ∼ H 0 = H (α1 ,...,α k ), k BH2 VH ∼ = ∑ H 2j Va j + ∑ H j H j′ cov(a j , a j′ ), n j =1 j ≠ j′

Hj =

∂H |( a =α ,..., a =α ) , ∂a j 1 1 k k

j = 1,2,..., k .

Imdami vietoje H kurį nors įvertį iš (4.10) gauname

107

(4.10)

n

θˆ j − θ j Bθˆ

n → ∞,

⇒ Z ∼ N (0,1),

j = 1,2,..., k .

(4.11)

j

Maksimalaus tikėtinumo metodas. Įrašykime į skirstinį (4.1) vietoje argumento x = ( x1 ,..., xn ) atsitiktinę imtį X = ( X 1 ,..., X n ) . Gautąją funkciją vadiname maksimalaus tikėtinumo funkcija L(θ | X) = pθ ( X). Diskrečiuoju atveju

(4.12)

pθ (x) yra tikimybė to, kad a.v. X realizacija yra lygi

x = ( x1 ,..., xn ) , kai tikroji parametro reikšmė yra θ . Pastumkime parametrą θ taip, kad tikimybė gauti tą imtį, kurią faktiškai gavome, būtų kuo didesnė, t.y. ieškome labiausiai tikėtinos parametro θ reikšmės. Tai ir yra maksimalaus tikėtinumo metodo esmė. ~ Parametro θ įvertis θ , kuris gaunamas iš sąlygos ~ max L(θ | X) = L( θ | X), (4.13) vadinamas maksimalaus tikėtinumo įverčiu. Vietoje (4.13) dažnai yra patogiau maksimizuoti ~ funkcijos L(θ | X) logaritmą, t.y. ieškoti θ iš sąlygos ~ max ln( L(θ | X)) = max l (θ | X) = l ( θ | X). (4.14) l (θ | X) maksimumas pasiekiamas vidiniame srities Θ taške ir ~ l (θ | X) diferencijuojama pagal θ1 ,θ 2 ,...,θ k , tai įvertis θ tenkina maksimalaus tikėtinumo lygčių sistemą : Jeigu funkcijos

∂ ln( L(θ | X )) ∂l (θ | X ) = = 0, ∂θ j ∂θ j

j = 1,2,..., k .

Gauti iš (4.15) įverčiai tenkina asimptotinio normalumo sąlygą: ~ θ j −θ j j = 1,2,..., k . ⇒ Z ∼ N (0,1), n → ∞, 1 I (θ j )

(4.15)

(4.16)

Čia I (θ j ) yra taip vadinamas Fišerio informacijos kiekis apie parametrą θ j imtyje X = ( X 1 ,..., X n ) : 2

  2  ∂ ln L(θ | X )   = −E ∂ ln L(θ2 | X ) . I (θ j ) = E     ∂θ j ∂θ j    

(4.17)

~ ~ Funkcijos γ = γ (θ) maksimalaus tikėtinumo įvertis γ~ yra γ~ = γ ( θ ) , jei θ yra parametro θ maksimalaus tikėtinumo įvertis. Informacijos kiekis apie parametrą γ = γ (θ) (tariame, kad parametras θ yra vienmatis) yra gaunamas tokiu būdu I (γ ) =

I (θ ) . (γ ′(θ )) 2

~ Jeigu egzistuoja pakankama statistika T, tai maksimalaus tikėtinumo įvertis θ yra tik pakankamos statistikos T funkcija. Šia prasme maksimalaus tikėtinumo įverčiai gali turėti 108

privalumą lyginant jį su momentų metodu gautais įverčiais, kurie yra empirinių momentų funkcijos. Suprantama, kad pastarieji nebūtinai sutampa su pakankamąją statistika. Jeigu L(θ | X) tenkina gana bendras reguliarumo sąlygas (žr. [5]), tai nepaslinktam parametro θ j įverčiui galioja Rao-Kramero nelygybė: įverčio dispersija yra apribota iš apačios:

Vθˆ j ≥

1 . I (θ j )

(4.18)

Praktikoje dažniausiai naudojamų skirstinių atveju lygčių sistema, gauta momentų metodu yra paprastesnė ir lengviau išsprendžiama. Tuo tarpu sistema (4.15) dažnai būna sudėtinga ir ją tenka spręsti artutiniais iteraciniais metodais. Dažnai rekomenduojama elgtis tokiu būdu: pradiniame etape rasti įverčius momentų metodu ir panaudoti juos kaip pradinį artinį tikslinant įverčius maksimalaus tikėtinumo metodu. Parametrų pasikliautinieji intervalai. Taškiniai parametrų įverčiai yra atsitiktinės imties funkcijos, t.y. jie irgi yra atsitiktiniai dydžiai. Todėl įverčių tikslumą galima apibūdinti tik tikimybiškai. Pavyzdžiui, negalima tvirtinti, kad sukonstruotas parametro θ įvertis θˆ bus nukrypęs nuo tikros parametro reikšmės mažiau už pasirinktą skaičių ε > 0 , o galima kalbėti tik apie tokio įvykio tikimybę: P{| θˆ − θ |< ε | θ } > Q, kuri tam tikra prasme apibūdina įverčio tikslumą, jeigu Q yra artimas vienetui. Norint kad surastas įvertis kartu charakterizuotų ir jo tikslumą, greta taškinių įverčių matematinėje statistikoje naudojami ir intervaliniai įverčiai (pasikliautinieji intervalai). Tarkime, kad paprasta atsitiktinė dydžio n imtis X = ( X 1 ,..., X n ) yra gauta stebint a.d. X, kurio skirstinys priklauso šeimai {Pθ ,θ ∈ Θ} . Pradžioje aptarsime paprastesnį atvejį, kai

θ ∈ Θ ⊂ R1 yra vienmatis parametras. Parametro θ pasikliautinuoju intervalu su reikšmingumo lygmeniu Q vadiname porą nepriklausančių nuo nežinomų parametrų imties X = ( X 1 ,..., X n ) funkcijų (statistikų), kurias žymėsime θ = θ ( X) ir θ = θ (X) , θ ≤ θ . Tikimybę Q, su kuria intervalas (θ ,θ ) uždengia tikrąją parametro reikšmę vadiname intervalo pasikliovimo lygmeniu (pasikliovimo lygmuo parenkamas iš anksto ir, paprastai, imama Q=0,9; 0,95; 0,99 ir pan.): P{θ ≤ θ ≤ θ | θ } ≥ Q,

∀θ ∈ Θ.

(4.19)

Kai egzistuoja vienmatė pakankamoji statistika T = T (X) , tai pakanka nagrinėti tik tokius intervalus, kurių rėžiai yra statistikos T funkcijos. Tegu T yra pakankamoji statistika, o jos pasiskirstymo funkcija H (t | θ ) yra monotoniškai mažėjanti parametro θ funkcija. Tada pasikliautinojo intervalo su pasikliovimo lygmeniu Q rėžiai gaunami iš lygčių H (T | θ ) = 1 − P,

H (T + 0 | θ ) = P,

P=

1− Q . 2

(4.20)

Jeigu H (t | θ ) yra monotoniškai didėjanti θ funkcija, tada intervalo rėžiai gaunami iš lygčių H (T + 0 | θ ) = P,

H (T | θ ) = 1 − P.

(4.21)

Kaip ir taškinių įverčių radimo atveju šis metodas nepritaikomas, kai pakankamoji statistika neegzistuoja, arba kai nesugebame rasti jos skirstinio. Jeigu surastas taškinis parametro θ įvertis θˆ , kurio skirstinys asimptotiškai normalus, tai apytikslį pasikliautinąjį

109

intervalą prie pakankamai didelių n galime rasti naudodami normaliąją aproksimaciją. Tegu θˆ yra parametro θ įvertis, kuriam galioja centrinė ribinė teorema (žr., pavyzdžiui, momentų ar maksimalaus tikėtinumo metodais rastus įverčius):

θˆ − θ Vθˆ

⇒ Z ∼ N (0,1),

n → ∞.

Tada galime parašyti apytikslę lygybę   θˆ − θ P − z α / 2 < < zα / 2  ≈ Q = 1 − α ,   Vθˆ

(4.22)

čia zα yra standartinio normalaus skirstinio α lygmens kritinė reikšmė. Jeigu vardiklyje po šaknimi parašyta dispersija nepriklauso nuo nežinomo parametro, tai perrašę skliaustuose parašytas nelygybes θ atžvilgiu, gausime jo apytikslį pasikliautinąjį intervalą. Jeigu Vθˆ priklauso nuo vienintelio vienmačio parametro θ , tai skliaustuose parašytas nelygybes irgi kartais galime perrašyti θ atžvilgiu. Kito metodo, kurį naudojant galima iš (4.22) rasti apytikslį pasikliautinąją intervalą, ˆ θˆ . Paprasčiausiu atveju dispersijos esmė yra ta, kad dispersija Vθˆ keičiama jos įverčiu V Vθˆ išraiškoje esantys parametrai tiesiog pakeičiami jų įverčiais. Šiek tiek tikslesnį atsakymą gauname, kai pavyksta sukonstruoti dispersijos Vθˆ nepaslinktą įvertį. 2.Taškinių parametrų įverčių ir pasikliautinųjų intervalų pavyzdžiai Šiame skyrelyje pateiksime kai kurių tikimybinių skirstinių parametrų taškinių įverčių ir pasikliautinųjų intervalų pavyzdžius (žr. [5]). 2.1. Vienmatis normalusis skirstinys Tegu imtis X 1 , X 2 ,..., X n yra gauta stebint a.d. X, kurio skirstinys yra normalusis su vidurkiu µ ir dispersija σ 2 , t.y. X ~ N ( µ , σ 2 ) . Vidurkio µ NMD įvertis yra

µˆ = X =

1 n ∑ Xi. n i =1

(4.23)

Praktikoje vidurkis dažniausiai nežinomas, todėl dispersijos ir standartinio nuokrypio įverčius pateiksime tik šiuo atveju (įverčių išraiškas, kai vidurkis žinomas žr. [5]). Dispersijos σ 2 NMD įvertis, kai vidurkis µ nežinomas yra

σˆ 2 = s 2 =

1 n (X i − X )2. ∑ n − 1 i =1

(4.24)

Standartinio nuokrypio σ įvertis σˆ = σˆ 2 yra paslinktas. Standartinio nuokrypio σ NMD įvertį, kai vidurkis nežinomas gauname taip:

σˆ =

s , M n −1 = M n −1

110

2 Γ ( n / 2) . n − 1 Γ((n − 1) / 2)

(4.25)

4.1 p a v y z d y s. Modeliuokime a.d. X ~ N (5, 4) dydžio n = 100 imtį: %LET n=100; %LET miu=5; %LET sigma=2; DATA normalusis; DO i=1 TO &n; Y=&miu+&sigma*NORMAL(10); OUTPUT; END; RUN;

Apskaičiuokime parametrų taškinius įverčius: PROC MEANS DATA=normalusis MEAN VAR STD; OUTPUT OUT=rezultatas MEAN(Y)=vid_y VAR(Y)=dispers_y STD(Y)=std_y; VAR Y; RUN;

Output lange gauname tokį rezultatą: Mean 5.0332621

Variance 3.9820280

Std Dev 1.9955019

Taigi, vidurkio µ NMD įvertis (4.23) yra 5.0332621; dispersijos σ 2 NMD įvertis (4.24) yra 3.9820280; standartinio nuokrypio σ įvertis (paslinktas) yra 1.9955019. Apskaičiuokime standartinio nuokrypio σ nepaslinktą įvertį. Editor lange įveskime: DATA std; SET rezultatas; pag=sqrt(2/(&n-1))*gamma(&n/2)/gamma((&n-1)/2); std_nepaslinktas=std_y/pag; KEEP std_nepaslinktas; RUN;

Lentelėje „std“ gauname nepaslinktą standartinio nuokrypio įvertį: 2.0005473739. Kai dispersija σ 2 nežinoma, tai vidurkio µ pasikliautinasis intervalas su pasikliovimo lygmeniu Q = 1 − α yra:

 s s  ( µ , µ ) =  X − t (1−α / 2,n −1) , X + t (1−α / 2,n −1) , n n 

(4.26)

čia t (1−α / 2,n −1) - Stjudento skirstinio su n-1 laivės laipsniu (1-α/2)-tasis kvantilis, X ir s apibrėžti (4.23) ir (4.24) atitinkamai. Kai vidurkis µ nežinomas, tai dispersijos σ 2 pasikliautinasis intervalas su pasikliovimo lygmeniu Q = 1 − α yra:

 s 2 (n − 1) 2 (σ , σ 2 ) =  2 , χ  (1−α / 2,n −1)

s 2 (n − 1)  , χ (2α / 2,n −1) 

(4.27)

čia t ( P ,n −1) yra chi-kvadrato skirstinio su n-1 laivės laipsniu P-tasis kvantilis, s apibrėžtas (4.24). Kadangi σ = σ 2 yra monotoniška σ 2 funkcija, tai standartinio nuokrypio pasikliautinąjį intervalą gauname (4.27) formulės: 2 (σ , σ ) =  σ , σ 2 .  

111

(4.28)

Vidurkio µ pasikliautinąjį intervalą galima apskaičiuoti su SAS procedūra MEANS. Jeigu nurodome CLM, tai apskaičiuos dvipusį vidurkio µ pasikliautinąjį intervalą su pasikliovimo lygmeniu Q = 1 − α (4.26). Pagal nutylėjimą pasikliovimo lygmuo 95%, t.y. α=0.05. Jeigu norime apskaičiuoti pasikliautinąjį intervalą su kitokiu pasikliovimo lygmeniu, tai nurodome ALPHA=α, pavyzdžiui, jei parašysime PROC MEANS DATA=d1 ALPHA=0.1 CLM; VAR x; RUN;

tai bus apskaičiuotas dvipusis vidurkio pasikliautinasis intervalas su pasikliovimo lygmeniu 0.90. Jeigu nurodome LCLM, tai apskaičiuos apatinį vidurkio pasikliautinojo intervalo rėžį. Vidurkio vienpusio pasikliautinojo intervalo su pasikliovimo lygmeniu (1-α) apatinis rėžis yra: s µ = X − t (1−α ,n−1) . (4.29) n Jeigu nurodome UCLM, tai apskaičiuos viršutinį vidurkio pasikliautinojo intervalo rėžį. Vidurkio vienpusio pasikliautinojo intervalo su pasikliovimo lygmeniu (1-α) viršutinis rėžis yra: s µ = X + t (1−α ,n−1) . (4.30) n 4.1 p a v y z d y s (tęsinys). Apskaičiuokime vidurkio pasikliautinąjį intervalą su pasikliovimo lygmeniu 0.99. Editor lange parašykime: PROC MEANS DATA=normalusis ALPHA=0.01 MEAN CLM; VAR Y; RUN;

Output lange gauname: The MEANS Procedure Analysis Variable : Y

Mean 5.0332621

Lower 99% CL for Mean 4.5091624

Upper 99% CL for Mean 5.5573618

Vidurkio taškinis įvertis yra 5.0332621, o vidurkio 99% pasikliautinasis intervalas yra (4.5091624, 5.5573618). Jeigu nebūtume nurodę ALPHA=0.01, tai būtų apskaičiuotas vidurkio 95% pasikliautinasis intervalas. Su procedūra UNIVARIATE galima apskaičiuoti vidurkio, dispersijos, standartinio nuokrypio ir kvantilių pasikliautinuosius intervalus normaliajam skirstiniui, o taip pat kvantilių pasikliautinuosius intervalus, kai skirstinys nėra normalusis. Procedūroje galima nurodyti tokias pasirinktis: ALPHA=α, čia α=1-Q, Q – pasikliovimo lygmuo; CIBASIC <( < ALPHA = α > ) > vidurkio, standartinio nuokrypio ir dispersijos pasikliautinasis intervalas. Tariama, kad duomenų skirstinys normalusis. Ši prielaida didelėms imtims nėra būtina, nes galime naudoti centrinę ribinę teoremą, t.y. aproksimuojame normaliu skirstiniu. Tipas=LOWER | UPPER | TWOSIDED (apatinis vienpusio pasikliautinojo intervalo rėžis | viršutinis vienpusio pasikliautinojo intervalo rėžis | dvipusis pasikliautinasis intervalas; pagal nutylėjimą TWOSIDED). CIPCTLNORMAL <(< TYPE = tipas > < ALPHA = α >) > kvantilių pasikliautinieji intervalai. Tariama, kad duomenų skirstinys normalusis. Tipas=LOWER | UPPER | TWOSIDED (apatinis vienpusio pasikliautinojo intervalo rėžis | viršutinis vienpusio

112

pasikliautinojo intervalo rėžis | dvipusis pasikliautinasis intervalas; pagal nutylėjimą TWOSIDED). CIPCTLDF <( )> kvantilių pasikliautinieji intervalai (nereikalaujama, kad duomenų skirstinys normalusis). Tipas=LOWER| UPPER | SYMMETRIC | ASYMMETRIC (apatinis vienpusio pasikliautinojo intervalo rėžis | viršutinis pasikliautinojo intervalo rėžis | simetriškas dvipusis pasikliautinasis intervalas | asimetriškas dvipusis pasikliautinasis intervalas; pagal nutylėjimą SYMMETRIC), pavyzdžiui, 1) PROC UNIVARIATE data=d1 CIBASIC; apskaičiuos vidurkio, dispersijos ir standartinio nuokrypio dvipusį pasikliautinąjį intervalą su pasikliovimo lygmeniu 0.95. 2) PROC UNIVARIATE data=d1 CIBASIC (TYPE=LOWER ALPHA=0.1); apskaičiuos vidurkio, dispersijos ir standartinio nuokrypio apatinį vienpusio pasikliautinojo intervalo su pasikliovimo lygmeniu 0.90 rėžį. 4.1 p a v y z d y s (tęsinys). a) Apskaičiuokime vidurkio, dispersijos ir standartinio nuokrypio dvipusį 95% pasikliautinąjį intervalą; b) vienpusio 95% pasikliautinojo intervalo viršutinį rėžį; c) dvipusius kvantilių 90% pasikliautinuosius intervalus. Editor lange parašykime: PROC UNIVARIATE DATA=normalusis CIBASIC; /* a punktas */ VAR Y; RUN; PROC UNIVARIATE DATA=normalusis CIBASIC(TYPE=UPPER) /* b,c punktai*/ CIPCTLNORMAL(ALPHA=0.1); VAR Y; RUN;

Pirmosios procedūros UNIVARIATE rezultatas (pateikiame tik dalį spausdinamų statistikų): The UNIVARIATE Procedure Variable: Y Basic Statistical Measures Location Variability Mean Median

5.033262 4.841455

Std Deviation Variance

1.99550 3.98203

Basic Confidence Limits Assuming Normality Parameter Estimate 95% Confidence Limits Mean Std Deviation Variance

5.03326 1.99550 3.98203

4.63731 1.75206 3.06973

5.42921 2.31813 5.37370

Antrosios procedūros UNIVARIATE rezultatas: The UNIVARIATE Procedure Variable: Y Basic Confidence Limits Assuming Normality Parameter Estimate Upper 95% CL Mean Std Deviation Variance

Quantile 100% Max 99% 95% 90% 75% Q3 50% Median

5.03326 1.99550 3.98203

5.36459 2.26201 5.11667

Quantiles (Definition 5) 90% Confidence Limits Estimate Assuming Normality 9.768708 9.714071 8.197070 7.850342 6.364037 4.841455

113

9.10420 7.85556 7.18178 6.03320 4.70193

10.38911 8.87767 8.07989 6.76861 5.36459

25% Q1 10% 5% 1% 0% Min

3.787134 2.279383 1.727020 0.927769 0.239332

3.29791 1.98663 1.18885 -0.32258

4.03333 2.88475 2.21096 0.96233

Gauname: a) vidurkio 95% dvipusis pasikliautinasis intervalas yra (4.63731, 5.42921); dispersijos 95% dvipusis pasikliautinasis intervalas yra (3.06973, 5.37370); standartinio nuokrypio 95% dvipusis pasikliautinasis intervalas yra (1.75206, 2.31813); b) vidurkio 95% vienpusio pasikliautinojo intervalo viršutinis rėžis yra 5.36459; dispersijos 95% vienpusio pasikliautinojo intervalo viršutinis rėžis yra 5.11667; standartinio nuokrypio 95% vienpusio pasikliautinojo intervalo viršutinis rėžis yra 2.26201; c) dešimtojo procentilio 95% dvipusis pasikliautinasis intervalas yra (1.98663, 2.88475); pirmojo kvartilio 95% dvipusis pasikliautinasis intervalas yra (3.29791, 4.03333) ir t.t.

2.2. Dvimatis normalusis skirstinys Tarkime, kad ( X i , Yi ), i = 1,..., n yra dydžio n imtis, gauta stebint atsitiktinį vektorių, kurio skirstinys yra dvimatis normalusis su vidurkių vektoriumi µ ir kovariacijų matrica Σ , t.y. ( X , Y ) ~ N 2 (µ, Σ) , čia

µ = ( µ1 , µ 2 ), − ∞ < µ1 , µ1 < +∞,  σ 11 = σ 12 Σ =   σ 12 = ρσ 1σ 2

σ 12 = ρσ 1σ 2  , 0 < σ 1 , σ 1 < +∞, | ρ |< 1. σ 22 = σ 22 

(4.31)

Parametrų µ1 , µ 2 , σ 12 , σ 22 taškiniai įverčiai randami panašiai kaip ir tuo atveju, kai skirstinys yra vienmatis normalusis (žr. 2.1 skyrelį):

µˆ 1 = X =

1 n 1 n ˆ µ X = Y = , ∑ i 2 ∑ Yi , n i =1 n i =1

1 n 1 n 2 2 2 ˆ σˆ = s = X − X σ = s = ( ) , ∑ i ∑ (Yi − Y ) 2 . 2 2 n − 1 i =1 n − 1 i =1 2 1

(4.32)

2 1

Koreliacijos koeficiento ρ įverčiu imamas jo empirinis analogas (Pirsono koreliacijos koeficientas): n

ρˆ = r =

∑(X

i

− X )(Yi − Y )

i =1

n

∑(X

i

− X)

i =1

,

n

∑ (Y

i

(4.33)

−Y )

i =1

čia X , Y apibrėžti (4.32). Koreliacijos koeficientą (4.33) galime apskaičiuoti su SAS procedūra CORR. Sintaksė: PROC CORR DATA=lentelė; VAR kintamieji; RUN;

VAR sakinyje nurodome kintamuosius, kurių koreliacijos koeficientus norime apskaičiuoti.

114

4.2 p a v y z d y s. Modeliuokime a.v. ( X , Y ) ~ N 2 (µ, Σ) dydžio n = 100 imtį, čia  4 1 .6  , t.y. ρ = 0.6 . Editor lange įveskime: µ = (2, 3), Σ =   1 .6 1  %LET n=100; %LET miu1=2; %LET miu2=3; %LET sigma1=2; %LET sigma2=1; %LET ro=0.6; DATA dvimatis; DO i=1 TO &n; X=&miu1+&sigma1*NORMAL(10); vid=&miu2+&ro*(&sigma2/&sigma1)*(X-&miu1); std=sqrt(&sigma2*(1-&ro*&ro)); Y=vid+std*NORMAL(10); OUTPUT; END; RUN;

Apskaičiuokime parametrų µ1 , µ 2 , σ 12 , σ 22 , ρ parašykime:

taškinius įverčius. Editor lange

PROC MEANS DATA=dvimatis MEAN VAR; VAR X Y; RUN; PROC CORR DATA=dvimatis; VAR X Y; RUN;

Output lange gauname: The MEANS Procedure Mean Std Dev

Variable X Y

Variable X Y

1.8581382 1.0639310

1.6761400 2.9474044

2

N 100 100

Variance

The CORR Procedure Variables: X

3.4526775 1.1319491

Y

Simple Statistics Std Dev Sum

Mean 1.67614 2.94740

1.85814 1.06393

167.61400 294.74044

Minimum

Maximum

-1.38379 0.68343

6.76871 5.55309

Pearson Correlation Coefficients, N = 100 Prob > |r| under H0: Rho=0 X Y X 1.00000 0.56355 <.0001 Y

0.56355

1.00000 <.0001

Gavome tokius taškinius įverčius: µˆ 1 = 1.67612, µˆ 2 = 2.94740, σˆ 12 = 3.4526775, σˆ 22 = 1.1319491, ρˆ = 0.56355 . Koreliacijos koeficiento empirinio analogo r, apibrėžto (4.33) tankis yra gana sudėtingas (žr. [5]), todėl praktikoje konstruojant r pasikliautinuosius intervalus dažniausiai naudojama Fišerio aproksimacija. Naudojamasi faktu, kad V − MV DV

⇒ Z ~ N (0,1),

čia 115

(4.34)

V =

MV =

DZ =

1 1+ r ln , 2 1− r

(4.35)

 ρ  3− ρ2 1 1+ ρ 1 − + ..., + ln 2 1 − ρ 2(n − 3)  4(n − 3) 

 1  2 − 6 ρ 2 + 3ρ 4 ρ2 1 − + .... − 2 n − 3  2(n − 3) 6(n − 3) 

Taikydami šią aproksimaciją ir apsiribodami pirmaisiais MV ir DV nariais, gauname apytikslį koreliacijos koeficiento ρ pasikliautinąjį intervalą su pasikliovimo lygmeniu Q = 1−α :

 e 2V1 − 1 e 2V2 − 1  , , 2V2 ( ρ , ρ ) =  2V1 + + e e 1 1  

(4.36)

čia V1 =

1 1+ r ln − z1−α / 2 2 1− r

1 n−3

, V2 =

1 1+ r ln + z1−α / 2 2 1− r

1 n−3

.

(4.37)

kur z1−α / 2 yra standartinio normalaus skirstinio (1-α/2)-tasis kvantilis. Pasikliautinąjį koreliacijos koeficiento ρ intervalą galima apskaičiuoti su SAS procedūra CORR. Ši procedūra apskaičiuoja (4.36) intervalą arba intervalą su pataisa, t.y. tokį pasikliautinąjį intervalą:

 e 2V1* − 1 e 2V2 * − 1  , ( ρ koreg , ρ koreg ) =  2V1* , 2V2 * e e 1 1 + +  

(4.38)

čia V1 * =

1 1+ r ln − w − z1−α / 2 2 1− r

1 n−3

, V2 * =

1 1+ r ln − w + z1−α / 2 2 1− r

1 n−3

.

(4.39)

čia w=

r . 2(n − 1)

(4.40)

Pasikliautinasis intervalas apskaičiuojamas, jeigu Proc sakinyje nurodome FISHER<(pasirinktys)>, čia pasirinktys: ALPHA=α, čia α=1-Q, Q – pasikliovimo lygmuo; TYPE=LOWER| UPPER | TWOSIDED (apatinis vienpusio pasikliautinojo intervalo rėžis | viršutinis pasikliautinojo intervalo rėžis | dvipusis pasikliautinasis intervalas; pagal nutylėjimą TWOSIDED, BIASADJ=YES|NO, jeigu nurodome „NO“, tai apskaičiuojamas pasikliautinasis intervalas (4.36), jeigu nurodome „YES“ arba šios parinkties nenurodome, tai naudojama pataisa ir apskaičiuojamas pasikliautinasis intervalas (4.38); jeigu skaičiuojamas (4.38) intervalas, tai papildomai dar spausdinamas toks koreliacijos koeficiento įvertis: rkoreg =

e 2 (V − w) − 1 , e 2 (V − w) + 1

čia V ir w apibrėžti (4.35) ir (4.40) atitinkamai.

116

(4.41)

4.2 p a v y z d y s (tęsinys). a) Apskaičiuokime koreliacijos koeficiento 95% pasikliautinąjį intervalą naudojant pataisą (žr. (4.38)). Editor lange įveskime: PROC CORR DATA=dvimatis FISHER; VAR X Y; RUN;

Output lange gauname: Pearson Correlation Statistics (Fisher's z Transformation)

Variable

With Variable

N

X

Y

100

Sample Correlation

Fisher's z

Bias Adjustment

Correlation Estimate

0.56355

0.63802

0.00285

0.56160

Pearson Correlation Statistics (Fisher's z Transformation)

Variable

With Variable

X

Y

95% Confidence Limits 0.410464

0.682713

p Value for H0:Rho=0 <.0001

Gauname: imties koreliacijos koeficientas r = 0.56355 ; Fisher‘s z apskaičiuojamas pagal (4.35) formulę; pataisa w = 0.00285 (žr. (4.40); Bias adjustment); koreguotas koreliacijos koeficiento įvertis rkoreg = 0.56160 (žr. (4.41); Correlation Estimate); koreliacijos koeficiento 95% pasikliautinasis intervalas (4.38) yra: ( ρ koreg , ρ koreg ) = (0.410464, 0.682713) .

b) Apskaičiuokime koreliacijos koeficiento 90% pasikliautinąjį intervalą (4.36), t.y. be pataisos. Editor lange įveskime: PROC CORR DATA=dvimatis FISHER(ALPHA=0.1 BIASADJ=NO); VAR X Y; RUN;

Output lange gauname: The CORR Procedure Pearson Correlation Statistics (Fisher's z Transformation)

Variable X

With Variable Y

N 100

Sample Correlation

Fisher's z

0.56355

0.63802

90% Confidence Limits 0.439015

0.666839

p Value for H0:Rho=0 <.0001

Gauname: imties koreliacijos koeficientas r = 0.56355 ; koreliacijos koeficiento 90% pasikliautinasis intervalas (4.36) yra: ( ρ , ρ ) = (0.439015, 0.666839 ) . 2.3. Binominis skirstinys

Tegu imtis X 1 , X 2 ,..., X n yra gauta stebint a.d. X, kurio skirstinys priklauso binominių skirstinių šeimai P = {B(1, p ), 0 < p < 1} , t.y. a.d. X gali įgyti tik dvi reikšmes. Binominio skirstinio parametro p įvertį galima apskaičiuoti su SAS procedūra FREQ (ši procedūra buvo aprašyta III sk. 1 skyrelyje). Šiame skyrelyje pateiksime pasirinktis, kurios naudojamos parametro p taškinio įverčio ir pasikliautinųjų intervalų apskaičiavimui. Jos rašomos TABLES sakinyje. Sintaksė: PROC FREQ DATA=lentelė; TABLES kintamasis / BINOMIAL(LEVEL=’reikšmė’); RUN;

čia kintamasis analizuojamas kintamasis (gali būti skaitinio arba simbolinio tipo), įgyjantis dvi reikšmes, reikšmė – nurodyto kintamojo reikšmė. Ši procedūra apskaičiuos: 1) tikimybės p = P{ X = r} įvertį

pˆ = nr / n, 117

(4.42)

čia r - nurodyta reikšmė, nr - reikšmių r skaičius, n – bendras stebėjimų skaičius; 2) tikimybės įverčio pˆ standartinį nuokrypį s = s pˆ =

pˆ (1 − pˆ ) / n ;

(4.43)

3) asimptotinį pasikliautinąjį p intervalą, kuris gaunamas naudojant normaliąją aproksimaciją. Asimptotinis tikimybės p pasikliautinasis intervalas su pasikliovimo lygmeniu Q = 1 − α yra ( p, p ) = ( pˆ − z1−α / 2 s, pˆ + z1−α / 2 s ),

(4.44)

čia z1−α / 2 yra standartinio normalaus skirstinio (1-α/2)-tasis kvantilis. Pagal nutylėjimą yra skaičiuojamas 95% pasikliautinasis intervalas. Kokį pasikliautinąjį intervalą skaičiuoti galima nurodyti su ALPHA=α, čia α=1-Q, Q – pasikliovimo lygmuo (ši pasirinktis rašoma TABLES sakinyje); 4) tikslų pasikliautinąjį p intervalą ( p, p ) = ( X α / 2 (n r , n − n r + 1), X 1−α / 2 (n r + 1, n − nr ),

čia X v yra beta skirstinio v-tasis kvantilis, nr - apibrėžtas (4.42). Jeigu TABLES sakinyje nurodome BINOMIALC(LEVEL=reikšmė), tai skaičiuojant asimptotinį p pasikliautinąjį intervalą yra naudojama tolydumo pataisa 1/2n, t.y. asimptotinis tikimybės p pasikliautinasis intervalas su pasikliovimo lygmeniu Q = 1 − α yra apskaičiuojamas taip: ( p koreg , p koreg ) = ( pˆ − ( z1−α / 2 s + 1 / 2n, pˆ + ( z1−α / 2 s + 1 / 2n)),

(4.45)

čia z1−α / 2 yra standartinio normalaus skirstinio (1-α/2)-tasis kvantilis. 4.3 p a v y z d y s. Modeliuokime a.d. X, kurio skirstinys yra binominis su parametrais 1 ir p=0.4, t.y. X~B(1,p) dydžio n = 50 imtį. Editor lange įveskime: %LET n=50; %LET p=0.4; DATA binominis; DO i=1 TO &n; X=ranbin(10,1,&p); OUTPUT; END; RUN;

Apskaičiuokime tikimybės p įvertį ir pasikliautinąjį intervalą su pasikliovimo lygmeniu 0.9. Editor lange parašome: PROC FREQ DATA=binominis; TABLES x / BINOMIAL(LEVEL=’0’) ALPHA=0.1; RUN;

Output lange gauname: The FREQ Procedure

X 0 1

Frequency

Percent

Cumulative Frequency

Cumulative Percent

24 26

48.00 52.00

24 50

48.00 100.00

Binomial Proportion for X = 0 Proportion

0.4800

118

ASE 90% Lower Conf Limit 90% Upper Conf Limit

0.0707 0.3638 0.5962

Exact Conf Limits 90% Lower Conf Limit 90% Upper Conf Limit

0.3573 0.6046

Sample Size = 50

Pirma spausdinama lentelė yra kintamojo x dažnių lentelė (tokias lentelės aptarėme III sk. 1 skyrelyje). Iš lentelės „Binomial Proportion for X=0“ gauname, kad tikimybės p įvertis (4.42) yra pˆ = n0 / n = 24 / 50 = 0.48; tikimybės įverčio pˆ standartinis nuokrypis s = s pˆ = 0.0707 (ASE; žr. (4.43)); asimptotinis pasikliautinasis p intervalas (žr. (4.44)) su

pasikliovimo lygmeniu 0.9 yra ( p, p ) = (0.3638, 0.5962); tikslus pasikliautinasis p intervalas (Exact Conf Limits) yra (0.3573, 0.6046). 2.4 Puasono skirstinys

Tegu imtis X 1 , X 2 ,..., X n yra gauta stebint a.d. X, kurio skirstinys yra Puasono su parametru λ. Parametro λ NMD įvertis yra

λˆ = X =

1 n ∑ Xi. n i =1

(4.46)

Parametro λ įvertį galime apskaičiuoti su procedūra MEANS arba UNIVARIATE. 4.4 p a v y z d y s. Modeliuokime a.d. X, kurio skirstinys yra Puasono su parametru λ=2 dydžio n = 100 imtį. Editor lange įveskime: %LET n=100; %LET lambda=2; DATA puasono; DO i=1 TO &n; X=ranpoi(10,&lambda); OUTPUT; END; RUN;

Apskaičiuokime parametro λ taškinį įvertį. Editor lange parašome: PROC MEANS DATA=puasono MEAN; VAR X; RUN;

Output lange gauname: The MEANS Procedure Analysis Variable : X Mean 2.1400000

Taigi, gauname, kad λˆ = 2.14. Parametro λ pasikliautinasis intervalas su pasikliovimo lygmeniu Q = 1 − α yra apskaičiuojamas taip: 1 2   1 (λ , λ ) =  χ α2 / 2 (2 S n ), χ 1−α / 2 (2 S n + 2) , 2n   2n

čia χ P2 yra chi-kvadrato skirstinio P-tasis kvantilis, S n = X 1 + ... + X n . 119

(4.47)

4.4 p a v y z d y s (tęsinys). Apskaičiuokime parametro λ pasikliautinąjį intervalą su pasikliovimo lygmeniu 0.95. Reikia parašyti programą, kuri apskaičiuotų (λ , λ ) , apibrėžtą (4.47). Editor lange parašome: %LET n=100; /* stebėjimų skaičius*/ %LET alpha=0.05; /* 0.95 pasikl. intervalas*/ PROC MEANS NOPRINT DATA=puasono; VAR X; /*analizuojamas kintamasis*/ OUTPUT OUT=intervalas SUM(X)=suma; /*apskaičiuojame reikšmių sumą*/ RUN; /*ir įrašome į lentelę intervalas*/ DATA intervalas; SET intervalas; lambda_apat=CINV(&alpha/2,2*suma)/2/&n; /*viršutinis intervalo rėžis */ lambda_virsut=CINV(1-&alpha/2,2*suma+2)/2/&n; /*apatinis intervalo rėžis*/ KEEP lambda_apat lambda_virsut; RUN;

Rezultatą gauname lentelėje „intervalas“; parametro λ pasikliautinasis intervalas su pasikliovimo lygmeniu 0.95 yra (1.8628677697, 2.4467383229). 2.5 Gama skirstinys

Tegu imtis X 1 , X 2 ,..., X n yra gauta stebint a.d. X, kurio skirstinys yra gama su parametrais λ>0 ir a>0, t.y. X tankis yra

f ( x | λ , a) =

λa Γ(a )

x a −1e −λx .

(4.47)

Parametrų λ ir a momentų metodu gauti įverčiai yra tokie (žr., pavyzdžiui, [5]):

λˆ = X / s 2 , aˆ = X 2 / s 2 ,

(4.48)

čia X , s 2 yra imties vidurkis ir dispersija. Parametrų λ ir a įverčius galime apskaičiuoti su procedūra MEANS arba UNIVARIATE. 4.5 p a v y z d y s. Modeliuokime a.d. X, kurio skirstinys yra gama su parametrais λ=0.5 ir a = 5 dydžio n = 200 imtį. Editor lange įveskime: DATA gama; DO i=1 TO 200; x=2*rangam(10,5); OUTPUT; END; RUN;

Apskaičiuokime parametrų λ ir a momentų metodu gautus įverčius (žr.(4.48)). Editor lange parašykime: PROC MEANS NOPRINT DATA=gama; VAR X; /*analizuojamas kintamasis*/ OUTPUT OUT=Param MEAN(X)=vid VAR(X)=disp; /*apskaičiuojame vidurkį ir*/ RUN; /*dispersiją; įrašome į lentelę Param*/ DATA Param; SET Param; lambda=vid/disp; /*parametro lambda įvertis */ a=(vid**2)/disp; /*parametro a įvertis*/ KEEP lambda a; RUN;

Rezultatą gauname lentelėje „Param“; parametro λ įvertis λˆ = 0.4867363039, parametro a įvertis aˆ = 4.9916562109 .

120

Ieškant parametrų įverčių maksimalaus tikėtinumo metodu reikia maksimizuoti maksimalaus tikėtinumo funkciją: n

L = L( X 1 , X 2 ,..., X n ; λ , a ) = ∏ i =1

λa Γ(a )

Xi

a −1 − λX i

e

.

(4.49)

Šis maksimizavimo uždavinys yra ekvivalentus tikėtinumo funkcijos L logaritmo maksimizavimo uždaviniui, t.y. reikia maksimizuoti funkciją n

ln L = ∑ li ,

(4.50)

i =1

čia li = (a − 1) ln X i − λX i + a ln λ − ln Γ(a ).

(4.51)

SAS yra procedūros, skirtos maksimizuoti (arba minimizuoti) funkcijas su tiesiniais arba netiesiniais apribojimais. Viena iš jų yra SAS/IML modulio procedūra IML. Kita procedūra, skirta funkcijų maksimizavimui (arba minimizavimui) yra SAS/OR modulio procedūra NLP. Pilną šių procedūrų aprašymą galima pasižiūrėti pagrindiniame meniu pasirinkus punktą Help→SAS Help and Documentation. Pateiksime pavyzdį, iliustruojantį kaip su procedūra NLP apskaičiuoti gama skirstinio parametrų maksimalaus tikėtinumo įverčius. 4.6 p a v y z d y s. Tarkime, kad turime 4.5 pavyzdyje modeliuotus duomenis. Apskaičiuokime parametrų λ ir a maksimalaus tikėtinumo įverčius. PROC NLP DATA=gama; MAX loglik; PARMS a=2, lambda=1; BOUNDS a > 1e-12, lambda > 1e-12; loglik=(a-1)*log(x)-x*lambda+a*log(lambda)-log(gamma(a)); run;

Naudojame sakinį MAX, nes reikia funkciją maksimizuoti; jame nurodome funkcijos, kurią maksimizuosime vardą; pati funkcija apibrėžiama vėliau (sakinyje prieš RUN). PARMS sakinyje nurodome parametrus (t.y. kintamuosius, kurių atžvilgiu maksimizuosime funkciją). BOUNDS sakinyje nurodome apribojimus (gama skirstinio parametrai turi būti didesni už nulį, todėl nurodome labai mažą teigiamą skaičių 1e-12). Output lange gauname (pateikiame tik dalį spausdinamų charakteristikų): PROC NLP: Nonlinear Maximization Optimization Results Parameter Estimates

N Parameter

Estimate

Gradient Objective Function

1 a 2 lambda

5.162675 0.503412

0.000000806 9.8321755E-8

Taigi, parametrų λ ir a maksimalaus tikėtinumo įverčiai yra λˆ = 0.503412, aˆ = 5.162675. 2.6 Beta skirstinys

Tegu imtis X 1 , X 2 ,..., X n yra gauta stebint a.d. X, kurio skirstinys yra beta su parametrais γ>0 ir η>0, t.y. X tankis yra

121

f ( x | γ ,η ) =

Γ(γ + η ) γ −1 x (1 − x)η −1 . Γ(γ )Γ(η )

(4.52)

Parametrų γ ir η momentų metodu gauti įverčiai yra tokie (žr., pavyzdžiui, [5]):  X (1 − X )   X (1 − X )  − 1, − 1, ηˆ = (1 − X ) 2 s2 s    

γˆ = X 

(4.53)

čia X , s 2 yra imties vidurkis ir dispersija. Parametrų γ ir η įverčius galime apskaičiuoti su procedūra MEANS arba UNIVARIATE. 4.6 p a v y z d y s. Modeliuokime a.d. X, kurio skirstinys yra beta su parametrais γ=1.5 ir η = 3 dydžio n = 200 imtį. Editor lange įveskime: DATA beta; call streaminit(10); DO i=1 TO 200; x=rand(’BETA’,1.5,3); OUTPUT; END; RUN;

Apskaičiuokime parametrų γ ir η momentų metodu gautus įverčius (žr.(4.53)). Editor lange parašykime: PROC MEANS NOPRINT DATA=beta; VAR X; /*analizuojamas kintamasis*/ OUTPUT OUT=Param MEAN(X)=vid VAR(X)=disp; /*apskaičiuojame vidurkį ir*/ RUN; /*dispersiją; įrašome į lentelę Param*/ DATA Param; SET Param; gama=vid*(vid*(1-vid)/disp-1); /*parametro gama įvertis */ eta=(1-vid)*(vid*(1-vid)/disp-1); /*parametro eta įvertis*/ KEEP gama eta; RUN;

Rezultatą gauname lentelėje „Param“; parametro γ įvertis γˆ = 1.3893051547, parametro η įvertis ηˆ = 2.80778468 . Ieškant parametrų įverčių maksimalaus tikėtinumo metodu reikia maksimizuoti maksimalaus tikėtinumo funkciją: n

L = L( X 1 , X 2 ,..., X n ; γ ,η ) = ∏ i =1

Γ(γ + η ) γ −1 X i (1 − X i )η −1 . Γ(γ )Γ(η )

(4.54)

Šis maksimizavimo uždavinys yra ekvivalentus tikėtinumo funkcijos L logaritmo maksimizavimo uždaviniui, t.y. reikia maksimizuoti funkciją n

ln L = ∑ li ,

(4.55)

i =1

čia li = ln Γ(γ + η ) − ln Γ(γ ) − ln Γ(η ) + (γ − 1) ln X i + (η − 1) ln(1 − X i ).

(4.56)

Kaip ir gama skirstinio atveju (žr. 2.5 skyrelį) ieškant maksimalaus tikėtinumo įverčių galima naudoti procedūrą NLP. 4.7 p a v y z d y s. Tarkime, kad turime 4.6 pavyzdyje modeliuotus duomenis. Apskaičiuokime parametrų γ ir η maksimalaus tikėtinumo įverčius.

122

PROC NLP DATA=beta; MAX loglik; PARMS gama=2, eta=2; BOUNDS gama > 1e-12, eta > 1e-12; loglik=log(gamma(gama+eta))-log(gamma(gama))-log(gamma(eta))+ (gama-1)*log(x)+(eta-1)*log(1-x); run;

Naudojame sakinį MAX, nes reikia funkciją maksimizuoti; jame nurodome funkcijos, kurią maksimizuosime vardą; pati funkcija apibrėžiama vėliau (sakinyje prieš RUN). PARMS sakinyje nurodome parametrus (t.y. kintamuosius, kurių atžvilgiu maksimizuosime funkciją). BOUNDS sakinyje nurodome apribojimus (beta skirstinio parametrai turi būti didesni už nulį, todėl nurodome labai mažą teigiamą skaičių 1e-12). Output lange gauname (pateikiame tik dalį spausdinamų charakteristikų): PROC NLP: Nonlinear Maximization Optimization Results Parameter Estimates

N Parameter 1 gama 2 eta

Estimate 1.499573 2.975147

Gradient Objective Function 0.000003748 0.000000557

Value of Objective Function = 53.778768607

Taigi, parametrų γ ir η maksimalaus tikėtinumo įverčiai yra γˆ = 1.499573, ηˆ = 2.975147. V skyrius. PARAMETRINIŲ HIPOTEZIŲ TIKRINIMO UŽDAVINIAI 1. Pagrindinės sąvokos ir apibrėžimai

Bet koks teiginys apie stebimo a.d. tikimybinio skirstinio parametrų reikšmes yra vadinamas parametrine hipoteze. Tarkime, kad X 1 , X 2 ,..., X n yra imtis, gauta stebint a.d. X, kurio skirstinys priklauso šeimai P = {Pθ , θ ∈ Θ} , čia θ = (θ 1 ,...,θ k ) nežinomas parametras, o Θ ⊂ R k . Tarkime, kad Θ 0 yra aibės Θ poaibis. Parametrine hipoteze H 0 vadiname teiginį: H 0 : θ ∈ Θ0 . Tvirtinimą, kuris priešpastatomas hipotezei, vadiname alternatyva: H1 : θ ∉ Θ 0 . Priimdami arba atmesdami hipotezę H 0 galime padaryti dviejų rūšių klaidas. Jos vadinamos pirmos ir antros rūšies klaidomis. Pirmos (I) rūšies klaida: hipotezė H 0 atmetama, kai ji yra teisinga. Antros (II) rūšies klaida: hipotezė H 0 priimama, kai ji yra klaidinga. Taisyklė, kuria remiantis darome išvadą apie hipotezės teisingumą arba klaidingumą, vadinama statistiniu kriterijumi. Kriterijus yra tuo geresnis, kuo mažesnės abiejų rūšių klaidų tikimybės. Dažniausiai daroma taip: pirmos rūšies klaidos tikimybė yra fiksuojama, t.y. pasirenkamas skaičius α (reikšmingumo lygmuo; mažas teigiamas skaičius; dažniausiai imama α = 0,1; 0,05; 0,01 ) ir minimizuojama antros rūšies klaidos tikimybė su sąlyga, kad

123

pirmos rūšies klaidos tikimybė yra fiksuota ir lygi α. Reikšmingumo lygmuo, tai tikimybė su kuria sutinkame padaryti pirmos rūšies klaidą, t.y. atmesti teisingą hipotezę. Pavyzdžiui, jeigu pasirenkame α = 0,05, tai daug kartų tikrindami hipotezę vidutiniškai penkis kartus iš šimto teisingą hipotezę atmesime. Sprendimui priimti naudojama statistika T ( X 1 , X 2 ,..., X n ) vadinama kriterijaus statistika. Statistika T parenkama taip, kad jos skirstinys būtų žinomas, kai hipotezė H 0 teisinga. Priimti ar atmesti hipotezę yra sprendžiama atsižvelgiant į stebėtą statistikos reikšmę (realizaciją). Jeigu T realizacija patenka į kritinę (atmetimo) sritį W, tenkinančią tam tikras sąlygas, tai hipotezė H 0 atmetama. Dažniausiai yra skaičiuojama ne antrosios rūšies klaida, o jai priešingo įvykio tikimybė – kriterijaus galia 1-β (čia β - antros rūšies klaidos tikimybė), t.y. tikimybė atmesti hipotezę H 0 , kai ji klaidinga. Geresnis (galingesnis) tas kriterijus, kurio galia yra didesnė. Yra du alternatyvūs tikrinimo būdai. Kai turime statistines lenteles, tai hipotezių tikrinimui naudojame atitinkamo skirstinio kvantilius arba kritines reikšmes (α-toji kritinė reikšmė yra (1-α)-tasis kvantilis), kurias lyginame su stebėta statistikos reikšme. Statistiniai paketai apskaičiuoja P-reikšmę (P-value). Apskaičiuota P-reikšmė nepriklauso nuo pasirinkto reikšmingumo lygmens (t.y. turėdami P-reikšmę hipotezę galime tikrinti su kokiu norime reikšmingumo lygmeniu). P-reikšmė, tai tikimybė gauti didesnę statistikos reikšmę (alternatyvos kryptimi) negu iš tikrųjų buvo stebėta. Gautą P-reikšmę lyginame su pasirinktu reikšmingumo lygmeniu: jei P-reikšmė < α (reikšmingumo lygmuo), tai hipotezę atmetame; jei P-reikšmė ≥ α (reikšmingumo lygmuo), tai hipotezė neatmetama;

(5.1)

Kuo mažesnė P-reikšmė, tuo stipresnis akivaizdumas atmesti hipotezę. 2. Hipotezė apie vidurkio reikšmę

Tegu imtis X = ( X 1 , X 2 ,..., X n ) yra gauta stebint a.d. X, kurio skirstinys yra normalusis su vidurkiu µ ir dispersija σ 2 , t.y. X ~ N ( µ , σ 2 ) . Reikia patikrinti hipotezę H 0 , kad X vidurkio µ reikšmė lygi skaičiui µ 0 , t.y. H 0 : µ = µ 0 . Nagrinėsime du atvejus: 1) dispersija σ 2 yra žinoma; 2) dispersija σ 2 yra nežinoma. 2.1. Hipotezė apie vidurkio reikšmę, kai dispersija žinoma

Tarkime, kad dispersijos σ 2 reikšmė yra žinoma ir lygi σ 02 . Kritinė sritis sudaroma remiantis tuo, kad X − µ0 Z= n (5.2)

σ0

skirstinys yra standartinis normalusis (t.y. normalusis skirstinys su vidurkiu 0 ir dispersija 1), 1 n kai hipotezė H 0 : µ = µ 0 yra teisinga, čia X = ∑ X i . n i =1 1) Tarkime, kad reikia patikrinti hipotezę H 0 : µ = µ 0 (arba µ ≤ µ 0 ) su alternatyva H 1 : µ > µ 0 (vienpusė alternatyva). Kritinė sritis W: hipotezė H 0 atmetama, kai Z> z α , čia Z – apibrėžta (5.2), z α yra standartinio normalaus skirstinio α-toji kritinė reikšmė. 5.1 pav. schematiškai yra pažymėta kritinė sritis, reikšmingumo lygmuo, kritinė reikšmė, P-reikšmė. 5.1 a) pav. pavaizduota situacija, kai statistikos reikšmė pateko į kritinę sritį, t.y. hipotezė atmetama. 5.1 b) pav. pavaizduota situacija, kai statistikos reikšmė

124

nepateko į kritinę sritį, t.y. hipotezė priimama. Ši schema vaizdžiai iliustruoja tikrinimo būdą, kai P-reikšmė lyginama su pasirinktu reikšmingumo lygmeniu α. Kai P-reikšmė < α, tai statistikos Z reikšmė pateko į kritinę sritį ir hipotezė atmetama (žr.5.1 pav., a); kai P-reikšmė > α, tai statistikos Z reikšmė nepateko į kritinę sritį ir hipotezė priimama (žr.5.1 pav., b).

a)

b)

5.1 pav. Kritinė sritis, kritinė reikšmė, P-reikšmė

5.2 pav. schematiškai pavaizduota kritinė sritis, reikšmingumo lygmuo, kriterijaus galia (pažymėjimai tokie patys kaip 1 skyrelyje).

5.2 pav. Kritinė sritis, reikšmingumo lygmuo, kriterijaus galia

2) Tarkime, kad reikia patikrinti hipotezę H 0 : µ = µ 0 (arba µ ≥ µ 0 ) su alternatyva H 1 : µ < µ 0 (vienpusė alternatyva). Kritinė sritis W: hipotezė H 0 atmetama, kai Z<- z α , čia Z – apibrėžta (5.2), z α yra standartinio normalaus skirstinio α-toji kritinė reikšmė. 3) Tarkime, kad reikia patikrinti hipotezę H 0 : µ = µ 0 su alternatyva H 1 : µ ≠ µ 0 (dvipusė alternatyva). Kritinė sritis W: hipotezė H 0 atmetama, kai |Z|> z α / 2 , čia Z – apibrėžta (5.2), z α yra standartinio normalaus skirstinio α-toji kritinė reikšmė.

125

5.1 p a v y z d y s. Sukurkime duomenų lentelę su tokiu Data žingsniu: DATA normalusis; DO i=1 TO 100; Y=5+NORMAL(10); OUTPUT; END; RUN;

Patikrinkime hipotezę, kad vidurkis lygus 5 su alternatyva, kad nelygus; tariame, kad dispersija yra žinoma ir lygi 1; imkime reikšmingumo lygmenį 0,05. Editor lange parašykime: PROC MEANS DATA=normalusis N MEAN; OUTPUT OUT=rezultatas MEAN(Y)=vid_y N(Y)=N; VAR Y; RUN; DATA rezultatas; SET rezultatas; Z=sqrt(N)*(vid_y-5)/1; krit_r=PROBIT(1-0.05/2); KEEP Z krit_r; RUN;

Lentelėje „rezultatas“ gauname, kad kriterijaus statistikos reikšmė Z = 0.1663105735 , o kritinė reikšmė zα / 2 = z 0.05 / 2 = 1.9599639845. Statistikos reikšmė nepateko į kritinę sritį, todėl galime teigti: hipotezė H 0 : µ = 5 su alternatyva H 1 : µ ≠ 5 yra priimama su reikšmingumo lygmeniu α = 0.05. Hipotezę apie vidurkio lygybę skaičiui galima patikrinti naudojant vidurkio pasikliautinąjį intervalą. Tarkime, kad reikia patikrinti hipotezę H 0 : µ = µ 0 (arba µ ≤ µ 0 ) su alternatyva H 1 : µ > µ 0 ; reikšmingumo lygmuo α . Tarkime, kad µ yra vienpusio vidurkio µ pasikliautinojo intervalo su pasikliovimo lygmeniu 1- α apatinis rėžis. Tada hipotezė H 0 atmetama su reikšmingumo lygmeniu α , jei µ 0 < µ . Tarkime, kad reikia patikrinti hipotezę H 0 : µ = µ 0 (arba µ ≥ µ 0 ) su alternatyva H 1 : µ < µ 0 ; reikšmingumo lygmuo α . Tarkime, kad µ

yra vienpusio vidurkio µ pasikliautinojo intervalo su pasikliovimo lygmeniu 1- α viršutinis rėžis. Tada hipotezė H 0 atmetama su reikšmingumo lygmeniu α , jei µ 0 > µ . Tarkime, kad reikia patikrinti hipotezę H 0 : µ = µ 0 su alternatyva H 1 : µ ≠ µ 0 ; reikšmingumo lygmuo α . Tarkime, kad ( µ , µ ) yra vidurkio µ pasikliautinasis intervalas su pasikliovimo lygmeniu 1- α . Tada hipotezė H 0 atmetama su reikšmingumo lygmeniu α , jei µ 0 < µ arba µ 0 > µ . 5.1 p a s t a b a. Analogiškai galima patikrinti hipotezę apie bet kokio kito parametro reikšmes, t.y. jeigu sukonstravome parametro pasikliautinąjį intervalą, tai galime patikrinti hipotezę apie to parametro reikšmę. 2.2. Hipotezė apie vidurkio reikšmę, kai dispersija nežinoma

Tarkime, kad dispersijos σ 2 reikšmė yra nežinoma. Kritinė sritis sudaroma remiantis tuo, kad X − µ0 T = n (5.3) s skirstinys yra Stjudento skirstinys su n-1 laisvės laipsniu, kai hipotezė H 0 : µ = µ 0 yra n

teisinga, čia X = ∑ X i , s = i =1

1 n ( X i − X )2. ∑ n − 1 i =1

126

1) Tarkime, kad reikia patikrinti hipotezę H 0 : µ = µ 0 (arba µ ≤ µ 0 ) su alternatyva H1 : µ > µ 0 . Kritinė sritis W: hipotezė H 0 atmetama, kai T> t α , čia T – apibrėžta (5.3), t α yra Stjudento skirstinio su n-1 laisvės laipsniu α-toji kritinė reikšmė. 2) Tarkime, kad reikia patikrinti hipotezę H 0 : µ = µ 0 (arba µ ≥ µ 0 ) su alternatyva H1 : µ < µ 0 . Kritinė sritis W: hipotezė H 0 atmetama, kai T<- t α , čia T – apibrėžta (5.3), t α yra Stjudento skirstinio su n-1 laisvės laipsniu α-toji kritinė reikšmė. 3) Tarkime, kad reikia patikrinti hipotezę H 0 : µ = µ 0 su alternatyva H 1 : µ ≠ µ 0 . Kritinė sritis W: hipotezė H 0 atmetama, kai |T|> t α / 2 , čia T – apibrėžta (5.3), t α yra Stjudento skirstinio su n-1 laisvės laipsniu α-toji kritinė reikšmė. Su procedūra MEANS galima patikrinti hipotezę apie vidurkio lygybę nuliui, kai dispersija nežinoma. Jeigu norime patikrinti hipotezę H 0 : µ = 0 su alternatyva H 1 : µ ≠ 0 , tai PROC sakinyje reikia nurodyti: T (spausdins kriterijaus statistikos reikšmę, žr.(5.3)), PROBT (spausdins dvipusę P-reikšmę; žr. 5.3 pav.).

5.3 pav. Dvipusė P-reikšmė

5.2 p a s t a b a. 1) Jeigu norime patikrinti hipotezę su vienpuse dešinine alternatyva (t.y. H 1 : µ > µ 0 ), tai: a) kai apskaičiuota kriterijaus statistikos T reikšmė yra neigiama, tai hipotezė priimama su bet kokiu reikšmingumo lygmeniu α mažesniu už 0.5 (žr. 5.4 pav); b) kai apskaičiuota kriterijaus statistikos T reikšmė yra teigiama, tai gautą dvipusę P-reikšmę PROBT daliname pusiau ir lyginame su pasirinktu reikšmingumo lygmeniu α; 2) Jeigu norime patikrinti hipotezę su vienpuse kairine alternatyva (t.y. H 1 : µ < µ 0 ), tai: a) kai apskaičiuota kriterijaus statistikos T reikšmė yra teigiama, tai hipotezė priimama su bet kokiu reikšmingumo lygmeniu α mažesniu už 0.5 (žr. 5.5 pav); b) kai apskaičiuota kriterijaus statistikos T reikšmė yra neigiama, tai gautą dvipusę P-reikšmę PROBT daliname pusiau ir lyginame su pasirinktu reikšmingumo lygmeniu α.

5.4 pav. Dešininė alternatyva, T - neigiama

127

5.5 pav. Kairinė alternatyva, T - teigiama

5.2 p a v y z d y s. Sukurkime duomenų lentelę su tokiu Data žingsniu: DATA normalusis; DO i=1 TO 100; Y=5+NORMAL(10); OUTPUT; END; RUN;

Patikrinkime hipotezę, kad vidurkis lygus nuliui su alternatyva, kad nelygus; tariame, kad dispersija yra nežinoma; imkime reikšmingumo lygmenį 0,05. Editor lange parašykime: PROC MEANS DATA=normalusis T PROBT; VAR Y; RUN; RUN;

Output lange gauname tokį rezultatą: The MEANS Procedure Analysis Variable : Y t Value

Pr > |t|

50.28

<.0001

Gauname, kad kriterijaus statistikos reikšmė T = 50.28 (t value), dvipusė P-reikšmė (Pr>|t|) yra mažesnė už 0.0001, taigi, hipotezė H 0 : µ = 0 yra atmetama su reikšmingumo lygmeniu α = 0.05. Su procedūra UNIVARIATE galima patikrinti hipotezę apie vidurkio reikšmę, kai dispersija nežinoma. Jeigu norime patikrinti hipotezę H 0 : µ = µ 0 su alternatyva H 1 : µ ≠ µ 0 , tai Proc sakinyje reikia nurodyti MU0= µ 0 , pagal nutylėjimą µ 0 =0. Jeigu norime patikrinti hipotezę su vienpuse alternatyva, tai naudojame metodą, pateiktą 5.2 pastaboje. 5.3 p a v y z d y s. Buvo išmatuotas 24 atsitiktinai atrinktų vaikų ūgis.Gauti tokie rezultatai (cm): 124 122 123 134 124 123 121 124 128 123 126 125 131 119 122 125 130 122 125 121 132 128 131 127 Sukurkime duomenų lentelę su tokiu Data žingsniu: DATA vaikai; INFILE ’c:\vaikai.txt’; INPUT ugis @@;

a) Ar galime teigti, kad vidutinis vaikų ūgis yra nemažesnis už 127 cm? Taigi, reikia patikrinti hipotezę H 0 : µ ≥ 127 su alternatyva H 1 : µ < 127. Tarkime, kad reikšmingumo lygmuo α = 0.05. Naudosime procedūrą UNIVARIATE. Editor lange įveskime: PROC UNIVARIATE DATA=vaikai MU0=127; VAR ugis; RUN;

128

Output lange gauname lentelę „Tests for Location: Mu0=127“. Pirmoje šios lentelės eilutėje (paryškinta) spausdinama kriterijaus statistika (5.3) ir dvipusė P-reikšmė, t.y. Preikšmė, skirta patikrinti hipotezę H 0 : µ = µ 0 su alternatyva H 1 : µ ≠ µ 0 , µ = 127 . Pagal uždavinio sąlygą reikia patikrinti hipotezę su vienpuse kairine alternatyva, todėl iš pradžių žiūrime į kriterijaus statistikos ženklą; T neigiama; apskaičiuotą dvipusę P-reikšmę (p Value) 0.0607 daliname iš 2 ir lyginame su pasirinktu reikšmingumo lygmeniu α. Gauname 0.03<0.05, todėl hipotezę atmetame su reikšmingumo lygmeniu 0.05. Taigi, vidutinis vaikų ūgis mažesnis už 127. Tests for Location: Mu0=127 Test

-Statistic-

-----p Value------

Student's t Sign Signed Rank

t M S

Pr > |t| Pr >= |M| Pr >= |S|

-1.97205 -4.5 -60

0.0607 0.0931 0.0658

b) Ar galime teigti, kad vidutinis vaikų ūgis yra 125 cm? Taigi, reikia patikrinti hipotezę H 0 : µ = 125 su alternatyva H 1 : µ ≠ 125. Tarkime, kad reikšmingumo lygmuo α = 0.05. Naudosime procedūrą UNIVARIATE. Editor lange įveskime: PROC UNIVARIATE DATA=vaikai MU0=125; VAR ugis; RUN;

Output lange gauname lentelę „Tests for Location: Mu0=125“, kurios pirmoje eilutėje (paryškinta) spausdinama kriterijaus statistika T=0.518961 ir dvipusė P-reikšmė 0.6087, t.y. P-reikšmė, skirta patikrinti hipotezę H 0 : µ = 125 su alternatyva H 1 : µ ≠ 125 . Lyginame Preikšmę su reikšmingumo lygmeniu: 0.6087>0.05, todėl hipotezė: vidutinis vaikų ūgis lygus 125 priimama su reikšmingumo lygmeniu 0.05. The UNIVARIATE Procedure Variable: ugis Tests for Location: Mu0=125 Test

-Statistic-

-----p Value------

Student's t Sign Signed Rank

t M S

Pr > |t| Pr >= |M| Pr >= |S|

0.518961 -1.5 8.5

0.6087 0.6636 0.7749

Hipotezę apie vidurkio reikšmę galima patikrinti ir su SAS modulio STAT procedūra TTEST. Sintaksė: PROC TTEST DATA=lentelė ; VAR kintamasis; RUN;

čia kintamasis – analizuojamas kintamasis; nebūtina pasirinktis H0=reikšmė nurodo hipotetinę vidurkio reikšmę µ 0 , pagal nutylėjimą µ 0 =0. Jeigu norime patikrinti hipotezę su vienpuse alternatyva, tai naudojame metodą, pateiktą 5.2 pastaboje. 5.3 p a v y z d y s (tęsinys). Patikrinkime hipotezę, kad vidutinis vaikų ūgis yra 125 cm. Taigi, reikia patikrinti hipotezę H 0 : µ = 125 su alternatyva H 1 : µ ≠ 125. Tarkime, kad reikšmingumo lygmuo α = 0.05. Naudosime procedūrą TTEST. Editor lange įveskime: PROC TTEST DATA=vaikai H0=125; VAR ugis; RUN;

129

Output lange gauname: The TTEST Procedure

Variable ugis

N

Lower CL Mean

Mean

24

123.76

125.42

Statistics Upper CL Lower CL Mean Std Dev 127.08

3.057

T-Tests DF t Value 23 0.52

Variable ugis

Std Dev

Upper CL Std Dev

Std Err

3.9333

5.5175

0.8029

Pr > |t| 0.6087

Procedūra spausdina stebėjimų skaičių (N), vidurkio taškinį įvertį (Mean, žr.(4.23)) ir pasikliautinąjį intervalą (Lower CL Mean, Upper CL Mean; žr. (4.26)); standartinio nuokrypio vidurkio taškinį įvertį (Std Dev, žr.(4.24)) ir pasikliautinąjį intervalą (Lower CL Std Dev, Upper CL Std Dev; žr. (4.28)); pagal nutylėjimą yra apskaičiuojami pasikliautinieji intervalai su pasikliovimo lygmeniu 0,95; jeigu norime, kad apskaičiuotų su kitu pasikliovimo lygmeniu, tai Proc sakinyje nurodome ALPHA=1-Q, čia Q – pasikliovimo lygmuo. Lentelėje „T-Tests“ spausdinama kriterijaus statistikos reikšmė (t Value, žr.(5.3)), Preikšmė (Pr>|t|), skirta patikrinti hipotezę apie vidurkio reikšmę su dvipuse alternatyva. Kadangi P-reikšmė didesnė už pasirinktą reikšmingumo lygmenį 0.05, tai hipotezė: vidutinis vaikų ūgis lygus 125 priimama su reikšmingumo lygmeniu 0.05. 3. Hipotezė apie dispersijos reikšmę

Tegu imtis X = ( X 1 , X 2 ,..., X n ) yra gauta stebint a.d. X, kurio skirstinys yra normalusis su vidurkiu µ ir dispersija σ 2 , t.y. X ~ N ( µ , σ 2 ) . Reikia patikrinti hipotezę H 0 , kad X dispersijos σ 2 reikšmė lygi skaičiui σ 02 , t.y. H 0 : σ 2 = σ 02 . Nagrinėsime du atvejus: 1) vidurkis µ yra žinomas; 2) vidurkis µ yra nežinomas. 3.1. Hipotezė apie dispersijos reikšmę, kai vidurkis žinomas

Tarkime, kad vidurkio µ reikšmė yra žinoma ir lygi µ 0 . Kritinė sritis sudaroma remiantis tuo, kad n

2

Y =

∑(X

i

− µ0 )2

i =1

σ 02

=

s 02 n

σ 02

(5.4)

skirstinys yra chi-kvadrato skirstinys su n laisvės laipsnių, kai hipotezė H 0 : σ 2 = σ 02 yra 1 n ∑ (X i − µ0 )2. n i =1 1) Tarkime, kad reikia patikrinti hipotezę H 0 : σ 2 = σ 02 (arba σ 2 ≤ σ 02 ) su alternatyva

teisinga, čia s 02 =

H 1 : σ 2 > σ 02 (vienpusė dešininė alternatyva). Kritinė sritis W: hipotezė H 0 atmetama, kai Y 2 > χ α2 (n) , čia Y 2 – apibrėžta (5.4),

χ α2 (n) yra chi-kvadrato skirstinio su n laisvės laipsnių α-toji kritinė reikšmė. 2) Tarkime, kad reikia patikrinti hipotezę H 0 : σ 2 = σ 02 (arba σ 2 ≥ σ 02 ) su alternatyva H 1 : σ 2 < σ 02 (vienpusė kairinė alternatyva). Kritinė sritis W: hipotezė H 0 atmetama, kai Y 2 < χ 12−α (n) , čia Y 2 – apibrėžta (5.4),

χ α2 (n) yra chi-kvadrato skirstinio su n laisvės laipsnių α-toji kritinė reikšmė.

130

3) Tarkime, kad reikia patikrinti hipotezę H 0 : σ 2 = σ 02 alternatyva H 1 : σ 2 ≠ σ 02 (dvipusė alternatyva). Kritinė sritis W: hipotezė H 0 atmetama, kai Y 2 < χ 12−α / 2 (n) arba Y 2 > χ α2 / 2 (n) , čia

Y 2 – apibrėžta (5.4), χ v2 (n) yra chi-kvadrato skirstinio su n laisvės laipsnių v-toji kritinė reikšmė. 5.4 p a v y z d y s. Sukurkime duomenų lentelę su tokiu Data žingsniu: DATA normalusis; DO i=1 TO 100; X=2*NORMAL(10); OUTPUT; END; RUN;

Patikrinkime hipotezę, kad dispersija lygi 4 su alternatyva, kad nelygi (t.y. H 0 : σ = 4 alternatyva H 1 : σ 2 ≠ 4 ); tariame, kad vidurkis yra žinomas ir lygus 0; imkime reikšmingumo lygmenį 0,05. Editor lange parašykime: 2

%LET muo=0; /*vidurkio reikšmė žinoma ir lygi 0*/ %LET disp_0=4; /* hipotetinė dispersijos reikšmė 4 */ DATA normalusis; SET normalusis; U=X-&muo; RUN; PROC MEANS DATA=normalusis N USS; OUTPUT OUT=rezultatas USS(U)=kv_suma N(U)=N; VAR U; RUN; DATA rezultatas; SET rezultatas; Y_2=kv_suma/&disp_0; /* apskaičiuojame statistikos reikšmę*/ krit_k=CINV(0.05/2,N); /*kritinė reikšmė kairėje pusėje*/ krit_d=CINV(1-0.05/2,N); /*kritinė reikšmė dešinėje pusėje*/ KEEP Y_2 krit_k krit_d; RUN;

Procedūra MEANS apskaičiuoja ir įrašo į lentelę „rezultatas“ nekoreguotą kvadratų n

sumą USS = ∑ U i (čia U i = X i − µ 0 , µ 0 - žinomas vidurkis, X i - pradiniai duomenys) ir 2

i =1

stebėjimų skaičių n. Paskutiniame Data žingsnyje apskaičiuojame statistikos reikšmę ir kritinės srities kraštines reikšmes; funkcija CINV(v,n) apskaičiuoja chi-kvadrato skirstinio su n laisvės laipsnių v-tąjį kvantilį (apie kvantilių funkcijas žr.II sk., 4 skyrelį). Lentelėje „rezultatas“ gauname, kad kritinė sritis W yra tokia: hipotezė atmetama, kai gauta statistikos reikšmė mažesnė už 74.2219 arba didesnė už 129.5612; apskaičiuota statistikos reikšmė yra 98.5829, todėl hipotezė priimama su reikšmingumo lygmeniu 0.05. 3.2. Hipotezė apie dispersijos reikšmę, kai vidurkis nežinomas

Tarkime, kad vidurkio µ reikšmė yra nežinoma. Kritinė sritis sudaroma remiantis tuo, kad n

2

T =

∑(X

i

− X )2

i =1

=

σ 02

s 2 (n − 1)

σ 02

(5.5)

skirstinys yra chi-kvadrato skirstinys su n-1 laisvės laipsniu, kai hipotezė H 0 : σ 2 = σ 02 yra teisinga, čia s 2 =

1 n (X i − X )2. ∑ n − 1 i =1

131

Kritinės sritys įvairių alternatyvų atveju pateiktos 5.1 lentelėje. Šioje lentelėje T 2 , apibrėžta (5.5); α - pasirinktas reikšmingumo lygmuo; χ v2 (n − 1) yra chi-kvadrato skirstinio su n-1 laisvės laipsniu v-toji kritinė reikšmė. 5.1 lentelė. Kritinės sritys Alternatyva H1

σ ≠σ 2

2 0

Kritinė (atmetimo) sritis W:

T < χ 12−α / 2 (n − 1) arba T 2 > χ α2 / 2 (n − 1) 2

σ 2 > σ 02

T 2 > χ α2 (n − 1)

σ 2 < σ 02

T 2 < χ 12−α (n − 1)

5.5 p a v y z d y s. Sukurkime duomenų lentelę su tokiu Data žingsniu: DATA normalusis; DO i=1 TO 100; X=2+1.5*NORMAL(10); OUTPUT; END; RUN;

Ar galime teigti, kad standartinis nuokrypis nedidesnis už 1.5; reikšmingumo lygmuo 0.05; tariame, kad vidurkis nežinomas. Taigi, reikia patikrinti hipotezę H 0 : σ ≤ 1.5 su alternatyva H 1 : σ > 1.5 . Šis uždavinys ekvivalentus tokiam uždaviniui: reikia patikrinti hipotezę H 0 : σ 2 ≤ 2.25 su alternatyva H 1 : σ 2 > 2.25 (t.y. hipotezę apie dispersijos reikšmę). I būdas. Editor lange įveskime: %LET disp_0=2.25; /* hipotetinė dispersijos reikšmė 2.25 */ PROC MEANS DATA=normalusis N VAR; OUTPUT OUT=rezultatas VARUSS(X)=disp N(X)=N; VAR X; RUN; DATA rezultatas; SET rezultatas; T_2=disp*(n-1)/&disp_0; /* apskaičiuojame statistikos reikšmę*/ krit_r=CINV(1-0.05,N-1); /*kritinė reikšmė */ KEEP T_2 krit_r; RUN;

Lentelėje „rezultatas“ gauname, kad kritinė sritis W yra tokia: hipotezė atmetama, kai gauta statistikos reikšmė yra didesnė už 123.225; apskaičiuota statistikos reikšmė 98.555 yra mažesnė už kritinę reikšmę, todėl hipotezė priimama su reikšmingumo lygmeniu 0.05. II būdas. Hipotezę galime patikrinti naudojant dispersijos pasikliautinąjį intervalą. Kadangi reikia patikrinti hipotezę su dešinine alternatyva (reikšmingumo lygmuo 0.05), tai reikia apskaičiuoti vienpusio dispersijos σ 2 pasikliautinojo intervalo su pasikliovimo lygmeniu 1- α =1-0.05=0.95 apatinį rėžį σ 2 (žr. 2.1 skyrelį). Kritinė sritis: hipotezė H 0 2

atmetama su reikšmingumo lygmeniu α =0.05, jeigu σ 02 < σ . Naudosime procedūrą UNIVARIATE. Editor lange parašykime: PROC UNIVARIATE DATA=normalusis CIBASIC(TYPE=LOWER ALPHA=0.05); VAR X; RUN;

Output lange gauname: Basic Confidence Limits Assuming Normality Parameter

Estimate

Lower 95% CL

Mean Std Deviation Variance

2.02495 1.49663 2.23989

1.77645 1.34147 1.79954

132

Taigi, gavome, kad vienpusio dispersijos σ 2 pasikliautinojo intervalo su pasikliovimo 2 lygmeniu apatinis rėžis σ =1.79954. Kadangi jis mažesnis už σ 02 = 2.25 , tai hipotezė priimama su reikšmingumo lygmeniu 0.05. 4. Hipotezė apie proporciją

Tegu imtis X = ( X 1 , X 2 ,..., X n ) yra gauta stebint a.d. X, kurio skirstinys priklauso binominių skirstinių šeimai P = {B(1, p ), 0 < p < 1} , t.y. a.d. X gali įgyti tik dvi reikšmes. Reikia patikrinti hipotezę H 0 : p = p 0 . Šiame skyrelyje pateikiami du kriterijai: 1) tikslus kriterijus; taikomas, kai imtis maža; 2) normalioji aproksimacija; taikoma, kai imtis didelė. 4.1. Tikslus kriterijus

Kritinė sritis sudaroma remiantis tuo, kad n

Sn = ∑ X i

(5.6)

i =1

skirstinys yra binominis su parametrais n ir p 0 , kai hipotezė H 0 : p = p 0 yra teisinga. Kritinės sritys įvairių alternatyvų atveju pateiktos 5.2 lentelėje. Šioje lentelėje m – imties vienetų (įvykių) skaičius; α - pasirinktas reikšmingumo lygmuo. 5.2 lentelė. Kritinės sritys Alternatyva H 1 p ≠ p0

Kritinė (atmetimo) sritis W

P{S n ≥ m} < α / 2 arba P{S n ≤ m} < α / 2

p > p0

P{S n ≥ m} < α

p < p0

P{S n ≤ m} < α

Tikimybių iš 5.2 lentelės apskaičiavimui galima panaudoti SAS funkciją PROBBNML( p 0 ,n,m)= P( S n ≤ m) ; P( S n ≥ m) = 1 − P( S n ≤ m − 1) . Patikrinti hipotezę apie proporciją galima su procedūra FREQ. Reikia EXACT sakinyje nurodyti pasirinktį BINOMIAL. PROC FREQ DATA=lentelė; TABLES kintamasis / BINOMIAL (P=p0 LEVEL=’reikšmė’); EXACT BINOMIAL; RUN;

čia kintamasis analizuojamas kintamasis (gali būti skaitinio arba simbolinio tipo), įgyjantis dvi reikšmes; reikšmė – nurodyto kintamojo reikšmė; su P=p0 nurodome hipotetinę reikšmę p 0 (pagal nutylėjimą 0.5). Ši procedūra apskaičiuoja dvipusę P-reikšmę P2 ir vienpusę P-reikšmę P1 (žr.5.2 lentelę): P1 = min{P{S n ≤ m | p0 }, P{S n ≥ m | p0 }}; P2 = 2 P1 . (5.7) 5.6 p a v y z d y s. Modeliuokime a.d. X, kurio skirstinys yra binominis su parametrais 1 ir p=0.4, t.y. X~B(1,p) dydžio n = 50 imtį. Editor lange įveskime: %LET n=50; %LET p=0.4; DATA binominis; DO i=1 TO &n; X=ranbin(10,1,&p); OUTPUT; END; RUN;

133

Patikrinkime hipotezę, kad reikšmių „1“ yra 55%, reikšmingumo lygmuo 0.05. Suformuluojame hipotezę ir alternatyvą: hipotezė H 0 : p = 0.55 , alternatyva H 1 : p ≠ 0.55 . Editor lange parašome: PROC FREQ DATA=binominis; TABLES x / BINOMIAL(P=0.55 LEVEL=’1’); EXACT BINOMIAL; RUN;

Output lange gauname lentelę „Test of H0: Proportion = 0.55”. Žiūrime į “Exact tests” (tikslus kriterijus). Eilutėje „One-sided“ spaudinama vienpusė P-reikšmė, eilutėje „Twosided“ spaudinama dvipusė P-reikšmė. Reikia patikrinti hipotezę su dvipuse alternatyva, todėl dvipusę P-reikšmę 0.7732 lyginame su reikšmingumo lygmeniu 0.05, gauname, kad hipotezė neatmetama (0.7732>0.05). The FREQ Procedure Binomial Proportion for X = 1 Test of H0: Proportion = 0.55 ASE under H0 Z One-sided Pr < Z Two-sided Pr > |Z|

0.0704 -0.4264 0.3349 0.6698

Exact Test OneOne-sided Pr <= P TwoOne-sided Two-sided = 2 * One

0.3866 0.7732

Sample Size = 50

4.2. Normalioji aproksimacija

Naudojama statistikos S n aproksimacija normaliuoju skirstiniu. Kriterijaus statistika Z=

m − np 0 np 0 (1 − p 0 )

=

pˆ − p 0 p 0 (1 − p 0 ) / n

,

(5.8)

čia m – imties vienetų (įvykių) skaičius, pˆ = m / n . Kritinės sritys įvairių alternatyvų atveju pateiktos 5.3 lentelėje. Šioje lentelėje m – imties vienetų (įvykių) skaičius; α - pasirinktas reikšmingumo lygmuo; z v yra standartinio normalaus skirstinio v-toji kritinė reikšmė. 5.3 lentelė. Kritinės sritys Alternatyva H 1 p ≠ p0

Kritinė (atmetimo) sritis W:

| Z |> zα / 2

p > p0

Z > zα

p < p0

Z < − zα

5.3 p a s t a b a. Nėra vieningos nuomonės kokioms n ir p0 reikšmėms normalioji aproksimacija yra pakankamai tiksli (žr. [3]). Kartais reikalaujama, kad tarp n ir p0 galiotų toks sąryšis:  5 25(1 − 2 p 0 ) 2  5 , (5.9) , n ≥ max  , 1 − p0 p 0 (1 − p 0 )   p0

134

pavyzdžiui, jei p 0 = 0.2 , tai n ≥ 57 ; jei p 0 = 0.5 , tai n ≥ 10 . Kartais reikalaujama, kad max (np 0 , n(1 − p 0 ) ) ≥ 30 . Patikrinti hipotezę apie proporciją galima su procedūra FREQ. Reikia TABLES sakinyje nurodyti pasirinktį BINOMIAL. PROC FREQ DATA=lentelė; TABLES kintamasis / BINOMIAL (P=p0 LEVEL=’reikšmė’); RUN;

čia kintamasis analizuojamas kintamasis (gali būti skaitinio arba simbolinio tipo), įgyjantis dvi reikšmes, reikšmė – nurodyto kintamojo reikšmė; su P=p0 nurodome hipotetinę reikšmę p 0 (pagal nutylėjimą 0.5). Jeigu vietoje BINOMIAL nurodome BINOMIALC, tai taikoma tolydumo pataisa, t.y. Z=

pˆ − p 0 − 1 / 2n p 0 (1 − p 0 ) / n

, kai pˆ − p 0 > 0 ; priešingu atveju Z =

pˆ − p 0 + 1 / 2n p 0 (1 − p 0 ) / n

.

(5.10)

Ši procedūra apskaičiuoja dvipusę P-reikšmę P2 ir vienpusę P-reikšmę P1 . Kai Z>0, tai apskaičiuojama dešininė P-reikšmė, t.y. tikimybė gauti didesnę statistikos reikšmę negu stebėta, kai hipotezė teisinga, t.y. P1 = P{Y > Z }; kai Z ≤ 0, tai apskaičiuojama kairinė Preikšmė, t.y. tikimybė gauti mažesnę statistikos reikšmę negu stebėta, t.y. P1 = P{Y < Z }; čia Y~N(0,1). Dvipusė P-reikšmė: P1 = P{| Y |>| Z |}. 5.7 p a v y z d y s. Modeliuokime a.d. X, kurio skirstinys yra binominis su parametrais 1 ir p=0.4, t.y. X~B(1,p) dydžio n = 50 imtį. Editor lange įveskime: %LET n=50; %LET p=0.4; DATA binominis; DO i=1 TO &n; X=ranbin(10,1,&p); OUTPUT; END; RUN;

Patikrinkime hipotezę, kad reikšmių „0“ yra ne mažiau kaip 60%, reikšmingumo lygmuo 0,05. Suformuluojame hipotezę ir alternatyvą: hipotezė H 0 : p ≥ 0,6 , alternatyva

H 1 : p < 0,6 . Editor lange parašome: PROC FREQ DATA=binominis; TABLES x / BINOMIAL(P=0.6 LEVEL=’0’); RUN;

Output lange gauname: Test of H0: Proportion = 0.6 ASE under H0 Z One-sided Pr < Z Two-sided Pr > |Z|

0.0693 -1.7321 0.0416 0.0833

Sample Size = 50

Kriterijaus statistikos reikšmė -1.7321. Kairinė vienpusė reikšmė 0.0416 yra mažesnė už pasirinktą reikšmingumo lygmenį 0.05, todėl hipotezė atmetama su reikšmingumo lygmeniu 0,05.

135

5. Dviejų dispersijų palyginimo hipotezės X = ( X 1 , X 2 ,..., X n )

Tarkime, kad

ir

Y = (Y1 , Y2 ,..., Ym )

yra nepriklausomos

atsitiktinių dydžių X ir Y imtys, atsitiktinio dydžio X skirstinys yra normalusis su vidurkiu µ1 ir dispersija σ 12 , atsitiktinio dydžio Y skirstinys yra normalusis su vidurkiu µ 2 ir dispersija

σ 22 , t.y. X~N( µ1 , σ 12 ), Y~N( µ 2 , σ 22 ). Reikia patikrinti hipotezę H 0 : σ 12 = k 0σ 22 , čia konstanta k 0 >0. Kritinė sritis sudaroma remiantis tuo, kad n

F=

∑(X

i

− X ) 2 (m − 1)

i =1

m

k 0 ∑ (Y j − Y ) (n − 1) 2

s12 = k 0 s 22

(5.11)

j =1

skirstinys yra Fišerio skirstinys su n-1 ir m-1 laisvės laipsniu, kai σ 12 = k 0σ 22 , čia

1 m 1 n 2 2 (Yi − Y ) 2 . s = ( X i − X ) , s2 = ∑ ∑ m − 1 j =1 n − 1 i =1 2 1

Kritinės sritys įvairių alternatyvų atveju pateiktos 5.4 lentelėje. Šioje lentelėje F, apibrėžta (5.11); α - pasirinktas reikšmingumo lygmuo; Fv (n − 1, m − 1) yra Fišerio skirstinio su n-1 ir m-1 laisvės laipsniu v-toji kritinė reikšmė. 5.4 lentelė. Kritinės sritys Hipotezė H 0

Alternatyva H1

Kritinė (atmetimo) sritis W:

σ 12 ≤ k 0σ 22 (σ 12 = k 0σ 22 )

σ 12 > k 0σ 22

F > Fα (n − 1, m − 1)

σ 12 ≥ k 0σ 22 (σ 12 = k 0σ 22 )

σ 12 < k 0σ 22

F < F1−α (n − 1, m − 1)

σ 12 = k 0σ 22

σ 12 ≠ k 0σ 22

F < F1−α / 2 (n − 1, m − 1) arba F > Fα / 2 (n − 1, m − 1)

Atskiru atveju, kai k 0 = 1 , gauname hipotezę apie dispersijų lygybę: H 0 : σ 12 = σ 22 . Kriterijaus statistika (5.11) šiuo atveju yra F = s12 / s 22 . Kriterijaus statistiką galima apibrėžti ir taip: max{s12 , s 22 } ′ F = . (5.12) min{s12 , s 22 } Statistika F ′ yra nemažesnė už 1. Hipotezę apie dispersijų lygybę galima patikrinti su SAS modulio STAT procedūra TTEST, ši hipotezė automatiškai tikrinama, kai lyginame dviejų nepriklausomų imčių vidurkius. Sintaksė: PROC TTEST DATA=lentelė; CLASS kint1 VAR kint2; RUN;

čia kint1 – klasifikuojantis kintamasis, t.y. kintamasis kuris parodo, iš kurios imties yra stebėjimas; kint2 – analizuojamas kintamasis. Procedūra spausdina dvipusę P-reikšmę, t.y. galime patikrinti hipotezę H 0 : σ 12 = σ 22 su alternatyva H1 : σ 12 ≠ σ 22 .

136

5.8 p a v y z d y s. Tarkime, kad turime duomenis iš 3.7 pavyzdžio. Ar galime teigti, kad spindulio R srovės stiprumo dispersija antrajame testeryje pirmo ir antro paleto yra tokia pati? Turime dvi nepriklausomas imtis (matuojami skirtingi kineskopai). Analizuojamas kintamasis „i_r“, kintamasis „paleto_nr“ parodo, kuriam paletui priklauso kineskopas. Suformuluojame hipotezę ir alternatyvą: hipotezė H 0 : σ 12 = σ 22 , alternatyva H1 : σ 12 ≠ σ 22 . Editor lange parašome: PROC TTEST DATA=kineskopai; CLASS paleto_nr; VAR i_r; WHERE paleto_nr=1 or paleto_nr=2; RUN;

Output lange gauname: The TTEST Procedure Statistics

Variable

paleto_nr

i_r

N

Lower CL Mean

Mean

Upper CL Mean

Lower CL Std Dev

Std Dev

Upper CL Std Dev

Std Err

50

6.1946

6.244

6.2934

0.1453

0.174

0.2168

0.0246

50

6.157

6.202

6.247

0.1323

0.1584

0.1974

0.0224

-0.024

0.042

0.108

0.146

0.1664

0.1934

0.0333

1 i_r i_r

2 Diff (1-2)

T-Tests Variable

Method

Variances

i_r i_r

Pooled Satterthwaite

Equal Unequal

DF

t Value

Pr > |t|

98 97.2

1.26 1.26

0.2099 0.2099

Equality of Variances Variable

Method

i_r

Folded F

Num DF

Den DF

F Value

Pr > F

49

49

1.21

0.5145

Procedūra spausdina stebėjimų skaičių (N), vidurkio taškinį įvertį (Mean, žr.(4.23)) ir pasikliautinąjį intervalą (Lower CL Mean, Upper CL Mean; žr. (4.26)); standartinio nuokrypio vidurkio taškinį įvertį (Std Dev, žr.(4.24)) ir pasikliautinąjį intervalą (Lower CL Std Dev, Upper CL Std Dev; žr. (4.28)); pagal nutylėjimą yra apskaičiuojami pasikliautinieji intervalai su pasikliovimo lygmeniu 0,95; jeigu norime, kad apskaičiuotų su kitu pasikliovimo lygmeniu, tai Proc sakinyje nurodome ALPHA=1-Q, čia Q – pasikliovimo lygmuo. Lentelėje „Equality of Variances“ (dispersijų lygybė) spausdinama kriterijaus statistikos reikšmė (F Value, žr.(5.12)), P-reikšmė (Pr>F), skirta patikrinti hipotezę apie dispersijų lygybę su dvipuse alternatyva. Kadangi P-reikšmė (0,5145) didesnė už pasirinktą reikšmingumo lygmenį 0.05, tai hipotezė priimama su reikšmingumo lygmeniu 0.05, t.y. galime teigti, kad spindulio R srovės stiprumo dispersija antrajame testeryje pirmo ir antro paleto yra tokia pati. 6. Dviejų vidurkių palyginimo hipotezės

Nagrinėsime du atvejus: 1) nepriklausomos imtys, 2) priklausomos imtys. Prieš tikrinant hipotezę apie vidurkių lygybę reikia nustatyti ar imtys priklausomos, ar nepriklausomos. Priklausomos imtys, jei tie patys objektai tiriami kelis kartus, pavyzdžiui, lyginame studentų testo rezultatus semestro pradžioje ir pabaigoje. Nepriklausomos imtys, jei tiriamos kelios objektų grupės, pavyzdžiui, lyginame dviejų studentų grupių testo rezultatus. Jeigu imtys nepriklausomos, tai prieš tikrinant vidurkių lygybę reikia patikrinti dispersijų lygybę (žr. 5 skyrelį).

137

6.1. Hipotezė apie vidurkių lygybę, kai imtys nepriklausomos

Tarkime, kad

X = ( X 1 , X 2 ,..., X n )

ir

Y = (Y1 , Y2 ,..., Ym )

yra nepriklausomos

atsitiktinių dydžių X ir Y imtys, atsitiktinio dydžio X skirstinys yra normalusis su vidurkiu µ1 ir dispersija σ 12 , atsitiktinio dydžio Y skirstinys yra normalusis su vidurkiu µ 2 ir dispersija

σ 22 , t.y. X~N( µ1 , σ 12 ), Y~N( µ 2 , σ 22 ). Nagrinėsime kelis atvejus. 1) Tarkime, kad dispersijos lygios, t.y. σ 12 = σ 22 . Reikia patikrinti hipotezę H 0 : µ1 − µ 2 = β 0 ,

(5.13)

čia β 0 žinoma konstanta. Kritinė sritis sudaroma remiantis tuo, kad

t=

X − Y − β0 1 1 s + n m

,

(5.14)

skirstinys yra Stjudento skirstinys su n+m-2 laisvės laipsniais, kai hipotezė H 0 : µ1 − µ 2 = β 0 teisinga; čia X =

1 m 1 n Y = , ∑ Yi , ∑ Xi m j =1 n i =1 (n − 1) s12 + (m − 1) s 22 , n+m−2 1 m 1 m 2 2 ( ) , s12 = X − X s = (Yi − Y ) 2 . ∑ ∑ i 2 n − 1 j =1 m − 1 j =1 s2 =

(5.15)

Kritinės sritys įvairių alternatyvų atveju pateiktos 5.5 lentelėje. Šioje lentelėje t, apibrėžta (5.14); α - pasirinktas reikšmingumo lygmuo; t v (n + m − 2) yra Stjudento skirstinio su n-2 laisvės laipsniais v-toji kritinė reikšmė. 5.5 lentelė. Kritinės sritys Hipotezė H 0

Alternatyva H1

Kritinė (atmetimo) sritis W:

µ1 − µ 2 > β 0 µ1 − µ 2 < β 0 µ1 − µ 2 ≠ β 0

t > tα (n + m − 2)

µ1 − µ 2 ≤ β 0 ( µ1 − µ 2 = β 0 ) µ1 − µ 2 ≥ β 0 ( µ1 − µ 2 = β 0 ) ( µ1 − µ 2 = β 0 )

t < −tα (n + m − 2) | t |> tα / 2 (n + m − 2)

2) Tarkime, kad dispersijos lygios, t.y. σ 12 = σ 22 . Reikia patikrinti hipotezę H 0 : µ1 = µ 2 .

(5.16)

5.4 p a s t a b a. Hipotezė H 0 : µ1 = µ 2 yra atskiras atvejis hipotezės, nagrinėtos pirmame punkte, kai β 0 = 0 . Hipotezę tikriname naudodami 5.5 lentelę. 3) Tarkime, kad dispersijos nežinomos ir nelygios, t.y. σ 12 ≠ σ 22 . Reikia patikrinti hipotezę (5.16). Tada galima sukonstruoti tik apytikslį kriterijų. Kriterijaus statistika

t′ =

X −Y w1 + w2

čia

138

,

(5.17)

w1 =

s2 s12 , w2 = 2 . m n

(5.18)

Tegu tikriname hipotezę H 0 : µ1 = µ 2 su alternatyva H 1 : µ1 ≠ µ 2 . Hipotezė atmetama su reikšmingumo lygmeniu α , jeigu |t ′| > t α/ 2 (k ) , čia t α/ 2 (k ) yra Stjudento skirstinio su k laisvės laipsnių (α / 2) - toji kritinė reikšmė;

k=

( w1 + w2 ) 2 . w12 w22 + n −1 m −1

(5.19)

Vienpusėms alternatyvoms naudojama ta pati statistika (5.18). Vienpusei alternatyvai H 1 : µ1 > µ 2 kritinė sritis W: hipotezė atmetama su reikšmingumo lygmeniu α , kai t ′ > t α (k ) . Vienpusei alternatyvai H 1 : µ1 < µ 2 kritinė sritis W: hipotezė atmetama su reikšmingumo lygmeniu α , kai t ′ < −t α (k ) . Hipotezę apie vidurkių lygybę ( H 0 : µ1 = µ 2 . ) galima patikrinti su SAS modulio STAT procedūra TTEST. Sintaksė: PROC TTEST DATA=lentelė; CLASS kint1 VAR kint2; RUN;

čia kint1 – klasifikuojantis kintamasis, t.y. kintamasis kuris parodo, iš kurios imties yra stebėjimas; kint2 – analizuojamas kintamasis. Procedūra lentelėje „T-Tests“ spausdina dvi statistikas ir atitinkamas P-reikšmes. Kurią eilutę naudoti nusprendžiame patikrinę hipotezę apie dispersijų lygybę (žr. 5 skyrelį). Jeigu dispersijos lygios, tai žiūrime į eilutę, kurioje parašyta „Equal“ (stulpelis „Variances“). Šioje eilutėje pateikiamas laisvės laipsnių skaičius n+m-2 (stulpelis „DF“), statistikos t reikšmė (stulpelis „t Value“) ir dvipusė P-reikšmė (stulpelis „Pr>|t|“). Jeigu dispersijos nelygios, tai žiūrime į eilutę, kurioje parašyta „Unequal“ (stulpelis „Variances“). Šioje eilutėje pateikiamas laisvės laipsnių skaičius k (žr.(5.19), stulpelis „DF“), statistikos t ′ reikšmė (žr. (5.17), stulpelis „t Value“) ir dvipusė P-reikšmė (stulpelis „Pr>|t|“). Procedūra spausdina dvipusę P-reikšmę, t.y. galime patikrinti hipotezę H 0 : σ 12 = σ 22 su alternatyva H1 : σ 12 ≠ σ 22 . Jeigu norime patikrinti hipotezę su vienpuse alternatyva, tai naudojame metodą, pateiktą 5.2 pastaboje. Su procedūra TTEST galima patikrinti hipotezę H 0 : µ1 − µ 2 = β 0 . Šiuo atveju Proc sakinyje reikia nurodyti H0= β 0 . Pagal nutylėjimą β 0 = 0 , t.y. tikrinama hipotezė H 0 : µ1 = µ 2 . 5.9 p a v y z d y s. Tarkime, kad turime duomenis iš 3.7 pavyzdžio. a) Ar galime teigti, kad vidutinis spindulio G srovės stiprumas antrajame testeryje pirmo ir antro paleto yra toks pats? Reikšmingumo lygmuo 0.05. Turime dvi nepriklausomas imtis (matuojami skirtingi kineskopai). Analizuojamas kintamasis „i_g“, kintamasis „paleto_nr“ parodo, kuriam paletui priklauso kineskopas. Suformuluojame hipotezę ir alternatyvą: hipotezė H 0 : µ1 = µ 2 , alternatyva H1 : µ1 ≠ µ 2 . Editor lange parašome: PROC TTEST DATA=kineskopai; CLASS paleto_nr; VAR i_g; WHERE paleto_nr=1 or paleto_nr=2; RUN;

139

Output lange gauname: The TTEST Procedure Statistics

Variable

paleto_nr

i_g

N

Lower CL Mean

Mean

Upper CL Mean

Lower CL Std Dev

Std Dev

Upper CL Std Dev

Std Err

50

6.1696

6.212

6.2544

0.1247

0.1493

0.1861

0.0211

50

6.1271

6.174

6.2209

0.1379

0.1651

0.2058

0.0234

-0.024

0.038

0.1005

0.1381

0.1574

0.183

0.0315

1 i_g 2 Diff (1-2)

i_g

T-Tests Variable

Method

Variances

DF

t Value

Pr > |t|

i_g i_g

Pooled Satterthwaite

Equal Unequal

98 97

1.21 1.21

0.2304 0.2304

Equality of Variances Variable

Method

i_g

Folded F

Num DF

Den DF

F Value

Pr > F

49

49

1.22

0.4842

Lentelėje „Statistics“ spausdinami vidurkio bei standartinio nuokrypio taškiniai įverčiai bei pasikliautinieji intervalai; pagal nutylėjimą yra apskaičiuojami pasikliautinieji intervalai su pasikliovimo lygmeniu 0,95; jeigu norime, kad apskaičiuotų su kitu pasikliovimo lygmeniu, tai Proc sakinyje nurodome ALPHA=1-Q, čia Q – pasikliovimo lygmuo. Patikrinsime hipotezę apie vidurkių lygybę. Patikriname hipotezę apie dispersijų lygybę. Žiūrime į lentelę „Equality of Variances“. Kadangi P-reikšmė (stulpelis „Pr>F“) 0.4842 yra didesnė už pasirinktą reikšmingumo lygmenį 0.05, tai hipotezė priimama, t.y. dispersijos lygios. Tada žiūrime į lentelę „T-Tests“. Kadangi dispersijos lygios, tai imame Preikšmę (stulpelis „Pr>|t|“) iš eilutės „Equal“ (stulpelis „Variances“). Kadangi P-reikšmė 0.2304 yra didesnė už pasirinktą reikšmingumo lygmenį 0.05, tai hipotezė priimama, t.y. duomenys neprieštarauja hipotezei, kad vidutinis spindulio G srovės stiprumas antrajame testeryje pirmo ir antro paleto yra toks pats. b) Ar galime teigti, kad vidutinis spindulio R srovės stiprumas pirmajame testeryje pirmo ir antro paleto yra toks pats? Reikšmingumo lygmuo 0.05 Analizuojamas kintamasis „i_katodo_r“, klasifikuojantis kintamasis „paleto_nr“. Suformuluojame hipotezę ir alternatyvą: hipotezė H 0 : µ1 = µ 2 , alternatyva H1 : µ1 ≠ µ 2 . Editor lange parašome: PROC TTEST DATA=kineskopai; CLASS paleto_nr; VAR i_katodo_r; WHERE paleto_nr=1 or paleto_nr=2; RUN;

Output lange gauname: The TTEST Procedure Statistics

Variable i_ katodo_r i_ katodo_r i_ katodo_r

paleto_nr

N

Lower CL Mean

Mean

Upper CL Mean

Lower CL Std Dev

Std Dev

Upper CL Std Dev

Std Err

47

6.5795

6.6915

6.8035

0.3171

0.3815

0.4792

0.0557

49

6.5553

6.6

6.6447

0.1296

0.1555

0.1942

0.0222

-0.026

0.0915

0.2087

0.253

0.2891

0.3373

0.059

1 2 Diff (1-2)

140

T-Tests Variable

Method

Variances

i_katodo_r i_katodo_r

Pooled Satterthwaite

Equal Unequal

DF

t Value

Pr > |t|

94 60.3

1.55 1.53

0.1245 0.1320

Equality of Variances Variable

Method

i_katodo_r

Folded F

Num DF

Den DF

F Value

Pr > F

46

48

6.02

<.0001

Patikriname hipotezę apie dispersijų lygybę. Kadangi P-reikšmė mažesnė už 0.0001, tai hipotezę atmetame, t.y. dispersijos nelygios. Tada žiūrime į lentelę „T-Tests“. Kadangi dispersijos nelygios, tai imame P-reikšmę (stulpelis „Pr>|t|“) iš eilutės „Unequal“ (stulpelis „Variances“). Kadangi P-reikšmė 0.1320 yra didesnė už pasirinktą reikšmingumo lygmenį 0.05, tai hipotezė priimama, t.y. duomenys neprieštarauja hipotezei, kad vidutinis spindulio R srovės stiprumas pirmajame testeryje pirmo ir antro paleto yra toks pats. 6.2. Hipotezė apie vidurkių lygybę, kai imtys priklausomos

Tarkime, kad ( X i , Yi ), i = 1,..., n yra dydžio n imtis, gauta stebint du priklausomus normaliuosius atsitiktinius dydžius: X ~ N ( µ1 , σ 12 ) , Y ~ N ( µ 2 , σ 22 ) , vidurkiai ir dispersijos nežinomos. Reikia patikrinti hipotezę H 0 : µ1 = µ 2 . Patikrinti šiai hipotezei yra naudojamas porinis (paired) t kriterijus. Jis grindžiamas tuo, kad dviejų normaliųjų atsitiktinių dydžių skirtumas irgi turi normalųjį skirstinį, t.y. Z = X − Y skirstinys yra normalusis su vidurkiu µ d = µ1 − µ 2 . Taigi, H : µ1 = µ 2 yra ekvivalenti hipotezei H : µ d = µ1 − µ 2 = 0 . Kaip patikrinti hipotezę apie vidurkio reikšmę, kai dispersija nežinoma aprašėme 2.2 skyrelyje. 5.10 p a v y z d y s. Tarkime, kad turime duomenis iš 3.7 pavyzdžio. Ar galime teigti, kad vidutinis spindulio R srovės stiprumas pirmajame ir antrajame testeryje yra toks pats? Reikšmingumo lygmuo 0.05. Turime dvi priklausomas imtis, nes tie patys kineskopai matuojami du kartus. Analizuojami kintamieji i_katodo_r ir i_r. Reikia patikrinti hipotezę apie vidurkių lygybę. Sukuriame naują sk_r kintamąjį: skirtumai tarp i_katodo_r ir i_r ir tikriname hipotezę, kad kintamojo sk_r vidurkis lygus 0 su alternatyva, kad nelygus 0. Naudosime procedūrą UNIVARIATE. Editor lange parašome: DATA skirtumas; SET kineskopai; sk_r=i_katodo_r-i_r; /*sukuriame naują kintamąjį*/ RUN; PROC UNIVARIATE DATA=skirtumas; VAR sk_r; RUN;

Output lange gauname: The UNIVARIATE Procedure Variable:

sk_r

Moments N Mean Std Deviation Skewness Uncorrected SS Coeff Variation

194 0.42010309 0.26203269 4.08555432 47.49 62.373425

Sum Weights Sum Observations Variance Kurtosis Corrected SS Std Error Mean

141

194 81.5 0.06866113 35.7253939 13.2515979 0.01881285

Tests for Location: Mu0=0 Test

-Statistic-

-----p Value------

Student's t Sign Signed Rank

t M S

Pr > |t| Pr >= |M| Pr >= |S|

22.33065 92.5 9088

<.0001 <.0001 <.0001

Žiūrime į lentelę „Tests for Location: Mu0=0“ (hipotezė apie vidurkio lygybę nuliui). Kadangi P-reikšmė (p Value) yra mažesnė už 0.0001, tai hipotezė atmetama, t.y. kad vidutinis spindulio R srovės stiprumas pirmajame ir antrajame testeryje skiriasi. 7. Hipotezė apie koreliacijos koeficiento reikšmę

Tarkime, kad ( X i , Yi ), i = 1,..., n yra dydžio n imtis, gauta stebint atsitiktinį vektorių, kurio skirstinys yra dvimatis normalusis su vidurkių vektoriumi µ ir kovariacijų matrica Σ , t.y. ( X , Y ) ~ N 2 (µ, Σ) , čia

µ = ( µ1 , µ 2 ), − ∞ < µ1 , µ1 < +∞,  σ 11 = σ 12 Σ =   σ 12 = ρσ 1σ 2

σ 12 = ρσ 1σ 2  , 0 < σ 1 , σ 1 < +∞, | ρ |< 1. σ 22 = σ 22 

(5.20)

(3) H (2) Hipotezių H (1) 0 : ρ ≤ ρ0 (ρ = ρ0 ) , 0 : ρ ≥ ρ 0 ( ρ = ρ 0 ) , H 0 : ρ = ρ 0 atitinkamai

su alternatyvomis H1(1) : ρ > ρ 0 , H1(2) : ρ < ρ 0 , H1(3) : ρ ≠ ρ 0 tikrinimo kriterijai grindžiami empiriniu koreliacijos koeficientu (Pirsono koreliacijos koeficientu) n

ρˆ = r =

∑(X

i

− X )(Yi − Y )

i =1

n

∑(X

i

,

n

∑ (Y

− X)

i

i =1

(5.21)

−Y )

i =1

1 n 1 n X i , Y = ∑ Yi . ∑ n i =1 n i =1 Tarkime, kad ρ 0 = 0 . Tada, sudarydami kriterijus, galime remtis tuo, kad statistikos

čia X =

t = n−2

r

1− r2

~ S (n − 2),

(5.22)

(2) (3) kai ρ = ρ 0 = 0 . Hipotezės H (1) 0 , H 0 , H 0 atmetamos, kai atitinkamai

t > tα (n − 2); t < −tα (n − 2); | t |> tα / 2 (n − 2);

(5.23)

čia t v (n − 2) yra Stjudento skirstinio su n-2 laisvės laipsniais v-toji kritinė reikšmė. Tarkime, kad ρ 0 ≠ 0 . Galima sudaryti apytikslius kriterijus naudojant Fišerio pasiūlytą atsitiktinio dydžio V =

1 1+ r ln 2 1− r

(5.24)

aproksimaciją normaliuoju skirstiniu (žr. (4.35)). Kritinė sritis sudaroma remiantis tuo, kad

ρ0 1 1 + r 1 1 + ρ0 ln − − ln (5.25) 2 1 − r 2 1 − ρ 0 2(n − 1) turi normalųjį skirstinį su nuliniu vidurkiu ir dispersija 1/(n-3), kai hipotezė teisinga. Dydis ρ 0 /( 2(n − 1)) yra poslinkio pataisa. 142

Patikrinti hipotezę H 0 : ρ = ρ 0 galima su SAS procedūra CORR. Sintaksė: PROC CORR DATA=lentelė FISHER(pasirinktys); VAR kintamieji; RUN;

čia pasirinktys: ALPHA=α, čia α=1-Q, Q – pasikliovimo lygmuo; RHO0=ro0, čia ro0= ρ 0 hipotetinė koreliacijos koeficiento reikšmė; TYPE=LOWER| UPPER | TWOSIDED (apatinis vienpusio pasikliautinojo intervalo rėžis ir P-reikšmė vienpusei dešininei alternatyvai | viršutinis pasikliautinojo intervalo rėžis ir P-reikšmė vienpusei kairinei alternatyvai | dvipusis pasikliautinasis intervalas ir P-reikšmė dvipusei alternatyvai; pagal nutylėjimą TWOSIDED. VAR sakinyje nurodome analizuojamus kintamuosius. Pataisa ρ 0 /( 2(n − 1)) skaičiuojant P-reikšmes su procedūra CORR visada naudojama; pasikliautinuosius intervalus galima apskaičiuoti su pataisa arba be (žr. 4 sk., 2.2 skyrelį). 5.11 p a v y z d y s. Tarkime, kad turime 4.2 pavyzdyje modeliuotus duomenis, t.y.  4 1 .6  , t.y. ρ = 0,6 . a.v. ( X , Y ) ~ N 2 (µ, Σ) dydžio n = 100 imtį, čia µ = (2, 3), Σ =   1 .6 1  Patikrinkime hipotezę, kad koreliacijos koeficientas lygus 0,6. Reikšmingumo lygmuo 0,05. Suformuluojame hipotezę ir alternatyvą: hipotezė H 0 : ρ = 0,6 , alternatyva

H1 : ρ ≠ 0,6. Editor lange parašome: PROC CORR DATA=dvimatis FISHER(RH0=0.6); VAR X Y; RUN;

Output lange gauname: The CORR Procedure 2

Variables:

X

Y

Simple Statistics Variable X Y

N

Mean

Std Dev

Sum

Minimum

Maximum

100 100

1.67614 2.94740

1.85814 1.06393

167.61400 294.74044

-1.38379 0.68343

6.76871 5.55309

Pearson Correlation Coefficients, N = 100 Prob > |r| under H0: Rho=0 X

Y

X

1.00000

0.56355 <.0001

Y

0.56355 <.0001

1.00000

Pearson Correlation Statistics (Fisher's z Transformation)

Variable

With Variable

X

Y

N

Sample Correlation

Fisher's z

Bias Adjustment

Correlation Estimate

100

0.56355

0.63802

0.00285

0.56160

Pearson Correlation Statistics (Fisher's z Transformation)

Variable

With Variable

X

Y

95% Confidence Limits 0.410464

143

0.682713

------H0:Rho=Rho0----Rho0 p Value 0.60000

0.5668

Gavome, kad koreliacijos koeficiento taškinis įvertis r = 0,56355 (Sample Correlation, žr. (5.21)); koreguotas koreliacijos koeficiento taškinis įvertis naudojant pataisą (žr. (4.41)) rkoreg = 0.56160 (žr. (4.41); Correlation Estimate); koreliacijos koeficiento 95%

pasikliautinasis intervalas (žr. (4.38)) yra: ( ρ koreg , ρ koreg ) = (0.410464, 0.682713) .

Lentelėje “Pearson Correlation Coefficients” pirmasis skaičius yra imties koreliacijos koeficientas (5.21), antrasis skaičius yra P-reikšmė hipotezei H 0 : ρ = 0 su dvipuse alternatyva. Kadangi P-reikšmė yra mažesnė už 0.0001, tai hipotezė apie koreliacijos koeficiento lygybę nuliui atmetama. Lentelėje “Pearson Correlation Statistics (Fisher's z Transformation)” yra pateikiama P-reikšmė (p Value) hipotezei H 0 : ρ = 0,6 su dvipuse alternatyva. Kadangi P-reikšmė 0.5668 yra didesnė už pasirinktą reikšmingumo lygmenį 0.05, tai hipotezė neatmetama. VI skyrius. Neparametriniai kriterijai

V skyriuje nagrinėjome parametrinių hipotezių tikrinimo uždavinius. Tarėme, kad stebimo atsitiktinio dydžio tikimybinis skirstinys priklauso šeimai P , kuri aprašoma žinomos analizinės išraiškos pasiskirstymo funkcija, priklausančia nuo k-mačio parametro, ir tikrinome hipotezes apie parametro reikšmes. Šiame skyriuje aptarsime hipotezių tikrinimo uždavinius, kai šeimos P skirstinių funkcinė išraiška nežinoma. Tarkime, kad X = ( X 1 , X 2 ,..., X n ) yra atsitiktinio dydžio X imtis. Tegu a.d. X skirstinys priklauso šeimai P = {F , F ∈ F } , čia F tam tikra pasiskirstymo funkcijų aibė. Tarkime, kad F0 yra aibės F poaibis. Neparametrine hipoteze vadiname tvirtinimą: H 0 : X ~ F ( x ) ∈ F0 , F0 ⊂ F ,

(6.1)

t.y. a.d. X pasiskirstymo funkcija F (x) priklauso aibei F0 . Pagrindiniai neparametrinių hipotezių tipai (žr. [5]): 1) Suderinamumo hipotezės. Tarkime, kad X = ( X 1 , X 2 ,..., X n ) yra atsitiktinio dydžio X imtis ir a.d. X skirstinys priklauso šeimai P = {F , F ∈ F } . Paprastąją suderinamumo hipoteze vadiname tvirtinimą: H 0 : X ~ F ( x) ≡ F0 ( x), (6.2)

čia F0 ( x) - pilnai nusakyta aibės F pasiskirstymo funkcija, t.y. aibė F0 susideda iš vienintelio elemento F0 ( x) . Sudėtingąja suderinamumo hipoteze vadiname tvirtinimą: H 0 : X ~ F ( x) ∈ F0 , F0 = {F ( x, θ), θ ∈ Θ} ⊂ F ,

(6.3)

čia F ( x, θ) - žinomos analizinės išraiškos pasiskirstymo funkcija, kuri priklauso nuo parametro θ . Pateiksime pavyzdį. Tvirtinimas H 0 : X ~ N (−2,4) (t.y. X skirstinys normalusis su vidurkiu -2 ir dispersija 4) yra paprastoji suderinamumo hipotezė. Tvirtinimas H 0 : X ~ F ( x) ∈ F0 , F0 = {N ( µ , σ 2 ), − ∞ < µ < ∞, σ > 0} ⊂ F (t.y. X skirstinys normalusis) yra sudėtingoji suderinamumo hipotezė. 2) Nepriklausomumo hipotezė. Stebime ( X , Y ) ~ F ( x, y ) . Tikriname: H 0 : ( X , Y ) ~ F ( x, y ) ≡ F ( x)G ( y ) , ∀x, y t.y. a.d. X ir Y nepriklausomi. 3) Homogeniškumo hipotezė. Stebime X ~ F ( x) , Y ~ G ( y ) . Tikriname:

144

(6.4)

H 0 : F ( x) ≡ G ( x) , ∀x

(6.5)

t.y. X ir Y pasiskirstymo funkcijos sutampa. Galima apibendrinti daugiau negu dviejų atsitiktinių dydžių atvejui. Neparametrinių hipotezių tikrinimo metodus galima suskirstyti į dvi grupes: I) Keitimas parametrine hipoteze. Tikimybinių skirstinių šeimą P = {F , F ∈ F } keičiame šeima P = {F ( x, θ), θ ∈ Θ} , kurios pasiskirstymo funkcijos F ( x, θ) analizinė išraiška yra žinoma. Neparametrinius hipotezių apytikslius kriterijus gauname tikrindami parametrines hipotezes apie θ reikšmes. II) Su skirstiniais nesusijusių kriterijų parinkimas. Ieškome tokių statistinių kriterijų, kuriuos galėtume taikyti, kai skirstinių šeima platesnė (pavyzdžiui, visi tolydieji skirstiniai). Tokius kriterijus vadiname nesusijusiais su skirstiniais. Jų taikymo galimybės nepriklauso nuo skirstinio išraiškos. Yra trys tokių kriterijų tipai: a) Chi-kvadrato kriterijus. Naudojame ne pradinius stebėjimus, o tik patekimo į tam tikrus intervalus dažnumus. b) Kriterijai, grindžiami statistikomis, kurios priklauso nuo empirinės ir teorinės pasiskirstymo funkcijos skirtumo. c) Ranginiai kriterijai. Naudojami ne patys stebėjimai, bet jų išsidėstymo variacinėje eilutėje numeriai. 1. Chi-kvadrato kriterijus neparametrinėms hipotezėms tikrinti

Chi-kvadrato kriterijus yra universalus. Jį galima naudoti suderinamumo, nepriklausomumo ir homogeniškumo hipotezėms tikrinti. Šis kriterijus remiasi dviem teoremomis. Tarkime, kad atliekame bandymą, kurio metu įvyksta vienas iš nesutaikomų įvykių A1 , A2 ,..., Ak , sudarančių pilnąją įvykių grupę. Kiekviename bandyme tikimybė, kad įvyks

įvykis Ai lygi pi ( i = 1,..., k , p1 + ... + p k = 1 ) ir nepriklauso nuo kitų bandymų rezultatų. Atlikus n bandymų, įvykusių įvykių A1 , A2 ,..., Ak skaičių pažymėkime V1 , V2 ,..., Vk . Tada atsitiktinių dydžių V1 , V2 ,..., Vk ( V1 + V2 + ... + Vk = n ) tikimybinis skirstinys yra polinominis: P{Vk = n1 , V2 = n 2 ,..., Vk = n k } =

n! p1n1 p 2n2 ... p knk . n1!n 2 !...nk !

(6.6)

6.1 t e o r e m a. Tegu pi > 0, i = 1,..., k . Apibrėžkime k

X2 =∑ i =1

2

k V (Vi − npi ) 2 = ∑ i − n. npi i =1 np i

(6.7)

Tada atsitiktinio dydžio X 2 tikimybinis skirstinys silpnai konverguoja į chi-kvadrato skirstinį su k-l laisvės laipsniu, kai n → ∞ . 6.2 t e o r e m a. Tarkime, kad tikimybės pi yra tam tikros nežinomų parametrų θ 1 ,θ 2 ,...,θ s funkcijos ( pi = pi (θ 1 ,θ 2 ,...,θ s ) ), kurios kiekviename s-mačio neišsigimusio intervalo Θ taške tenkina sąlygas: k

a)

∑ p (θ ,...,θ i

1

s

) = 1;

i =1

b) pi (θ 1 ,...,θ s ) > c 2 > 0, i = 1,..., k ; c) egzistuoja tolydžios dalinės išvestinės

145

∂pi ∂ 2 pi , ( i = 1,..., k ; j , l = 1,..., s ); ∂θ j ∂θ j ∂θ l

d) matricos D =

∂pi , i = 1,..., k , j = 1,..., s , rangas lygus s. ∂θ j

Tarkime, kad n kartų atlikome prieš 6.1 teoremą aprašytą bandymą, kuriame tikimybė, kad įvyks įvykis Ai , lygi pi0 = pi (θ 10 ,...,θ s0 ), čia θ 0 = (θ 10 ,...,θ s0 ) yra vidinis intervalo Θ taškas. Parametro θ įvertį galima gauti modifikuotuoju χ 2 minimumo metodu (žr.[5]), t.y. θ įvertis yra lygčių sistemos k Vi − npi (θ 1 ,...,θ s ) ∂pi V ∂pi =∑ i = 0, pi (θ 1 ,...,θ s ) ∂θ j i =1 pi ∂θ j i =1 k



j = 1,..., s,

(6.8)

sprendinys. Kai minėtos sąlygos patenkintos, tai lygčių sistema (6.8) turi vienintelį sprendinį θˆ , kuris pagal tikimybę konverguoja į θ 0 , kai n → ∞ . Statistika k

X 12 = X 12 (pˆ ) = ∑ i =1

(Vi − npi (θˆ1 ,...,θˆs )) 2 np (θˆ ,...,θˆ ) i

1

(6.9)

s

asimptotiškai pasiskirsčiusi pagal chi-kvadrato skirstinį su k-l-s laisvės laipsnių. 1.1. Paprastosios suderinamumo hipotezės tikrinimas

Tarkime, kad X = ( X 1 , X 2 ,..., X n ) yra atsitiktinio dydžio X imtis. Tegu a.d. X skirstinys priklauso šeimai P = {F , F ∈ F } . Tikriname paprastąją hipotezę H 0 : F ( x) ≡ F0 ( x), x ∈ R,

(6.10)

čia F ( x) yra X pasiskirstymo funkcija, F0 ( x) - pilnai nusakyta šeimos F pasiskirstymo funkcija. X galimų reikšmių sritį suskirstykime į k intervalų. Tegu xi yra i-tojo intervalo vidurio taškas, o hi intervalo ilgis. Pažymėkime Ai įvykį, kuris reiškia, kad stebimasis dydis įgijo reikšmę iš i-tojo intervalo. Tada atsitiktinio dydžio V = (V1 ,..., Vk ) (čia Vi - imties reikšmių, patekusių į i-tąjį intervalą, skaičius) skirstinys yra polinominis (žr. aprašymą prieš 6.1 teoremą). Hipotezė (6.10) keičiama hipoteze H ′0 : pi = pi0 , i = 1,..., k ,

(6.11)

čia pi0 yra patekimo į i-tąjį intervalą, kai hipotezė teisinga, tikimybė; pi0 = F0 ( xi + hi / 2) − F0 ( xi − hi / 2).

(6.12)

Alternatyva: H 1′ : pi ≠ pi0 , bent vienam i = 1,..., k . Pagal 6.1 teoremą, jeigu hipotezė (6.11) teisinga, tai statistika 2

k (Vi − npi0 ) 2 Vi = −n X =∑ ∑ 0 0 npi i =1 np i i =1

2

k

asimptotiškai ( n → ∞ ) pasiskirsčiusi pagal chi-kvadrato skirstinį su k-l laisvės laipsniu.

146

(6.13)

Hipotezė H ′0 atmetama su reikšmingumo lygmeniu α , kai X 2 > χ α2 (k − 1), čia

χ α2 (k − 1) yra chi-kvadrato skirstinio su k-l laisvės laipsniu α -toji kritinė reikšmė. 6.1 p a s t a b a. Praktikoje rekomenduojama taikyti, kai npi0 ≥ 5 . Paprastąją suderinamumo hipotezę galima patikrinti su SAS procedūra FREQ (žr. III sk., 1 skyrelį). Reikia TABLES sakinyje nurodyti CHISQ. Pagal nutylėjimą tikrinama hipotezė (6.11) su pi0 = 1 / k , i = 1, K , k , t.y. H ′0 : pi = pi0 = 1 / k , i = 1, K , k , t.y. vienodos tikimybės. Jei norime patikrinti hipotezę su skirtingomis tikimybėmis pi0 , tai reikia papildomai nurodyti TESTP=( p10

p 20

p30 ... p k0 ) arba TESTF=( np10 np 20 np30 ...

np k0 ) , čia npi0 - tikėtinas dažnis, n – stebėjimų skaičius, k – įvykių skaičius, įvykio tikimybė.

pi - i-tojo

6.1 p a v y z d y s. Duomenys iš [5]. Per ilgą laikotarpį nustatyta, kad gamykla vidutiniškai pagamina 35% pirmosios rūšies, 60% antrosios rūšies gaminių, o 5% produkcijos sudaro brokas. Patikrinus 300 gaminių partiją buvo rasta 115 gaminių pirmosios rūšies, 165 – antrosios ir 20 – su defektais. Ar galime teigti, kad gaminių kokybė nepasikeitė? Reikšmingumo lygmuo 0.05. Šiame pavyzdyje V1 = 115, V2 = 165, V3 = 20; reikia patikrinti hipotezę H ′0 : p1 = 0,35, p 2 = 0,6, p3 = 0,05. Sukurkime duomenų lentelę. Editor lange parašykime: DATA duomenys; INPUT Rusis $ Kiekis; Label Rusis=’Rūšis’; DATALINES; pirma 115 antra 165 brokas 20 ; RUN;

Naudosime procedūrą FREQ. Editor lange parašome: PROC FREQ DATA=duomenys ORDER=DATA; WEIGHT Kiekis; TABLES Rusis / NOCUM TESTP=(35 60 5); RUN;

ORDER=DATA nurodo, kad atitinkamos tikimybės, nurodytos su TESTP, išdėstytos tokia pačia tvarka kaip reikšmės duomenų lentelėje. Kintamasis „Kiekis“ nurodo reikšmių dažnius. Output lange gauname: The FREQ Procedure Rušis Rusis pirma antra brokas

Frequency 115 165 20

Percent 38.33 55.00 6.67

Chi-Square Test for Specified Proportions Chi-Square 3.8690 DF 2 Pr > ChiSq 0.1445 Sample Size = 300

147

Test Percent 35.00 60.00 5.00

Pirmojoje lentelėje spausdinamas (žr. III skyrius, 1 skyrelis) reikšmių dažnis (Frequency), procentinis dažnis (Percent) ir hipotetinės reikšmės p10 = 0,35, p 20 = 0,6, p30 = 0,05 (procentais). Lentelėje „Chi-Square Test for Specified Proportions“ pateikiama statistikos X 2 reikšmė 3,869. Gauta P-reikšmė 0,1445 didesnė už pasirinktą reikšmingumo lygmenį, todėl hipotezę neatmetama, t.y. galime teigti, kad gaminių kokybė nepasikeitė. 1.2. Sudėtingosios suderinamumo hipotezės tikrinimas

Tarkime, kad X = ( X 1 , X 2 ,..., X n ) yra atsitiktinio dydžio X imtis. Tegu a.d. X skirstinys priklauso šeimai P = {F , F ∈ F } . Reikia patikrinti sudėtingąją hipotezę: H 0 : F ( x ) ∈ F0 ,

(6.14)

čia F ( x) yra X pasiskirstymo funkcija, F0 = {F ( x, θ), θ ∈ Θ} ⊂ F , F ( x, θ) - pasiskirstymo funkcija, kurios analizinės išraiškos žinoma, o θ = (θ 1 ,...,θ s ) ∈ Θ ⊂ R s . X galimų reikšmių sritį suskirstykime į k intervalų. Tegu xi yra i-tojo intervalo vidurio taškas, o hi intervalo ilgis. Pažymėkime Ai įvykį, kuris reiškia, kad stebimasis dydis įgijo reikšmę iš i-tojo intervalo. Tada atsitiktinio dydžio V = (V1 ,..., Vk ) (čia Vi - imties reikšmių, patekusių į i-tąjį intervalą, skaičius) skirstinys yra polinominis (žr. aprašymą prieš 6.1 teoremą). Hipotezė (6.14) keičiama hipoteze H ′0 : pi = pi (θ 1 ,...,θ s ), i = 1,..., k ,

(6.15)

pi (θ 1 ,...,θ s ) = F ( xi + hi / 2, θ 1 ,...,θ s ) − F ( xi − hi / 2, θ 1 ,...,θ s ).

(6.16)

čia Alternatyva: H 1′ : pi ≠ pi (θ 1 ,...,θ s ), bent vienam i = 1,..., k . Pagal 6.2 teoremą, jeigu hipotezė (6.15) teisinga, tai statistika X 12 , apibrėžta (6.9), asimptotiškai ( n → ∞ ) pasiskirsčiusi pagal chi-kvadrato skirstinį su k-s-l laisvės laipsniu. Hipotezė H ′0 atmetama su reikšmingumo lygmeniu α , kai X 12 > χ α2 (k − s − 1), čia

χ α2 (k − s − 1) yra chi-kvadrato skirstinio su k-s-l laisvės laipsniu α -toji kritinė reikšmė. 6.2 p a s t a b a. Vertinant parametrą θ , tenka spręsti gana sudėtingą (6.8) sistemą. Tačiau praktikoje rasti tos sistemos apytikslius sprendinius palyginti nesunku. Pavyzdžiui (žr.[5]), kai skirstinys yra Puasono, parametro λ apytiksliu įverčiu galime imti imties vidurkį X ; kai skirstinys yra normalusis su vidurkiu µ ir dispersija σ 2 , tai µ ir σ 2 apytiksliais

įverčiais galime imti statistikas X ir s 2 , apskaičiuotas remiantis sugrupuotais stebėjimo rezultatais. 6.2 p a v y z d y s. Tarkime, kad turime duomenų lentelę, sukurtą su tokiu Data žingsniu: %LET n=300; DATA duom; DO i=1 to &n; X=3+2*NORMAL(10); OUTPUT; END; RUN;

Patikrinkime sudėtingąją suderinamumo hipotezę: duomenys yra gauti stebint normalųjį atsitiktinį dydį. Reikšmingumo lygmuo 0,05. Imkime intervalų skaičių k = 8 . Apskaičiuokime intervalo ilgį. Editor lange parašykime:

148

%LET k=8; /*intervalų skaičius*/ PROC MEANS DATA=duom MIN MAX; OUTPUT OUT=pag MIN(X)=min MAX(X)=max; VAR X; RUN; DATA pag; SET pag; CALL SYMPUT(”maksimali”, max); /* sukuriami makrokintamieji: */ CALL SYMPUT(”minimali”, min); /* maksimali, minimali reikšmė */ intervalas=(max-min)/&k; /* intervalo ilgis */ CALL SYMPUT(”h”, intervalas); RUN;

Sugrupuojame stebėjimus į intervalus ir suskaičiuojame kiek į kiekvieną intervalą pateko reikšmių. Editor lange parašome: DATA duom; /* lentelėje sukuriame stulpelį, kuriame būtų*/ SET duom; /* intervalo numeris*/ IF &minimali<=X<&minimali+&h THEN numeris=1; ELSE IF &minimali+&h<=X<&minimali+2*&h THEN numeris=2; ELSE IF &minimali+2*&h<=X<&minimali+3*&h THEN numeris=3; ELSE IF &minimali+3*&h<=X<&minimali+4*&h THEN numeris=4; ELSE IF &minimali+4*&h<=X<&minimali+5*&h THEN numeris=5; ELSE IF &minimali+5*&h<=X<&minimali+6*&h THEN numeris=6; ELSE IF &minimali+6*&h<=X<&minimali+7*&h THEN numeris=7; ELSE numeris=8; /* sakinių tiek, kiek intervalų*/ RUN; PROC FREQ DATA=duom; TABLES numeris / OUT=dazniai; RUN; DATA dazniai; SET dazniai; reiksme=&minimali+numeris*&h-&h/2; /* intervalo vidurio taskas*/ KEEP count reiksme; RUN;

Apskaičiuojame µ ir σ 2 įverčius grupuotiems duomenims ir įrašome į lentelę ir apjungiame su pradiniais duomenimis. PROC MEANS DATA=dazniai MEAN VAR; OUTPUT OUT=skaic1 MEAN(reiksme)=vidurkis VAR(reiksme)=dispersija; VAR reiksme; FREQ count; RUN; DATA skaiciavimai; IF _N_=1 THEN SET skaic1; SET dazniai; RUN;

Šiame pavyzdyje pi ( µ , σ 2 ) = Φ (( xi + hi / 2 − µ ) / σ ) − Φ (( xi − hi / 2 − µ ) / σ ) . Apskaičiuojame statistikos X 12 reikšmę ir chi-kvadrato skirstinio kritinę reikšmę

χ α2 (k − s − 1) = χ 02.05 (8 − 2 − 1) = χ 02.05 (5) ir įrašome į lentelę „Rezultatas“. DATA skaiciavimai; SET skaiciavimai; if _N_=1 then p=cdf(’NORMAL’,(reiksme+&h/2-vidurkis)/sqrt(dispersija)); else if _N_=&k then p=1-cdf(’NORMAL’,(reiksme-&h/2-vidurkis)/sqrt(dispersija)); else p=cdf(’NORMAL’,(reiksme+&h/2-vidurkis)/sqrt(dispersija))cdf(’NORMAL’,(reiksme-&h/2-vidurkis)/sqrt(dispersija)); s1=((count-&n*p)**2)/&n/p; RUN; PROC MEANS DATA=skaiciavimai SUM; OUTPUT OUT=Rezultatas SUM(s1)=X_2; VAR s1;

149

RUN; DATA Rezultatas; SET Rezultatas; s=2; /* įvertintų parametrų skaičius*/ kritine_reiksme=cinv(1-0.05,&k-s-1); RUN;

Lentelėje „Rezultatas“ gauname X 12 = 3,2871 < χ 02.05 (5) = 11,0705 , todėl hipotezė neatmetama su reikšmingumo lygmeniu 0,05. Atlikime skaičiavimus su tokiais duomenimis: %LET n=300; DATA duom; DO i=1 TO 200; x=2*rangam(10,5); OUTPUT; END; RUN;

Lentelėje „Rezultatas“ gauname X 12 = 49,9789 > χ 02.05 (5) = 11,0705 , todėl hipotezė atmetama su reikšmingumo lygmeniu 0,05. 1.3. Nepriklausomumo tikrinimas

Tarkime, kad ( X i , Yi ), i = 1,..., n, yra dydžio n imtis diskrečiojo atsitiktinio vektoriaus ( X , Y ), kurio galimos reikšmės yra ( xi , y j ), i = 1,..., s, j = 1,..., r Pažymėkime Vij reikšmės ( xi , y j ) pasikartojimų skaičių imtyje. Stebėjimo rezultatai pateikti 6.1 lentelėje. 6.1 lentelė. Reikšmių dažniai j y1 y2 i x1 V11 V12 x2 V21 V22 . . . . . . . . . xs Vs1 Vs 2 Σ

V⋅1

V⋅2

...

yr

Σ

... ... . . . ...

V1r V2 r . . . Vsr

V1⋅ V2⋅ . . . Vs⋅

...

V⋅r

n

Čia r

s

j =1

i =1

Vi⋅ = ∑ Vij , i = 1,..., s, V⋅ j = ∑ Vij , j = 1,..., r , s

(6.17)

r

n = ∑∑ Vij . i =1 j =1

Gali įvykti įvykiai A11 ,..., Asr . Pažymėkime

pij = P{ X = xi , Y = y i }, pi = P{ X = xi }, q j = P{Y = y i }, i = 1,..., s, j = 1,..., r ,

s

r

i =1

j =1

∑ p i = ∑ q j = 1.

(6.18)

Nepriklausomumo hipotezė (6.4) keičiama hipoteze: H ′0 : pij = pi q j , i = 1,..., s, j = 1,..., r.

150

(6.19)

Alternatyva: H 1′ : pij ≠ pi q j , bent vienai porai (i,j). Jeigu hipotezė (6.19) teisinga, tai pij yra s+r-2 parametrų p1 ,..., p s −1 , q1 ,..., q r −1 funkcijos (tikimybes p s ir q r galima išreikšti tikimybėmis p1 ,..., p s −1 , q1 ,..., q r −1 ). Tarkime, kad parametrų pi ir q j , i = 1,..., s, j = 1,..., r įverčiai pˆ i ir qˆ j yra (6.8) lygčių sistemos sprendinys. Pagal 6.2 teoremą, kai hipotezė (6.19) teisinga, statistika X 12 , apskaičiuota pagal (6.9) formulę, asimptotiškai ( n → ∞ ) pasiskirsčiusi pagal chi-kvadrato skirstinį su rs-1-(r+s2)=(r-1)(s-1) laisvės laipsnių. Gauname pˆ i = Vi⋅ / n, i = 1,..., s, qˆ j = V⋅ j / n, j = 1,..., r

(6.20)

ir s

r

X = X ( pˆ i , qˆ j ) = ∑∑ 2 1

2

(Vij − npˆ i qˆ j ) 2

i =1 j =1

npˆ i qˆ j

  s r Vij2 = n ∑∑ − 1.   i =1 j =1 Vi⋅V⋅ j  

(6.21)

Hipotezė H ′0 atmetama su reikšmingumo lygmeniu α , kai X 12 > χ α2 (( s − 1)(r − 1)),

čia χ α2 (( s − 1)(r − 1)) yra chi-kvadrato skirstinio su (s-1)(k-l) laisvės laipsniu α -toji kritinė reikšmė. Nepriklausomumą galima patikrinti su SAS procedūra FREQ. Sintaksė: a) tarkime, kad turime tris kintamuosius: kintamasis eilutė, kintamasis stulpelis, reikšmių skaičius, t.y. lentelė buvo sukurta, pavyzdžiui, su tokiu Data žingsniu: DATA lentelė; INPUT kint_eilutė $ kint_stulpelis $ skaičius; DATALINES; eilutės_reikšmė stulpelio_reikšmė skaičius_ląstelėje ... eilutės_reikšmė stulpelio_reikšmė skaičius_ląstelėje ; RUN;

Tada naudojame tokią procedūros FREQ sintaksę: PROC FREQ DATA=lentelė; TABLES kint_eilute * kint_stulpelis WEIGHT skaičius; RUN;

/ pasirinktys;

b) tarkime, kad turime du kintamuosius (t.y. nesusumuoti duomenys): kintamasis eilutė, kintamasis stulpelis, t.y. lentelė buvo sukurta , pavyzdžiui, su tokiu Data žingsniu: DATA lentelė; INPUT kint_eilutė $ kint_stulpelis $; DATALINES; eilutės_reikšmė stulpelio_reikšmė ... eilutės_reikšmė stulpelio_reikšmė ; RUN;

Tada naudojame tokią procedūros FREQ sintaksę: PROC FREQ DATA=lentelė; TABLES kint_eilute * kint_stulpelis RUN;

/ pasirinktys;

čia kintamasis eilutė, kintamasis stulpelis - skaitinio arba simbolinio tipo kintamieji. Pasirinktys: ALL - įvairūs testai (tame tarpe ir χ 2 ) bei sąryšio matai, bet ne visi atspausdinti tinka, reikia atsižvelgti į matavimo skalę; 151

CHISQ - χ 2 kriterijus nepriklausomumui ir homogeniškumui tikrinti, sąryšio matai. EXPECTED – spausdina tikėtinus ląstelių dažnius. 6.3 p a v y z d y s. Tarkime, kad turime duomenis pateiktus 6.2 lentelėje. Reikia patikrinti ar X ir Y yra priklausomi. 6.2 lentelė. Duomenys (6.3 pavyzdys) 5 4 3 yj xi 4-5 3 Σ

110 0 110

70 10 80

60 10 70

2

Σ

10 30 40

250 50 300

Patikrinsime su chi-kvadrato kriterijumi. Hipotezė: X ir Y yra nepriklausomi. Naudosime proce-dūrą FREQ. Editor lange parašome: DATA duomenys; /*sukuriame duomenų lentelę*/ INPUT X $ Y $ sk; DATALINES; 4-5 5 110 4-5 4 70 4-5 3 60 4-5 2 10 3 5 0 3 4 10 3 3 10 3 2 30 ; RUN; PROC FREQ DATA=duomenys ORDER=DATA; TABLES X*Y / CHISQ; WEIGHT sk; RUN;

Output lange gauname:

The FREQ Procedure Table of X by Y

X Y Frequency‚ Percent ‚ Row Pct ‚ Col Pct ‚5

‚4

‚3

‚2



Total

4-5

‚ 110 ‚ 36.67 ‚ 44.00 ‚ 100.00

‚ ‚ ‚ ‚

70 23.33 28.00 87.50

‚ ‚ ‚ ‚

60 20.00 24.00 85.71

‚ ‚ ‚ ‚

10 3.33 4.00 25.00

‚ ‚ ‚ ‚

250 83.33

3

‚ ‚ ‚ ‚

‚ ‚ ‚ ‚

10 3.33 20.00 12.50

‚ ‚ ‚ ‚

10 3.33 20.00 14.29

‚ ‚ ‚ ‚

30 10.00 60.00 75.00

‚ ‚ ‚ ‚

50 16.67

Total

0 0.00 0.00 0.00 110 36.67

80 26.67

70 23.33

40 13.33

Statistics for Table of X by Y Statistic DF Value Chi3 121.2857 Chi-Square Likelihood Ratio Chi-Square 3 107.6504 Mantel-Haenszel Chi-Square 1 86.0072 Phi Coefficient 0.6358

152

300 100.00

Prob <.0001 <.0001 <.0001

Contingency Coefficient Cramer's V Sample Size = 300

0.5366 0.6358

Procedūra spausdina kryžminę dažnių lentelę (žr. III sk., 1 skyrelis), kurios kiekvieno langelio pirmoje eilutėje yra dažnis, t.y. gauname tokią pačią lentelę kaip 6.2 lentelė. Lentelės „Statistics for Table of X by Y“ pirmoje eilutėje yra spausdinama statistikos (6.21) reikšmė X 12 = 121,2857 (Value) ir P-reikšmė, kuri šiame pavyzdyje yra mažesnė už 0,0001, todėl hipotezė atmetama, taigi, gauname, kad X ir Y yra priklausomi. 1.4. Homogeniškumo tikrinimas

Tarkime, kad X i1 , X i 2 ,..., X ini ,

i = 1,..., s yra nepriklausomų atsitiktinių dydžių

X 1 , X 2 ,..., X s atitinkamai dydžio n1 , n2 ,..., n s imtys, o visi atsitiktiniai dydžiai X 1 , X 2 ,..., X s

yra diskretieji ir jų įgyjamos reikšmės yra x1 , x 2 ,..., x r . Pažymėkime Vij , i = 1,..., s , j = 1,..., r , i-tosios imties stebėjimų, lygių x j , skaičių. Stebėjimo rezultatai pateikti 6.3 lentelėje. 6.3 lentelė. Reikšmių dažniai j 1 2 i 1 V11 V12 2 V21 V22 . . . . . . . . . s Vs1 Vs 2 Σ

V⋅1

V⋅2

...

r

Σ

... ... . . . ...

V1r V2 r . . . Vsr

n1 n2 . . . ns

...

V⋅r

n

Čia r

s

ni = ∑ Vij , i = 1,..., s, V⋅ j = ∑ Vij , j = 1,..., r , j =1

i =1

(6.22)

s

n = ∑ ni . i =1

Gali įvykti įvykiai

A1 , A2 ,..., As

su tikimybėmis

pi1 , pi 2 ,..., pis

atitinkamai,

pi1 + pi 2 + ... + pis = 1 , i = 1,..., s ( pij yra tikimybė, kad i-tasis atsitiktinis dydis įgijo j-tąją

reikšmę. Homogeniškumo hipotezė H 0 : F1 ( x) ≡ F2 ( x) ≡ ... ≡ Fs ( x)

(6.23)

t.y. X 1 , X 2 ,..., X s pasiskirstymo funkcijos sutampa ( Fi yra a.d. X i pasiskirstymo funkcija) keičiama tokia hipoteze: H ′0 : p1 j = p 2 j = ... = p sj = p j ,

j = 1,..., r ,

(6.24)

p1 + p 2 + ... + p r = 1. Alternatyva H 1′ : hipotezė H ′0 neteisinga. Jeigu hipotezė (6.24) teisinga, tai pij yra r-1 parametro p1 ,..., p r −1 funkcijos (tikimybę

p r galima išreikšti tikimybėmis p1 ,..., p r −1 ). Tarkime, kad parametrų p j , j = 1,..., r įverčiai 153

pˆ j yra (6.8) lygčių sistemos sprendinys. Pagal 6.2 teoremą, kai hipotezė (6.24) teisinga,

statistika X 12 , apskaičiuota pagal (6.9) formulę, asimptotiškai ( n → ∞ ) pasiskirsčiusi pagal chi-kvadrato skirstinį su r(s-1)-(s-1)=(r-1)(s-1) laisvės laipsnių. Gauname pˆ j = V⋅ j / n, j = 1,..., r

(6.25)

ir s

r

X = X ( pˆ j ) = ∑∑ 2 1

2

(Vij − npˆ j ) 2 ni pˆ j

i =1 j =1

  s r Vij2 = n ∑∑ − 1.   i =1 j =1 niV⋅ j  

(6.26)

Hipotezė H ′0 atmetama su reikšmingumo lygmeniu α , kai X 12 > χ α2 (( s − 1)(r − 1)),

čia χ α2 (( s − 1)(r − 1)) yra chi-kvadrato skirstinio su (s-1)(k-l) laisvės laipsniu α -toji kritinė reikšmė. Matome, kad ir kriterijaus statistika ir sprendimo priėmimo taisyklė yra tokia pati, kaip ir hipotezės apie nepriklausomumą tikrinimo uždavinyje (žr. 1.3 skyrelį). Taigi, galime tikrinti su SAS procedūra FREQ, sintaksė tokia pati kaip 1.3 skyrelyje. Tačiau reikėtų atkreipti dėmesį į tai, kad nors skaičiuojama ir taip pat, tačiau naudojamas kitoks statistinis modelis ir kitaip interpretuojami gauti rezultatai. 6.4 p a v y z d y s. Tarkime, kad pirmojoje imtyje reikšmių „A“ yra 38, reikšmių „B“yra 29, reikšmių „C“ yra 41, reikšmių „D“ yra 67; antrojoje imtyje reikšmių „A“ yra 42, reikšmių „B“yra 35, reikšmių „C“ yra 39, reikšmių „D“ yra 40. Patikrinkime homogeniškumo hipotezę. Reikšmingumo lygmuo 0.05. DATA duomenys; /*sukuriame duomenų lentelę*/ INPUT X Y $ sk; DATALINES; 1 A 38 1 B 29 1 C 41 1 D 67 2 A 42 2 B 35 2 C 39 2 D 40 ;RUN; PROC FREQ DATA=duomenys; TABLES X*Y / CHISQ; WEIGHT sk; RUN;

Output lange gauname: X Y Frequency‚ Percent ‚ Row Pct ‚ Col Pct ‚A 1 ‚ ‚ ‚ ‚ 2 ‚ ‚ ‚ ‚ Total

The FREQ Procedure Table of X by Y

38 11.48 21.71 47.50 42 12.69 26.92 52.50 80 24.17

‚B ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚

29 8.76 16.57 45.31 35 10.57 22.44 54.69

‚C ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚

64 19.34

154

41 12.39 23.43 51.25 39 11.78 25.00 48.75 80 24.17

‚D ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚

67 20.24 38.29 62.62 40 12.08 25.64 37.38 107 32.33

‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚

Total 175 52.87

156 47.13

331 100.00

Statistics for Table of X by Y Statistic ChiChi-Square Likelihood Ratio Chi-Square Mantel-Haenszel Chi-Square Phi Coefficient Contingency Coefficient Cramer's V

DF 3 3 1

Value 6.5566 6.6095 5.0650 0.1407 0.1394 0.1407

Prob 0.0875 0.0854 0.0244

Sample Size = 331

Lentelės „Statistics for Table of X by Y“ pirmoje eilutėje yra spausdinama statistikos (6.26) reikšmė X 12 = 6,5566 (Value) ir P-reikšmė, kuri šiame pavyzdyje yra 0,0875. Gauta Preikšmė yra didesnė už pasirinktą reikšmingumo lygmenį 0,05, todėl hipotezė neatmetama. 1.5. Kriterijai, susiję su chi-kvadrato kriterijumi

Tarkime, kad turime tokius pačius duomenis kaip 1.3 skyrelyje. Tikėtinumo santykio chi-kvadrato kriterijus (Likelihood ratio Chi-square test). Jo paskirtis tokia pati kaip ir chi-kvadrato, gaunami panašūs rezultatai. Kriterijaus statistika s r  Vij G 2 = 2∑∑ Vij ln e i =1 j =1  ij

 ,  

(6.27)

čia eij = Vi⋅V⋅ j / n

(6.28)

Statistika G 2 , kai hipotezė (6.19) apie nepriklausomumą teisinga, asimptotiškai ( n → ∞ ) pasiskirsčiusi pagal chi-kvadrato skirstinį su (r-1)(s-1) laisvės laipsniu. Koreguotas chi-kvadrato kriterijus (Continuity-Adjusted Chi-square test). Naudojamas, kai imtis maža s r [max(0, | V − e | −0.5)] 2 ij ij . QC = ∑∑ (6.29) eij i =1 j =1 Statistika QC , kai hipotezė (6.19) apie nepriklausomumą teisinga, asimptotiškai ( n → ∞ ) pasiskirsčiusi pagal chi-kvadrato skirstinį su (r-1)(s-1) laisvės laipsniu. Patariama naudoti, jei n ≤ 40 , o jei visos tikėtinos reikšmės didesnės už 5, tai galima ir, kai n ≤ 20 . Tikėtinumo santykio chi-kvadrato kriterijaus ir koreguoto chi-kvadrato kriterijaus statistikos reikšmė ir P-reikšmė spausdinamos, kai procedūroje FREQ nurodome CHISQ (žr. 1.3 skyrelį). 6.5 p a v y z d y s. Tarkime, kad turime tokius pačius duomenis kaip 6.3 pavyzdyje. Jame tikrinome ar kintamieji X ir Y yra nepriklausomi. Naudojome procedūrą FREQ. Output lange gavome: Statistics for Table of X by Y Statistic DF Value Chi-Square 3 121.2857 Likelihood Ratio Chi3 107.6504 Chi-Square Mantel-Haenszel Chi-Square 1 86.0072 Phi Coefficient 0.6358 Contingency Coefficient 0.5366 Cramer's V 0.6358 Sample Size = 300

Prob <.0001 <.0001 <.0001

Lentelės „Statistics for Table of X by Y“ antroje eilutėje yra spausdinama statistikos (6.27) reikšmė G 2 = 107,6504 (Value) ir P-reikšmė, kuri šiame pavyzdyje yra mažesnė už

155

0,0001, todėl hipotezė atmetama, taigi, gauname, kad X ir Y yra priklausomi. Atsakymas toks pats kaip 6.3 pavyzdyje, kuriame naudojame chi-kvadrato kriterijų. 1.6. Sąryšio matai, grindžiami chi-kvadrato kriterijumi Chi-kvadrato kriterijus nustato ar yra sąryšis tarp kintamųjų, bet nesuteikia informacijos apie sąryšio stiprumą. Šią informaciją galime gauti apskaičiavę sąryšio matus, t.y. patikriname nepriklausomumo hipotezę, jei ji atmetama (kintamieji priklausomi) galime pasakyti, ar stipri priklausomybė. Visiems žemiau aprašytiems sąryšio matams galioja pa pati taisyklė – kuo jie absoliučiu didumu didesni, tuo požymių priklausomybė didesnė; kuo arčiau nulio – tuo priklausomybė silpnesnė. Tarkime, kad turime tokius pačius duomenis kaip 1.3 skyrelyje (žr. 6.1 lentelę). s r (V − e ) 2 ij ij 2 Pažymėkime χ = ∑∑ ; Vij stebėta ląstelės (i,j) reikšmė; eij = Vi⋅V⋅ j / n tikėtina eij i =1 j =1 ląstelės (i,j) reikšmė; s – eilučių skaičius, r – stulpelių skaičius. Koeficientas Φ (Phi coefficient), kai lentelė 2x2, tai Φ=

V11V22 − V12V21 V1⋅V2⋅V⋅1V⋅2

,

kitimo ribos: − 1 ≤ Φ ≤ 1 ; kai lentelė s x r, tai

χ2

Φ=

(6.30)

n

kitimo ribos: 0 ≤ Φ ≤ min( r − 1, s − 1) . Pirsono kontingencijos koeficientas (Contingency coefficient).

χ2 P= , n+χ2

(6.31)

kitimo ribos: 0 ≤ P ≤ (m − 1) / m , m = min(r , s ) . Kramerio koeficientas V (Cramer’s V), kai lentelė 2x2, tai V = Φ, kitimo ribos: − 1 ≤ V ≤ 1 ; kai lentelė s x r, tai

V =

χ2 /n min(r − 1, s − 1)

(6.32)

,

kitimo ribos: 0 ≤ V ≤ 1 . Koeficiento Φ, Pirsono kontingencijos koeficiento, Kramerio koeficiento V reikšmės spausdinamos, kai procedūroje FREQ nurodome CHISQ (žr. 1.3 skyrelį). 6.6 p a v y z d y s. Tarkime, kad turime tokius pačius duomenis kaip 6.3 pavyzdyje. Gavome, kad kintamieji X ir Y yra priklausomi. Ištirkime sąryšio stiprumą. Statistics for Table of X by Y Statistic DF Value Chi-Square 3 121.2857 Likelihood Ratio Chi-Square 3 107.6504

156

Prob <.0001 <.0001

Mantel-Haenszel Chi-Square 1 Phi Coefficient Contingency Coefficient Cramer's V Sample Size = 300

86.0072 0.6358 0.5366 0.5366 0.6358

<.0001

Lentelės „Statistics for Table of X by Y“ eilutėje „Phi Coefficient“ spausdinama koeficiento (6.30) reikšmė Φ = 0,6358 ; eilutėje „Contingency Coefficient“ spausdinama koeficiento (6.31) reikšmė P = 0,5366 ; eilutėje „Cramer‘s V“ spausdinama koeficiento (6.32) reikšmė V = 0,6358 . Gauname, kad ryšys vidutinio stiprumo. 1.7. Fišerio tikslus kriterijus Chi-kvadrato kriterijus yra apytikslis. Kai analizuojame 2x2 lentelę, geriau naudoti Fišerio tikslų kriterijų. Taip pat Fišerio kriterijų patartina naudoti, kai imtis maža (imties tūrį padalinus iš laisvės laipsnių skaičiaus gauname mažiau už 5). Chi-kvadrato nepatartina naudoti, jei stebėtas dažnis bent vienoje ląstelėje lygus 0 arba, jei tikėtinas dažnis bent vienoje ląstelėje 2x2 lentelėms mažiau už 5, didesnėms lentelėms ne daugiau kaip 20% ląstelių gali turėti mažesnį tikėtiną dažnį už 5. Jei šie reikalavimai netenkinami reikia surinkti daugiau duomenų arba sumažinti klasių skaičių, kad gautume didesnius dažnius, arba naudoti Fišerio tikslų kriterijų. Fišerio kriterijaus statistikos reikšmė ir P-reikšmė spausdinamos, kai procedūros FREQ sakinyje TABLES nurodome CHISQ (žr. 1.3 skyrelį) ir EXACT sakinyje nurodome FISHER. Apskaičiuojamos tikslios P-reikšmės. Skaičiavimai sudėtingi, todėl naudojamas, kai stebėjimų nedaug. SAS procedūra skaičiuoja Fišerio kriterijų ne tik lentelėms 2x2, bet ir didesnėms lentelėms. Iliustruosime (žr. [6]) kaip apskaičiuojamos Fišerio kriterijaus P-reikšmės, kai turime lentelę 2x2, t.y. lentelė yra tokia:

y1

y2

Σ

i x1 x2

V11 V21

V12 V22

Σ

V•1

V•2

V1• V 2• n

j

Galima apskaičiuoti tikslias tikimybes. Kaip ir anksčiau formuluojamos hipotezės apie nepriklausomumą ir homogeniškumą, kai r=2 ir s=2. Dažnių lentelėje fiksuojant V•1 , V•2 , V1• , V2• ir žinant vieną kurį nors dažnį, pavyzdžiui, V11 , galima nustatyti ir kitas dažnių reikšmes Vij . Tada tikimybė, kad a.d. Vij įgis tam tikrą reikšmę (arba dažnių lentelė – tam tikrą dažnių rinkinį), apskaičiuojama pagal hipergeometrinio skirstinio formulę:

P (V11 , V12 , V21 , V22 ) =

CVV111• CVV221• C

V•1 n

=

V1• !V2• !V•1!V•2 ! 1 . n! V11!V12 !V21!V22 !

(6.33)

Norint patikrinti hipotezę nepakanka apskaičiuoti tikimybę P (V11 , V12 , V21 , V22 ) tik duotai (stebėtai) lentelei. Tikimybes reikia apskaičiuoti ir visoms lentelėms tik su labai didelėmis arba tik su labai mažomis reikšmėmis (ekstremaliomis reikšmėmis). Tada Preikšmė gaunama sumuojant visas šias tikimybes P (V11 , V12 , V21 , V22 ) . P-reikšmė apskaičiuojama: P − reikšmė = ∑ p, A

čia A – aibė lentelių pagal kurias sumuojama, p – hipergeometrinio skirstinio tikimybė.

157

SAS procedūra FREQ lentelėms 2x2 apskaičiuoja dvipusę ir vienpuses P-reikšmes; lentelėms s x r (s,r>2) apskaičiuojama tik dvipusė P-reikšmė. P-reikšmės apskaičiuojamos taip: dvipusė P-reikšmė: sumuojama pagal lenteles, kurioms p mažesnė arba lygi tikimybei stebėtos lentelės; kairinė vienpusė P-reikšmė: sumuojama pagal lenteles, kurioms V11 mažesnis arba lygus negu stebėtas V11 ; dešininė vienpusė P-reikšmė: sumuojama pagal lenteles, kurioms V11 didesnis arba lygus negu stebėtas V11 . 6.7 p a v y z d y s. Tarkime, kad turime 2x2 lentelę. Reikia patikrinti ar X ir Y nepriklausomi. Y X 1 2 Iš viso:

1

2

Iš viso:

4 1 5

10 15 25

14 16 30

Iliustruosime kaip apskaičiuojama dešininė P-reikšmė (kitos analogiškai). Tikimybė gauti stebėjimų lentelę yra: P(4,16,1,21) =

14! 16! 5! 25! ≈ 0,112388. 30! 4! 10! 15!

Gali būti dar tik viena lentelė su didesne V11 reikšme negu pradinės lentelės: Y X 1 2 Iš viso:

1

2

Iš viso:

5 0 5

9 16 25

14 16 30

Tikimybė gauti šią stebėjimų lentelę yra: P(5, 9, 0, 16) =

14! 16! 5! 25! ≈ 0,0140485. 30! 5! 9! 16!

Taigi, dešininė P-reikšmė yra 0,112388+0,0140485=0,1264365, hipotezė apie nepriklausomumą neatmetama reikšmingumo lygmeniu 0,05. Patikrinkime nepriklausomumo hipotezę su SAS procedūra FREQ. Naudokime Fišerio tikslų kriterijų. Editor lange parašykime: DATA duomenys; /*sukuriame duomenų lentelę*/ INPUT X Y $ sk; DATALINES; 1 1 4 1 2 10 2 1 1 2 2 15 ;RUN; PROC FREQ DATA=duomenys; TABLES X*Y / CHISQ; WEIGHT sk; EXACT FISHER; RUN;

Output lange gauname:

158

The FREQ Procedure Table of X by Y X Y Frequency‚ Percent ‚ Row Pct ‚ Col Pct ‚1 ‚2

Total



Total

1 ‚ ‚ ‚ ‚

4 13.33 28.57 80.00

‚ ‚ ‚ ‚

10 33.33 71.43 40.00

‚ ‚ ‚ ‚

14 46.67

2 ‚ ‚ ‚ ‚

1 3.33 6.25 20.00

‚ ‚ ‚ ‚

15 50.00 93.75 60.00

‚ ‚ ‚ ‚

16 53.33

5 16.67

25 83.33

30 100.00

Statistics for Table of X by Y Statistic Chi-Square Likelihood Ratio Chi-Square Continuity Adj. Chi-Square Mantel-Haenszel Chi-Square Phi Coefficient Contingency Coefficient Cramer's V

DF 1 1 1 1

Value 2.6786 2.8008 1.3125 2.5893 0.2988 0.2863 0.2988

Prob 0.1017 0.0942 0.2519 0.1076

WARNING: 50% of the cells have expected counts less than 5. ChiChi-Square may not be a valid test. Fisher's Exact Test Cell (1,1) Frequency (F) Left-sided Pr <= F Right-sided Pr >= F

4 0.9860 0.1264

Table Probability (P) Two-sided Pr <= P Two

0.1124 0.1571

Sample Size = 30

Procedūra spausdina kryžminę dažnių lentelę (žr. III sk., 1 skyrelis). Procedūra spausdina įspėjimą: 50% ląstelių tikėtinas dažnis yra mažesnis už 5, todėl chi-kvadrato kriterijaus naudoti nerekomenduojama. Naudosime Fišerio tikslų kriterijų. Lentelėje „Fisher‘s Exact Test“ spausdinama Fišerio kriterijaus statistikos reikšmė 0,1124 (Table Probability P), t.y. hipergeometrinė tikimybė gauti stebėtą lentelę; dvipusė P-reikšmė 0,1571 (Two-sided Pr<=P). Kadangi gauta P-reikšmė didesnė už pasirinktą reikšmingumo lygmenį 0,05, tai hipotezė neatmetama, t.y. kintamieji X ir Y nepriklausomi. Kadangi tiriama 2x2 lentelė, tai spausdinamos ir vienpusės P-reikšmės. Dešininė Preikšmė (Right-sided Pr>=F) lygi 0,1264; kairinė P-reikšmė (Left-sided Pr<=F) lygi 0,9860. Lentelėje „Statistics for Table of X by Y“ yra spausdinama koreguoto χ 2 kriterijaus statistikos (6.29) reikšmė QC = 1,3125 (Value) ir P-reikšmė, kuri šiame pavyzdyje yra 0,2519, todėl hipotezė neatmetama, taigi, gauname, kad X ir Y yra nepriklausomi. Atsakymas toks pats kaip ir su Fišerio kriterijumi.

159

1.8. Maknemaro kriterijus Maknemaro (Mc Nemar‘s) kriterijus naudojamas 2x2 lentelėms, kai turime priklausomas imtis. Jis naudojamas situacijoms “prieš-po”, kai objektai matuojami skirtingais laikotarpiais, ir norima įsitikinti, ar įvyko tam tikras pakitimas. Pavyzdžiui, apklaustųjų nuomonė kokiu nors klausimu (pritaria, nepritaria) vertinama iki pokalbio su jais ir po pokalbio; pacientų savijauta (gera, bloga) prieš gydymą ir po gydymo. Tiriama charakteristika matuojama du kartus (iki poveikio ir po jo). Dažnai tokio tipo uždaviniuose reikšmės koduojamos “+” , “-” arba “taip”, “ne”. Tikrinama hipotezė H 0 : p12 = p 21

(6.34)

(V12 − V21 ) 2 QM = V12 + V21

(6.35)

su alternatyva H A : p12 ≠ p 21 . Testo statistika

asimptotiškai (kai n → ∞ ) turi χ 12 pasiskirstymą, jei H0 teisinga; čia Vij - stebėtas dažnis ląstelėje (i,j). Maknemaro kriterijaus statistikos reikšmę ir P-reikšmę galima apskaičiuoti su SAS procedūra FREQ. Sakinyje TABLES reikia nurodyti AGREE. Procedūros FREQ sintaksė tokia pati kaip 1.3 skyrelyje. 6.8 p a v y z d y s. Tarkime, kad pirkėjai buvo apklausiami prieš tam tikros prekės reklaminę akciją ir po jos. Reikia nustatyti ar pirkėjų požiūris pasikeitė. Duomenys pateikti lentelėje. Po; B N Y Prieš; A N 48 14 Y 6 32 DATA Apklausa; INPUT A $ B $ daznis; DATALINES; N N 48 N Y 14 Y N 6 Y Y 32 ; PROC FREQ DATA=Apklausa; TABLES A*B / AGREE; WEIGHT daznis; RUN; Statistics for Table of A by B McNemar's Test Statistic (S) DF Pr > S

3.2000 1 0.0736

Lentelėje „McNemar‘s Test“ yra spausdinama Maknemaro kriterijaus statistikos (6.35) reikšmė QM = 3,2 (Statistic (S)) ir P-reikšmė (Pr>S), kuri šiame pavyzdyje yra 0,0736, todėl hipotezė neatmetama su reikšmingumo lygmeniu 0,05, taigi, gauname, kad reklaminė akcija neturėjo įtakos pirkėjų nuomonei.

160

2. Kriterijai, grindžiami empirinės ir teorinės pasiskirstymo funkcijų skirtumu Pirmoje šio skyrelio dalyje pateiksime kriterijus, kurie grindžiami empirinės ir teorinės pasiskirstymo funkcijų skirtumu ir skirti patikrinti suderinamumo hipotezę. Antrojoje dalyje pateiksime kriterijus, skirtus patikrinti homogeniškumo hipotezę. 2.1. Suderinamumo tikrinimas Kai suderinamumo hipotezė tikrinama su chi-kvadrato kriterijumi, tai duomenys sugrupuojami, todėl imtis turi būti gana didėlė. Jeigu imtis nedidelė, tai geriau taikyti kriterijų, kurio statistika išreiškiama negrupuotais duomenimis. Rekomenduojama suderinamumo hipotezes tikrinti keliais skirtingais būdais, nes taikant keletą kriterijų, gaunama žymiai daugiau informacijos. Šiame skyrelyje pateikiami trys suderinamumo kriterijai (EDF goodness-of-fit tests), kurie grindžiami teorinės ir empirinės pasiskirstymo funkcijų palyginimu. Tarkime, kad X 1 , X 2 ..., X n yra tolydžiojo atsitiktinio dydžio X imtis, X (1) , X ( 2 ) ..., X ( n ) - variacinė eilutė, Fn (x) - empirinė pasiskirstymo funkcija (EDF): 0, kai x ≤ X (1) ,  Fn ( x) = (i − 1) / n, kai X (i −1) < x ≤ X ( i ) , i = 1, L , n, 1, kai X ( n ) < x. 

(6.36)

Tarkime, kad X skirstinys priklauso tolydžiųjų skirstinių šeimai P . Reikia patikrinti hipotezę H 0 , kad stebimo atsitiktinio dydžio X pasiskirstymo funkcija yra F (x) (konkreti, visiškai nusakyta), t.y. H 0 : MFn ( x) ≡ F ( x).

(6.37)

Jeigu hipotezė H 0 teisinga, tai atsitiktinio dydžio Y = F ( X ) skirstinys yra tolygusis intervale (0,1). Todėl statistikos, grindžiamos skirtumu Fn ( X ) − F ( X ) , skirstinys, kai hipotezė H 0 teisinga, nepriklauso nuo F (x) , nes atliekant monotonišką abscisių ašies transformaciją tas skirtumas nesikeičia. I) Nukrypimas nuo hipotezės matuojamas kvadratine metrika, t.y. tikrinama hipotezė H 0 su alternatyva H 1 , kuri užrašoma taip: +∞

H 1 : ∫ (MFn ( x) − F ( x)) 2ψ ( F ( x))dF ( x) > 0,

(6.38)

−∞

čia ψ (t ) - neneigiama funkcija, apibrėžta intervale [0,1], be to, ψ (t ) , tψ (t ) ir t 2ψ (t ) yra intergruojamos intervale [0,1]. Kriterijaus statistika +∞

ω = n ∫ ( Fn ( x) − F ( x)) 2ψ ( F ( x))dF ( x). 2 n

(6.39)

−∞

Dažniausiai naudojamos tokios svorio funkcijos: ψ (t ) ≡ 1 arba ψ (t ) = (t (1 − t )) −1 . Cramer von Mises statistika W 2 (gaunama (6.39) paėmus ψ (t ) ≡ 1 ) apibrėžiama taip: +∞

W 2 = n ∫ ( Fn ( x) − F ( x)) 2 dF ( x) . −∞

Cramer-von Mises statistika W 2 apskaičiuojama taip:

161

2

n 2i − 1  1  , W 2 = ∑ U ( i ) −  + 2n  12n i =1 

(6.40)

čia U ( i ) = F ( X (i ) ) . Anderson-Darling statistika A 2 (gaunama (6.39) paėmus ψ (t ) = (t (1 − t )) −1 ) apibrėžiama: +∞

A = n ∫ ( Fn ( x) − F ( x)) 2 ( F ( x)(1 − F ( x))) −1 dF ( x) . 2

−∞

Anderson-Darling statistika A 2 apskaičiuojama taip: A 2 = −n −

1 n ∑ [(2i − 1) log U (i ) + (2n + 1 − 2i) log(1 − U (i ) )] . n i =1

(6.41)

II) Kolmogorovo kriterijus (SAS vadinamas Kolmogorovo-Smirnovo kriterijumi suderinamumui tikrinti). Nukrypimas nuo hipotezės matuojamas tolygiąją metrika, t.y. tiktinama hipotezė (6.37) su alternatyva: H 1 : sup | MFn ( x) − F ( x) |> 0. (6.42) − ∞ < x < +∞

Kriterijaus statistika D apibrėžiama taip: D = sup | Fn ( x) − F ( x) | . − ∞ < x < +∞

Kolmogorovo D statistiką galima apskaičiuoti taip: D = max( D + , D − ) i − 1   i D + = max − U (i ) , D − = maxU ( i ) − , 1≤i ≤ n n 1≤i ≤ n n    

(6.43)

čia U ( i ) = F ( X (i ) ) . Kolmogorovo, Anderson-Darling ir Cramer-von Mises suderinamumo kriterijų statistikų reikšmės ir P-reikšmės spausdinamos, kai SAS procedūroje UNIVARIATE nurodome HISTOGRAM sakinį (žr. IIIsk., 3.3 skyrelį). SAS numatyta galimybė patikrinti suderinamumo hipotezę tokiems skirstiniams: beta, eksponentinis, gama, lognormalus, normalus, Veibulo. Sintaksė: PROC UNIVARIATE DATA=lentelė; VAR kintamieji; HISTOGRAM kintamieji / pasirinktys; RUN;

čia kintamieji – analizuojami kintamieji (arba kintamasis); pasirinktys: skirstinys(parametrų reikšmės);

kur skirstinys – skirstinį apibrėžiantis žodis, skliaustuose nurodome tikimybinio skirstinio parametrų reikšmes. Aptarsime sintaksę kiekvieno skirstinio atveju. 1) Beta skirstinys. Sintaksė: BETA <( <SIGMA=reikšmė|EST>

) > .

Tankis:

162

 ( x − θ )α −1 (σ + θ − x) β −1 100h% , kai θ < x < θ + σ , p( x) =  B (α , β )σ α + β −1 0, kai x ≤ θ arba x ≥ θ + σ ,

(6.44)

čia σ > 0, α > 0, β > 0 , θ turi būti mažesnis už minimalią kintamojo reikšmę, θ + σ turi būti didesnis už maksimalią kintamojo reikšmę, B(α , β ) = Γ(α )Γ( β ) / Γ(α + β ) , h – histogramos plotis. Pagal nutylėjimą (t.y., kai nenurodome) imami α ir β maksimalaus tikėtinumo įverčiai, σ = 1 , θ = 0 ; jeigu nurodome SIGMA=EST, tai imamas parametro σ įvertis, jeigu nurodome THETA=EST, tai imamas parametro θ įvertis, pavyzdžiui, jei parašysime HISTOGRAM kintamasis / BETA, tai lygins su tokiu beta skirstiniu: σ = 1 , θ = 0 , vietoje parametrų α , β bus jų maksimalaus tikėtinumo įverčiai. Kai kurie autoriai naudoja tokią beta skirstinio išraišką:  ( x − a ) p −1 (b − x) q −1  , kai a < x < b, p ( x) =  B ( p, q )(b − a ) p + q −1 0, kai x ≤ a arba x ≥ b.

(6.45)

Parametrai iš (6.44) ir (6.45) susiję tokiu būdu: σ = b − a , θ = a , α = p , β = q . 2) Eksponentinis skirstinys. Sintaksė: EXPONENTIAL <(<SIGMA=reikšmė>

) >.

Tankis: 100h%   x − θ   exp −   , kai x ≥ θ , p( x) =  σ   σ  0, kai x < θ , 

(6.46)

čia σ > 0, h – histogramos plotis. Pagal nutylėjimą (t.y., kai nenurodome) θ = 0 , imamas σ maksimalaus tikėtinumo įvertis. Jeigu nurodome THETA=EST, tai imamas parametro θ įvertis, pavyzdžiui, jei parašysime HISTOGRAM kintamasis / EXPONENTIAL(THETA= EST), tai lygins su tokiu eksponentiniu skirstiniu: imami parametrų σ ir θ maksimalaus tikėtinumo įverčiai. 3) Gama skirstinys. Sintaksė: GAMMA <( <SIGMA=reikšmė>

)> .

Tankis: 100h%  x − θ α −1   x − θ   exp −   , kai x > θ , p ( x) =  Γ(α )σ  σ    σ  0, kai x ≤ θ , 

(6.47)

čia σ > 0, α > 0, θ turi būti mažesnis už minimalią kintamojo reikšmę, h – histogramos plotis. Pagal nutylėjimą (t.y., kai nenurodome) imami α ir σ maksimalaus tikėtinumo įverčiai, θ = 0 ; jeigu nurodome THETA=EST, tai imamas parametro θ įvertis. Gama skirstinio atskiri atvejai yra chi-kvadrato skirstinys (su ν laisvės laipsnių, kai (6.47) imame α = ν / 2 , σ = 2, θ = 0 ), eksponentinis skirstinys (kai (6.47) imame α = 1 ), Erlango skirstinys (kai (6.47) imame α - teigiamas sveikas skaičius). 4) Lognormalusis skirstinys. Sintaksė: LOGNORMAL <(<SIGMA=reikšmė>

) > .

Tankis:

163

 100h%  (log( x − θ ) − ς ) 2  , kai x > θ ,  exp − 2 p ( x) = σ 2π ( x − θ ) σ 2   0, kai x ≤ θ , 

(6.48)

čia − ∞ < ς < ∞, σ > 0, θ turi būti mažesnis už minimalią kintamojo reikšmę, h – histogramos plotis. Pagal nutylėjimą (t.y., kai nenurodome) imami σ ir ς maksimalaus tikėtinumo įverčiai, θ = 0 ; jeigu nurodome THETA=EST, tai imamas parametro θ įvertis. 5) Normalusis skirstinys. Sintaksė: NORMAL <(<MU=reikšmė>

<SIGMA=reikšmė> )> .

Tankis:  1  x − µ 2  , − ∞ < x < ∞, p( x) = exp −   2  σ   σ 2π   100h%

čia σ > 0 (standartinis nuokrypis), maksimalaus tikėtinumo įverčiai.

(6.49)

µ - vidurkis. Pagal nutylėjimą imami σ ir µ

6) Veibulo skirstinys. Sintaksė: WEIBULL <( <SIGMA=reikšmė>

)> .

Tankis: c −1    x − θ c  c  x −θ  100h%   exp −   , kai x > θ , p( x) =  σ σ  σ     0, kai x ≤ θ , 

(6.50)

čia σ > 0, c > 0, θ turi būti mažesnis už minimalią kintamojo reikšmę, h – histogramos plotis. Pagal nutylėjimą (t.y., kai nenurodome) imami c ir σ maksimalaus tikėtinumo įverčiai, θ = 0 ; jeigu nurodome THETA=EST, tai imamas parametro θ įvertis. 6.9 p a v y z d y s. Tarkime, kad turime duomenų lentelę „Duomenys“, sukurtą su tokiu Data žingsniu: DATA Duomenys; DROP i; DO i=1 TO 200; X=2*normal(0)+10; /*kadangi skliaustuose 0, tai kelis kartus*/ OUTPUT; /*atlikę Data žingsnį, gausime vis kitus duomenis*/ END; RUN;

a) Patikrinkime hipotezę, kad X skirstinys yra normalusis su vidurkiu 10 ir dipersija 4. Editor lange parašome: PROC UNIVARIATE DATA=Duomenys; VAR X; HISTOGRAM X / NORMAL(MU=10 SIGMA=2); RUN;

Sakinyje HISTOGRAM nurodėme NORMAL, todėl tikrins ar skirstinys normalusis su tokiais parametrais, kuriuos nurodėme skliaustuose, t.y. vidurkis 10 ir standartinis nuokrypis 2. Output lange gauname: The UNIVARIATE Procedure Fitted Distribution for X Parameters for Parameter Mean Std Dev

Normal Distribution Symbol Estimate Mu 10 Sigma 2

164

Test

Goodness-of-Fit Tests for Normal Distribution ---Statistic--------p Value-----

Kolmogorov-Smirnov Cramer-von Mises Anderson-Darling

D W-Sq A-Sq

0.07467362 0.20353382 1.17335942

Pr > D Pr > W-Sq Pr > A-Sq

0.211 >0.250 >0.250

Lentelėje „Goodness-of-Fit Tests for Normal Distribution” (suderinamumo kriterijai normališkumui tikrinti) spausdinama: Kolmogorovo kriterijaus statistikos (KolmogorovSmirnov; (6.43)) reikšmė D = 0,07467362 ir P-reikšmė 0,211; Anderson-Darling kriterijaus statistikos (6.41) reikšmė A 2 = 1,17335942 ir P-reikšmė, kuri šiame pavyzdyje yra didesnė už 0,25; Cramer-von Mises statistikos (6.40) reikšmė W 2 = 0,20353382 ir P-reikšmė, kuri šiame pavyzdyje yra didesnė už 0,25. Visais trimis atvejais gauname, kad hipotezė neatmetama. b) Patikrinkime hipotezę, kad X skirstinys yra normalusis su vidurkiu 10 ir standartiniu nuokrypiu 1,5 dispersija. Editor lange parašome: PROC UNIVARIATE DATA=Duomenys; VAR X; HISTOGRAM X / NORMAL(MU=10 SIGMA=1.5); RUN;

Output lange gauname: The UNIVARIATE Procedure Fitted Distribution for X Parameters for Normal Distribution Parameter Symbol Estimate Mean Mu 10 Std Dev Sigma 1.5 Goodness-of-Fit Tests for Normal Distribution Test

---Statistic----

-----p Value-----

Kolmogorov-Smirnov Cramer-von Mises Anderson-Darling

D W-Sq A-Sq

Pr > D Pr > W-Sq Pr > A-Sq

0.10716266 0.49454993 4.49379752

0.020 0.043 0.005

Gauname, kad Kolmogorovo kriterijaus statistikos reikšmė D = 0,10716266 ir Preikšmė 0,02; Anderson-Darling kriterijaus statistikos reikšmė A 2 = 4,49379752 ir P-reikšmė 0,005; Cramer-von Mises statistikos reikšmė W 2 = 0,49454993 ir P-reikšmė 0,043. Visi trys kriterijai duoda tą patį atsakymą: hipotezė atmetama su reikšmingumo lygmeniu 0,05. 2.2. Homogeniškumo tikrinimas

Šiame skyrelyje aprašysime kriterijus, kurie grindžiami teorinės ir empirinės pasiskirstymo funkcijų palyginimu ir skirti patikrinti homogeniškumo hipotezę. Tegu x1 , x 2 ..., x n1 yra a.d. X imtis, o y1 , y 2 ..., y n2 - a.d. Y imtis. Tarkime, kad nieko nežinome apie stebimų tolydžiųjų atsitiktinių dydžių tikimybinį skirstinį ir reikia patikrinti hipotezę apie skirstinių tapatumą. Pažymėkime F1 - a.d. X pasiskirstymo funkcija, F2 - a.d. Y pasiskirstymo funkcija. Apibrėžkime X ir Y empirines pasiskirstymo funkcijas: n

n

1 1 1 2 ˆ ; ≤ = I { } ( ) Fˆ1 ( x) = x x F y ∑ j ∑ I{ y j ≤ y} . 2 n1 j =1 n2 j =1

(6.51)

Reikia patikrinti hipotezę

H 0 : MFˆ1 ( x) ≡ MFˆ2 ( x), 165

(6.52)

t.y. skirstiniai vienodi. Pažymėkime

1 Fˆ = ∑ ni Fˆi , n i

(6.53)

čia ni – i-tosios imties dydis, n – bendras stebėjimų skaičius. Kolmogorovo-Smirnovo statistika apibrėžiama:

1 ∑ ni ( Fˆi ( x j ) − Fˆ ( x j )) 2 . n i

KS = max j

(6.54)

Asimptotinė Kolmogorovo-Smirnovo statistika:

KS a = KS n .

(6.55)

Kai turime dvi imtis, tai Kolmogorovo-Smirnovo tiksli statistika: D = max | Fˆ1 ( x j ) − Fˆ2 ( x j ) |, j

(6.56)

vienpusės Kolmogorovo-Smirnovo statistikos: D + = max ( Fˆ1 ( x j ) − Fˆ2 ( x j )), D − = max ( Fˆ2 ( x j ) − Fˆ1 ( x j )). j

j

(6.57)

Šias statistikas apskaičiuoja SAS procedūra NPAR1WAY, kai nurodome pasirinktį EDF. Sintaksė: PROC NPAR1WAY EDF DATA=lentelė; CLASS kint1; VAR kint2; FREQ kint3; EXACT KS; RUN;

čia kint1 – klasifikuojantis kintamasis, kuris nurodo, kuriai imčiai priklauso stebėjimas; kint2 – analizuojamas kintamasis; sakinį FREQ reikia nurodyti tik tada, kai turime susumuotus duomenis; sakinį EXACT nurodome, jeigu norime, kad spausdintų tikslias P-reikšmes; nebūtina pasirinktis D nurodo, kad turi būti apskaičiuotos vienpusės Kolmogorovo-Smirnovo statistikos (6.57) ir P-reikšmės. 6.10 p a v y z d y s. Sukurkime duomenų lentelę su tokiu Data žingsniu: DATA Duomenys; DROP i; g=1; DO i=1 TO 50; X=normal(10)+1; OUTPUT; END; g=2; DO i=1 TO 50; X=normal(10); OUTPUT; END; RUN;

Patikrinkime homogeniškumo hipotezę. Editor lange parašykime: PROC NPAR1WAY EDF DATA=Duomenys; CLASS g; VAR X; RUN;

166

Nurodėme EDF, todėl apskaičiuos Kolmogorovo-Smirnovo kriterijaus statistiką ir Preikšmę. Output lange gauname: The NPAR1WAY Procedure Kolmogorov-Smirnov Test for Variable X Classified by Variable g

g 1 2 Total

N

EDF at Maximum

50 50 100

0.140 0.580 0.360

Deviation from Mean at Maximum -1.555635 1.555635

Komentaras: N – stebėjimų skaičius; „EDF at maximum“ yra imties (grupės) EDF (empirinės pasiskirstymo funkcijos; Fˆi ) reikšmė jos maksimalaus nuokrypio nuo jungtinės EDF ( Fˆ ; apibrėžta (6.53)) taške; „Deviation from mean at maximum“ yra

ni ( Fˆi − Fˆ )

reikšmė jos maksimumo taške. Maximum Deviation Occurred at Observation 85 Value of X at Maximum = 0.162299

Komentaras: maksimalus nuokrypis yra 85 stebėjimo; šiam stebėjimui analizuojamo kintamojo reikšmė yra 0,162299. Kolmogorov-Smirnov Two-Sample Test (Asymptotic) KS 0.220000 D 0.440000 KSa 2.200000 Pr > KSa 0.0001

Komentaras: KS yra statistikos (6.54) reikšmė; D yra statistikos (6.56) reikšmė; KSa yra statistikos (6.55) reikšmė ir Pr>Ksa yra atitinkama dvipusė P-reikšmė. Kadangi Preikšmė 0.0001, tai hipotezė atmetama, t.y. pirmos ir antros imties skirstiniai skiriasi.

3. Ranginiai kriterijai Šiame skyrelyje nagrinėsime ranginius kriterijus. Konstruojant šiuos kriterijus naudojami ne patys stebėjimai, o jų išsidėstymo variacinėje eilutėje numeriai, kurie vadinami rangais. Pradžioje aptarsime ranginius sąryšio matus, o paskui homogeniškumo hipotezės tikrinimą naudojant ranginius kriterijus.

3.1. Spirmeno ranginės koreliacijos koeficientas Spirmeno koreliacijos koeficientas (Spearman Rank-Order Correlation) yra Pirsono koreliacijos koeficiento (žr.IV sk., 2.2 skyrelį) neparametrinis analogas. Pirsono koreliacijos koeficientą galima naudoti, kai prielaida apie duomenų normališkumą patenkinta, jeigu ji nepatenkinta, tai reikia naudoti Spirmeno koreliacijos koeficientą. Jis apskaičiuojamas naudojant ne pačius stebėjimus, o jų rangus. Tarkime, kad stebime tolydžiųjų kintamųjų porą (X,Y) ir turime tokius stebėjimus: ( x1 , y1 ),..., ( x n , y n ) . Duomenis suranguojame. Tarkime, kad R xi yra xi rangas, o R yi yra y i rangas, i = 1,..., n . Po rangavimo duomenis sudaro poros ( R xi , R yi ), i = 1,..., n . Spirmeno koreliacijos koeficientas:

167

n

rs =

∑ (R

xi

− R x )( R yi − R y )

i =1

n

∑ (R

xi

− Rx )

2

i =1

(6.58)

n

∑ (R

yi

− Ry )

2

i =1

čia R x yra reikšmių R x1 ,..., R xn aritmetinis vidurkis, o R y yra reikšmių R y1 ,..., R yn aritmetinis vidurkis. Iš (6.58) matome, kad Spirmeno koreliacijos koeficientas yra Pirsono koreliacijos koeficientas apskaičiuotas ne pačioms kintamųjų reikšmėms, o jų rangams. Spirmeno koreliacijos koeficientas interpretuojamas taip pat kaip Pirsono koreliacijos koeficientas. Spirmeno koreliacijos koeficiento ženklas parodo neigiamas ar teigiamas ryšys. Teigiama koreliacija: kai vieno kintamojo reikšmės didėja, tai ir kito kintamojo reikšmės didėja. Neigiama koreliacija: kai vieno kintamojo reikšmės didėja, tai kito kintamojo reikšmės mažėja. Kuo koeficientas absoliučiuoju didumu didesnis, tuo ryšys stipresnis (didesnė koreliacija). Galima naudotis tokiomis taisyklėmis: kai koeficiento reikšmė ±1, tai ideali koreliacija; kai ±0.8, tai stipri koreliacija; kai ±0.5, tai vidutinė koreliacija; kai ±0.2, tai silpna koreliacija; kai 0, tai koreliacijos nėra. Prieš darant išvadą apie kintamųjų koreliaciją reikia patikrinti ar koreliacija statistiškai reikšminga, t.y. reikia patikrinti hipotezę H 0 : X ir Y nekoreliuoja

(6.59)

su alternatyva H 1 : X ir Y koreliuoja. Hipotezė (6.59) reiškia, kad koreliacijos koeficientas rs statistiškai reikšmingai nesiskiria nuo nulio (koreliacija nėra statistiškai reikšminga), alternatyva – koreliacija statistiškai reikšminga, kintamieji priklausomi. Kriterijaus statistika:

T = rs

n−2 , 1 − rs2

(6.60)

čia rs - imties Spirmeno koreliacijos koeficiento reikšmė, apskaičiuota pagal (6.58). Tarkime, kad reikšmingumo lygmuo α . Hipotezė H 0 atmetama, kai |T|> t α / 2 , čia T – apibrėžta (6.60), t α yra Stjudento skirstinio su n-2 laisvės laipsniais α-toji kritinė reikšmė. Spirmeno koreliacijos koeficientą galima apskaičiuoti su SAS procedūra CORR. Sintaksė: PROC CORR DATA=lentelė SPEARMAN; VAR kintamieji; RUN;

VAR sakinyje nurodome kintamuosius, kurių koreliacijos koeficientus norime apskaičiuoti. Procedūroje CORR galima naudoti tokius sakinius: BY kintamieji; /*atskira analizė pagal BY kintamųjų reikšmes*/ FREQ kintamasis; /* dažnio kintamasis */ VAR kintamieji; /* stulpelių kintamieji */ WEIGHT kintamasis; /* svorio kintamasis */ WITH kintamieji; /* eilučių kintamieji */ 6.11 p a v y z d y s. Modeliuokime a.v. ( X , Y ) ~ N 2 (µ, Σ) dydžio n = 30 imtį, čia  4 1 .6  , t.y. ρ = 0,4 . Apskaičiuokime Spirmeno koreliacijos koeficientą ir µ = (2, 3), Σ =   1 .6 1  patikrinkime ar koreliacija statistiškai reikšminga. Reikšmingumo lygmuo 0,05 Editor lange parašome:

168

%LET n=30; %LET miu1=2; %LET miu2=3; %LET sigma1=2; %LET sigma2=1; %LET ro=0.4; DATA dvimatis; DO i=1 TO &n; X=&miu1+&sigma1*NORMAL(10); vid=&miu2+&ro*(&sigma2/&sigma1)*(X-&miu1); std=sqrt(&sigma2*(1-&ro*&ro)); Y=vid+std*NORMAL(10); OUTPUT; END; RUN; PROC CORR DATA=dvimatis SPEARMAN; VAR X Y; RUN;

Output lange gauname: 2

Variable X Y

N 30 30

The CORR Procedure Variables: X Y

Mean 1.36643 3.02169

Simple Statistics Std Dev 1.64923 0.79639

Median 1.15047 2.88230

Minimum -1.28366 1.52897

Maximum 6.65943 4.60821

Spearman Correlation Coefficients, N = 30 Prob > |r| under H0: Rho=0 X

Y

X

1.00000

0.45362 0.0118

Y

0.45362 0.0118

1.00000

Lentelėje „Simple Statistics“ yra spausdinamos kintamųjų X ir Y skaitinės charakteristikos: stebėjimų skaičius (N), vidurkis (Mean), standartinis nuokrypis (Std Dev), mediana (Median), minimali (Minimum) ir maksimali (Maximum) reikšmės. Lentelėje „Spearman Correlation Coefficients“ spausdinama apskaičiuota pagal imties duomenis Spirmeno koreliacijos koeficiento reikšmė 0,45362 (žr.(6.58)) ir P-reikšmė, skirta patikrinti hipotezę (6.59). Kadangi P-reikšmė yra 0.0118, tai hipotezė atmetama su reikšmingumo lygmeniu 0,05, t.y. kintamieji X ir Y koreliuoja. Kadangi koreliacijos koeficiento reikšmė 0,45362, tai koreliacija teigiama. Spirmeno koreliacijos koeficientą galima taikyti imties atsitiktinumui tikrinti. Tuomet duomenis sudaro ( x1 ,1), ( x 2 ,2),..., ( x n , n) . Imtis x1 , x 2 ,..., x n atsitiktinė, jeigu priklausomybės nerandame (hipotezės neatmetame).

3.2. Kendalo ranginės koreliacijos koeficientas Kendalo ranginės koreliacijos koeficientas (Kendall‘s Tau-b Correlation Coefficient) naudojamas kintamųjų ryšio stiprumui įvertinti. Jis grindžiamas suderintų ir nesuderintų porų skaičiumi. Tarkime, kad stebime tolydžiųjų kintamųjų porą (X,Y) ir turime tokius stebėjimus: ( x1 , y1 ),..., ( x n , y n ) . Dvi duomenų poros ( xi , y i ) ir ( x j , y j ) , i ≠ j yra suderintos, jei ( xi > x j ir y i > y j ) arba ( xi < x j ir y i < y j ). Dvi duomenų poros ( xi , y i ) ir ( x j , y j ) , i ≠ j yra nesuderintos, jei ( xi > x j ir y i < y j ) arba ( xi < x j ir y i > y j ). Kendalo ranginės koreliacijos koeficientas:

169

τ=

∑ (sgn( x

i

− x j ) sgn( y i − y j ))

i< j

(T0 − T1 )(T0 − T2 )

,

(6.61)

čia T0 = n(n − 1) / 2, T1 = ∑ t k (t k − 1) / 2, T2 = ∑ u l (u l − 1) / 2 ; t k - yra kintamojo X reikšmių k

l

skaičius k-tojoje kintamojo X susietųjų reikšmių grupėje; u l - yra kintamojo Y reikšmių skaičius l-tojoje kintamojo Y susietųjų reikšmių grupėje;

kai z > 0, 1,  sgn( z ) = 0, kai z = 0, − 1, kai z < 0.  Susietosiomis reikšmėmis vadinamos reikšmės, kurioms priskiriami vienodi rangai, t.y. sutampančios (pasikartojančios) reikšmės. Kaip ir Spirmeno koeficiento atveju, galima ne tik apskaičiuoti Kendalo koeficientą, bet ir patikrinti, ar gauta koreliacija statistiškai reikšminga. Reikia patikrinti hipotezę H 0 : X ir Y nekoreliuoja

(6.62)

su alternatyva H 1 : X ir Y koreliuoja. Hipotezė (6.62) reiškia, kad koreliacijos koeficientas τ statistiškai reikšmingai nesiskiria nuo nulio (koreliacija nėra statistiškai reikšminga), alternatyva – koreliacija statistiškai reikšminga, kintamieji priklausomi. Kriterijaus statistika: Z=

čia

s V (s )

,

(6.63)

s = ∑ (sgn( xi − x j ) sgn( y i − y j )), i< j

V (s) =

v 0 − vt − vu v1 v2 , + + 18 2n(n − 1) 9n(n − 1)(n − 2) v0 = n(n − 1)(n − 2),

vt = ∑ t k (t k − 1)(2t k + 5), vu = ∑ u l (u l − 1)(2u l + 5), k

l

      v1 =  ∑ t k (t k − 1)  ∑ u l (u l − 1) , v 2 =  ∑ t k (t k − 1)(t k − 2)  ∑ u l (u l − 1)(u l − 2) ,   l  k   l  k t k - kintamojo X reikšmių skaičius k-tojoje kintamojo X susietųjų reikšmių grupėje; u l - yra kintamojo Y reikšmių skaičius l-tojoje kintamojo Y susietųjų reikšmių grupėje. Tarkime, kad reikšmingumo lygmuo α . Hipotezė H 0 atmetama, kai |Z|> z α / 2 , čia Z – apibrėžta (6.63), z α - standartinio normalaus skirstinio α-toji kritinė reikšmė. Kendalo koreliacijos koeficientą galima apskaičiuoti su SAS procedūra CORR. Sintaksė: PROC CORR DATA=lentelė KENDALL; VAR kintamieji; RUN;

VAR sakinyje nurodome kintamuosius, kurių koreliacijos koeficientus norime apskaičiuoti.

170

6.12 p a v y z d y s. Tarkime, kad turime duomenis iš 6.11 pavyzdžio. Apskaičiuokime Kendalo koreliacijos koeficientą ir patikrinkime ar jis statistiškai reikšmingas. Editor lange parašykime: PROC CORR DATA=dvimatis KENDALL; VAR X Y; RUN;

Output lange gauname:

The CORR Procedure Variables: X Y

2

Variable X Y

N

Mean

30 30

1.36643 3.02169

Simple Statistics Std Dev

Median

Minimum

Maximum

1.64923 0.79639

1.15047 2.88230

-1.28366 1.52897

6.65943 4.60821

Kendall Tau b Correlation Coefficients, N = 30 Prob > |r| under H0: Rho=0 X

Y

X

1.00000

0.31034 0.0160

Y

0.31034 0.0160

1.00000

Lentelėje „Simple Statistics“ yra spausdinamos kintamųjų X ir Y skaitinės charakteristikos: stebėjimų skaičius (N), vidurkis (Mean), standartinis nuokrypis (Std Dev), mediana (Median), minimali (Minimum) ir maksimali (Maximum) reikšmės. Lentelėje „Kendall Tau b Correlation Coefficients“ spausdinama apskaičiuota pagal imties duomenis Kendalo koreliacijos koeficiento reikšmė 0,31034 (žr.(6.61)) ir P-reikšmė, skirta patikrinti hipotezę (6.62). Kadangi P-reikšmė yra 0.0160, tai hipotezė atmetama su reikšmingumo lygmeniu 0,05, t.y. kintamieji X ir Y koreliuoja.

3.3. Mano-Vitnio-Vilkoksono kriterijus Mano-Vitnio-Vilkoksono (Mann-Whitney-Wilcoxon) kriterijus yra Stjudento t kriterijaus nepriklausomos imtims neparametrinis analogas. Nereikalaujama duomenų normališkumo. Konstruojant kriterijų naudojami duomenų rangai. Tikrinama homogeniškumo hipotezė su alternatyva, kad skirstiniai skiriasi poslinkio parametru. Tarkime, kad turime dvi nepriklausomas imtis: x1 ,..., x n1 yra tolydžiojo a.d. X imtis, y1 ,..., y n2 yra tolydžiojo a.d. Y imtis. Tegu a.d. X pasiskirstymo funkcija yra F(x), o a.d. Y pasiskirstymo funkcija yra G(y), F ir G tolydžios pasiskirstymo funkcijos. Reikia patikrinti hipotezę: H 0 : F (t ) ≡ G (t ), | t |< ∞,

(6.64)

su alternatyva H 1 : skirstiniai nevienodi. Imtis sujungiame į vieną imtį, išdėstome stebėjimus didėjimo tvarka nuo mažiausio iki didžiausio stebėjimo (t.y. sudarome variacinę eilutę). Gausime tokio tipo seką: a 1

a 2

b 3

a 4

a 5

a 6

b 7

b 8

b 9

b 10

... ...

a n-2

b n-1

b n

čia b yra a.d. X imties nariai; a – a.d. Y imties nariai. n = n1 + n2 . Apačioje užrašome eilės numerius (rangus). Tarkime, kad n2 ≤ n1 . Tegu R1 ,L , Rn2 yra rangai, atitinkantys dydžius a. Mano-Vitnio-Vilkoksono kriterijaus statistika: W = R1 + ... + Rn2 ,

171

(6.65)

t.y. imame mažesnio tūrio imtį, išrenkame jos narius ir susumuojame rangus. Asimptotinė kriterijaus statistika: W − E 0 (W )

z=

var0 (W )

⇒ N (0,1) , jei H 0 teisinga,

(6.66)

n →∞

čia

E 0 (W ) =

n2 n

n

∑R , j

var0 (W ) =

j =1

1 n1 n2 n −1 n

n

∑ (R

j

− a)2 , a =

j =1

1 n ∑ Rj , n j =1

(6.67)

n2 - stebėjimų skaičius mažesnėje imtyje. Mano-Vitnio-Vilkoksono kriterijaus statistikos reikšmę ir atitinkamas P-reikšmes galima apskaičiuoti su SAS modulio STAT procedūra NPAR1WAY. Sintaksė: PROC NPAR1WAY WILCOXON DATA=lentelė; CLASS kint1; VAR kint2; FREQ kint3; EXACT; RUN;

čia kint1 – klasifikuojantis kintamasis, kuris nurodo, kuriai imčiai priklauso stebėjimas; kint2 – analizuojamas kintamasis; sakinį FREQ reikia nurodyti tik tada, kai turime susumuotus duomenis; sakinį EXACT nurodome, jeigu norime, kad spausdintų tikslias P-reikšmes. Apskaičiuojant asimptotinio kriterijaus statistikos reikšmę yra naudojama tolydumo pataisa (jei nenorime, tai PROC sakinyje nurodome CORRECT=NO; apskaičiuos pagal (6.66) formulę): W − E 0 (W ) − 0.5 , jei W − E 0 (W ) > 0 ; (6.68) z= var0 (W ) z=

W − E 0 (W ) + 0.5 var0 (W )

, jei W − E 0 (W ) < 0 .

Procedūra NPAR1WAY spausdina asimptotines vienpusę ir dvipusę P-reikšmes: vienpusė P-reikšmė (asimptotinis kriterijus): P{Z > z}, kai z > 0, P1 =  P{Z < z}, kai z < 0,

(6.69)

dvipusė P-reikšmė (asimptotinis kriterijus):

P2 = P{| Z |>| z |},

(6.70)

čia z – apskaičiuota pagal imties duomenis statistikos reikšmė, Z – tikėtina statistikos reikšmė, kai homogeniškumo hipotezė teisinga. Kai nurodome sakinį EXACT, tai apskaičiuojamos tikslios P-reikšmės: vienpusė P-reikšmė (tikslus kriterijus):

P{W0 ≥ W }, kai W > E 0 (W ), P1 =  P{W0 ≤ W }, kai W ≤ E 0 (W ),

(6.71)

dvipusė P-reikšmė (tikslus kriterijus): P2 = P{| W0 − E 0 (W ) |≥| W − E 0 (W ) |},

(6.72)

čia W – apskaičiuota pagal imties duomenis statistikos reikšmė, W0 – tikėtina statistikos reikšmė, kai homogeniškumo hipotezė teisinga; E 0 (W ) apibrėžtas (6.67). 172

6.13 p a v y z d y s. Modeliuokime dvi nepriklausomas imtis, patikrinkime homogeniškumo hipotezę. Editor lange parašykime: DATA Duomenys; DROP i; g=1; DO i=1 TO 30; X=normal(10)+1; OUTPUT; END; g=2; DO i=1 TO 30; X=normal(10); OUTPUT; END; RUN; PROC NPAR1WAY WILCOXON DATA=Duomenys; CLASS g; VAR X; EXACT; RUN;

Output lange gauname:

The NPAR1WAY Procedure

Wilcoxon Scores (Rank Sums) for Variable X Classified by Variable g

g

N

Sum of Scores

Expected Under H0

Std Dev Under H0

Mean Score

1 2

30 30

1178.0 652.0

915.0 915.0

67.638746 67.638746

39.266667 21.733333

Wilcoxon Two-Sample Test Statistic (S)

1178.0000

Normal Approximation Z One-Sided Pr > Z Two-Sided Pr > |Z|

3.8809 <.0001 0.0001

t Approximation One-Sided Pr > Z Two-Sided Pr > |Z|

0.0001 0.0003

Exact Test One-Sided Pr >= S Two-Sided Pr >= |S - Mean|

2.916E2.916E-05 5.833E5.833E-05

Z includes a continuity correction of 0.5.

Lentelėje “Wilcoxon Scores (Rank Sums)“ spausdinamas: stebėjimų skaičius (N); rangų suma („Sum of scores“); E 0 (W ) apibrėžtas (žr. (6.67), „Expected Under H0“); var0 (W ) (žr.(6.67), „Std.Dev under H0“); vidutiniai rangai („Mean Score“; rangų suma padalinta iš stebėjimų skaičiaus imtyje), parodo kurioje imtyje yra daugiau didesnių reikšmių. Lentelėje „Wilcoxon Two-Sample Test, Normal Approximation“ spausdinama statistikos (6.68) reikšmė z=3,8809; vienpusė P-reikšmė („One-Sided Pr>Z“, žr.(6.69)), kuri šiame pavyzdyje yra mažesnė už 0,0001; dvipusė P-reikšmė („Two-Sided Pr>|Z|“, žr.(6.70)), kuri šiame pavyzdyje yra 0,0001. Kadangi nenurodėme CORRECT=NO, tai skaičiuojant z statistiką buvo panaudota tolydumo pataisa. Gauname, kad hipotezė atmetama, nes gauta Preikšmė yra mažesnė už pasirinktą reikšmingumo lygmenį, t.y. skirstiniai nevienodi. Kadangi

173

imties su g=1 vidutinis rangas („Mean Score“) didesnis, tai daugiau didesnių reikšmių yra šioje imtyje. Lentelėje „Wilcoxon Two-Sample Test, Exact Test“ spausdinama; vienpusė P-reikšmė („One-Sided Pr>=S“, žr.(6.71)), dvipusė P-reikšmė („Two-Sided Pr>=|S-Mean|“, žr.(6.72)). Palyginę gautas P-reikšmes su pasirinktu reikšmingumo lygmeniu, gauname, kad homogeniškumo hipotezė (6.64) atmetama, t.y. skirstiniai nevienodi.

3.4. Van der Vardeno kriterijus Van der Vardeno (Van der Waerden) kriterijaus paskirtis tokia pati kaip ir ManoVitnio-Vilkoksono kriterijaus, kurį nagrinėjome 3.3 skyrelyje. Konstruojant kriterijų naudojami duomenų rangai. Tikrinama homogeniškumo hipotezė su alternatyva, kad skirstiniai skiriasi poslinkio parametru. Tarkime, kad turime dvi nepriklausomas imtis: x1 ,..., x n1 yra tolydžiojo a.d. X imtis, y1 ,..., y n2 yra tolydžiojo a.d. Y imtis. Reikia patikrinti homogeniškumo hipotezę (6.64). Suranguojame duomenis taip pat kaip 3.3 skyrelyje. Tarkime, kad n2 ≤ n1 . Tegu R1 ,L , Rn2 yra rangai, atitinkantys stebėjimus iš mažesniosios imties. Van der Vardeno kriterijaus statistika: S = a ( R1 ) + ... + a ( Rn2 ),

(6.73)

 Rj  , Φ (x) - standartinio normalaus skirstinio pasiskirstymo funkcija. čia a ( R j ) = Φ −1   n + 1 Asimptotinė kriterijaus statistika: z=

S − E0 (S ) var0 ( S )

⇒ N (0,1) , jei H 0 teisinga,

n →∞

(6.74)

n2 n 1 n 1 n1 n2 n 2 a R W = ( a ( R ) − a ) , a = ( ) , var ( ) ∑ j ∑ j ∑ a( R j ), n2 - ste0 n j =1 n − 1 n j =1 n j =1 bėjimų skaičius mažesnėje imtyje. Van der Vardeno kriterijaus statistikos reikšmę ir atitinkamas P-reikšmes galima apskaičiuoti su SAS modulio STAT procedūra NPAR1WAY. Sintaksė: čia E 0 ( S ) =

PROC NPAR1WAY VW DATA=lentelė; CLASS kint1; VAR kint2; FREQ kint3; RUN;

čia kint1 – klasifikuojantis kintamasis, kuris nurodo, kuriai imčiai priklauso stebėjimas; kint2 – analizuojamas kintamasis; sakinį FREQ reikia nurodyti tik tada, kai turime susumuotus duomenis. 6.14 p a v y z d y s. Imkime duomenis iš 6.13 pavyzdžio. Patikrinkime homogeniškumo hipotezę. PROC NPAR1WAY VW DATA=Duomenys; CLASS g; VAR X; RUN;

Output lange gauname:

The NPAR1WAY Procedure Van der Waerden Two-Sample Test Statistic Z One-Sided Pr > Z Two-Sided Pr > |Z|

174

14.0230 3.8133 <.0001 0.0001

Lentelėje „Van der Waerden Two-Sample Test“ spausdinama statistikos (6.73) reikšmė S=14,0230; asimptotinės statistikos reikšmė z=3,8133; vienpusė P-reikšmė („OneSided Pr>Z“), kuri šiame pavyzdyje yra mažesnė už 0,0001; dvipusė P-reikšmė („Two-Sided Pr>|Z|“) 0,0001. Gauname, kad hipotezė atmetama, nes gauta P-reikšmė yra mažesnė už pasirinktą reikšmingumo lygmenį, t.y. skirstiniai nevienodi.

3.5. Kruskalo-Voliso kriterijus Kruskalo-Voliso (Kruskall-Wallis) kriterijus naudojamas, kai reikia palyginti trijų ar daugiau populiacijų skirstinius, pavyzdžiui, ar trijų skirtingų veislių rugiai vienodai derlingi. Tegu X, Y, Z, ... yra nepriklausomi tolydūs atsitiktiniai dydžiai. Tegu stebint šiuos atsitiktinius dydžius gautos tokios imtys: ( x1 ,.., x n1 ), ( y1 ,..., y n2 ); ( z1 ,..., z n3 ), ... . Reikia patikrinti hipotezę: H 0 : kintamųjų skirstiniai vienodi su alternatyva H 1 : skirstiniai skiriasi. Kruskalo-Voliso kriterijus naudojamas patikrinti homogeniškumo hipotezę su poslinkio alternatyva, kai turime daugiau negu dvi nepriklausomas imtis. Sudarome jungtinę variacinę eilutę. Duomenis suranguojame. Pažymėkime: R j rangai, r – klasių (atsitiktinių dydžių skaičius). Kruskalo-Voliso kriterijaus statistika:

C=

1 s2

r

∑ (T

i

− E 0 (Ti )) 2 / ni ,

(6.75)

i =1

čia Ti = ∑ R j , sumuojama pagal visus narius iš i-tosios klasės,

1 n 1 n 2 ; (6.76) R s = (R j − a ) 2 . ∑ ∑ j n j =1 n − 1 j =1 Statistika, kai hipotezė H 0 teisinga, asimptotiškai ( n → ∞ ) pasiskirsčiusi pagal chikvadrato skirstinį su r-l laisvės laipsniu, t.y. E 0 (Ti ) = ni a ; a =

C ⇒ χ r2−1 , jei H 0 teisinga. n →∞

Kruskalo-Voliso kriterijaus statistikos reikšmę ir atitinkamas P-reikšmes galima apskaičiuoti su SAS modulio STAT procedūra NPAR1WAY. Sintaksė tokia pati kaip ir skaičiuojant Mano-Vitnio-Vilkoksono statistikos reikšmę ir P-reikšmes (žr.3.3 skyrelį): PROC NPAR1WAY WILCOXON DATA=lentelė; CLASS kint1; VAR kint2; RUN;

čia kint1 – klasifikuojantis kintamasis, kuris nurodo, kuriai imčiai priklauso stebėjimas; kint2 – analizuojamas kintamasis. 6.15 p a v y z d y s. Modeliuokime tris nepriklausomas imtis, patikrinkime homogeniškumo hipotezę. Editor lange parašykime: DATA Duomenys; DROP i; g=’a’; DO i=1 TO 30; X=normal(10)+1; OUTPUT; END; g=’b’; DO i=1 TO 35;

175

X=normal(10); OUTPUT; END; g=’c’; DO i=1 TO 30; X=normal(10)+1; OUTPUT; END; RUN; PROC NPAR1WAY WILCOXON DATA=Duomenys; CLASS g; VAR X; RUN;

Output lange gauname: Wilcoxon Scores (Rank Sums) for Variable X Classified by Variable g

g

N

Sum of Scores

Expected Under H0

Std Dev Under H0

Mean Score

a b c

30 35 30

1653.0 1051.0 1856.0

1440.0 1680.0 1440.0

124.899960 129.614814 124.899960

55.100000 30.028571 61.866667

Kruskal-Wallis Test Chi-Square DF Pr > Chi-Square

24.4538 2 <.0001

Lentelėje “Wilcoxon Scores (Rank Sums)“ spausdinamas: stebėjimų skaičius (N) kiekvienoje imtyje; rangų sumos Ti (žr. (6.75)„Sum of scores“); E 0 (Ti ) (žr. (6.76), „Expected Under H0“); standartinis nuokrypis, kai hipotezė teisinga („Std.Dev under H0“); vidutiniai rangai („Mean Score“; rangų suma padalinta iš stebėjimų skaičiaus imtyje), parodo kurioje imtyje yra daugiau didesnių reikšmių. Lentelėje „Kruskall-Wallis Test“ spausdinama statistikos (6.75) reikšmė C=24,4538 („Chi-Square“); P-reikšmė („Pr>Chi-Square“), kuri šiame pavyzdyje yra mažesnė už 0,0001. Gauname, kad hipotezė atmetama, nes gauta P-reikšmė yra mažesnė už pasirinktą reikšmingumo lygmenį, t.y. skirstiniai nevienodi.

3.6 Homogeniškumo hipotezės su mastelio alternatyva tikrinimas Skyreliuose 3.3-3.5 nagrinėjome kriterijus, kurie naudojami patikrinti homogeniškumo hipotezę H 0 : skirstiniai vienodi su poslinkio alternatyva. Šiame skyrelyje pateiksime SAS realizuotus kriterijus, kurie skirti patikrinti hipotezę H 0 su mastelio alternatyva. Galima taikyti dviems arba daugiau imčių (skiriasi kriterijaus statistikos skaičiavimas). Duomenys išdėstomi į bendrą variacinę eilutę ir suranguojami. Skirtingai ranguojant gaunami įvairūs kriterijai. Skaičiuojama su SAS modulio STAT procedūra NPAR1WAY. I) Dviejų imčių atvejis. Tarkime, kad turime dvi nepriklausomas imtis: x1 ,..., x n1 yra tolydžiojo a.d. X imtis, y1 ,..., y n2 yra tolydžiojo a.d. Y imtis. Tarkime, kad n1 ≤ n2 . Tegu R1 , L , Rn1 yra mažesnės imties stebėjimų rangai. Kriterijaus statistika yra pavidalo: n1

S = ∑ a (R j ), j =1

čia a ( R j ) yra tam tikra rangų funkcija. Pažymėkime n = n1 + n2 . 176

(6.77)

1) Siegel-Tukey kriterijų gauname imdami: a (1) = 1, a (n) = 2, a (n − 1) = 3, a (2) = 4, a (3) = 5, a (n − 2) = 6, a (n − 3) = 7, a (4) = 8, ...

(6.78)

t.y., sudarome bendrą variacinę eilutę ir priskiriame rangus pagal (6.78) taisyklę, pavyzdžiui, X 1

X 3

Y 5

Y 7

Y 9

... Y ... 8

Y 6

X 4

Y 2

Pagal nutylėjimą, kai taikome dviejų imčių Siegel-Tukey, tai apskaičiuojant asimptotinio kriterijaus statistikos reikšmę yra naudojama tolydumo pataisa 0,5 (žr.3.3 skyrelį); jeigu nenorime, kad būtų taikoma tolydumo pataisa, tai PROC sakinyje nurodome CORRECT=NO. 2) Ansari-Bradley kriterijų gauname imdami: a (1) = 1, a (n) = 1, a (2) = 2, a (n − 1) = 2, ...

(6.79)

3) Klotz kriterijų gauname imdami: 2

  R j    , a ( R j ) =  Φ −1   + n 1   

(6.80)

čia Φ (x) - standartinio normalaus skirstinio pasiskirstymo funkcija. 4) Mood kriterijų gauname imdami: 2

n + 1  a( R j ) =  R j −  . 2  

(6.81)

Asimptotinė kriterijaus statistika: z=

S − E0 (S ) var0 ( S )

⇒ N (0,1) , jei H 0 teisinga,

(6.82)

n →∞

čia S apibrėžta (6.77),

E0 (S ) =

n1 n 1 n1 n2 a( R j ), var0 ( S ) = ∑ n j =1 n −1 n

n

∑ (a( R j ) − a ) 2 , a = j =1

1 n ∑ a( R j ), n j =1

(6.83)

n1 - stebėjimų skaičius mažesnėje imtyje. Procedūra NPAR1WAY spausdina asimptotines vienpusę ir dvipusę P-reikšmes, o taip pat tikslias P-reikšmes, kai nurodome sakinį EXACT. II) Daugiau negu dviejų imčių atvejis. Tegu X, Y, Z, ... yra nepriklausomi tolydūs atsitiktiniai dydžiai. Tegu stebint šiuos atsitiktinius dydžius gautos tokios imtys: ( x1 ,.., x n1 ), ( y1 ,..., y n2 ); ( z1 ,..., z n3 ), ... . Sudarome jungtinę variacinę eilutę. Duomenis suranguojame. Pažymėkime: R j - rangai, r – klasių (atsitiktinių dydžių skaičius). Kriterijaus statistika: C=

1 s2

r

∑ (T

i

− E 0 (Ti )) 2 / ni ,

(6.84)

i =1

n

čia Ti = ∑ cij a ( R j ), t.y. sumuojama pagal stebėjimus iš i-tosios klasės, a ( R j ) yra tam tikra j =1

rangų funkcija (imdami atitinkamai (6.78)-(6.81) gauname Siegel-Tukey, Ansari-Bradley,

177

Klotz, Mood kriterijus), R j yra j-tojo stebėjimo rangas, cij - indikatorius, parodantis ar j-tasis stebėjimas priklauso i-tajai imčiai,

1 n 1 n 2 a ( R ) ; s = (6.85) ∑ j ∑ (a( R j ) − a ) 2 . n j =1 n − 1 j =1 Statistika, kai hipotezė H 0 teisinga, asimptotiškai ( n → ∞ ) pasiskirsčiusi pagal chikvadrato skirstinį su r-l laisvės laipsniu, t.y. E 0 (Ti ) = ni a ; a =

C ⇒ χ r2−1 , jei H 0 teisinga. n →∞

Visas išvardintas statistikas galima apskaičiuoti su SAS modulio STAT procedūra NPAR1WAY. Sintaksė: PROC NPAR1WAY DATA=lentelė <ST> <MOOD>; CLASS kint1; VAR kint2; RUN;

čia kint1 – klasifikuojantis kintamasis, kuris nurodo, kuriai imčiai priklauso stebėjimas; kint2 – analizuojamas kintamasis; ST – Siegel-Tukey kriterijus, AB – Ansari-Bradley kriterijus; KLOTZ – Klotz kriterijus, MOOD – Mood kriterijus. Galima nurodyti EXACT sakinį, tada apskaičiuos tikslias tikimybes. 6.16 p a v y z d y s. Modeliuokime tris nepriklausomas imtis. Editor lange parašykime: DATA Duomenys; DROP i; g=’a’; DO i=1 TO 30; X=2*normal(10)+1; OUTPUT; END; g=’b’; DO i=1 TO 35; X=2.5*normal(10); OUTPUT; END; g=’c’; DO i=1 TO 30; X=normal(10)+1; OUTPUT; END; RUN;

Patikrinkime hipotezę: skirstiniai vienodi. Editor lange parašome: PROC NPAR1WAY DATA=Duomenys ST AB KLOTZ MOOD; CLASS g; VAR X; RUN;

Output lange gauname:

The NPAR1WAY Procedure

Siegel-Tukey Scores for Variable X Classified by Variable g

g

N

Sum of Scores

Expected Under H0

Std Dev Under H0

Mean Score

a b c

30 35 30

1719.0 1138.0 1703.0

1440.0 1680.0 1440.0

124.899960 129.614814 124.899960

57.300000 32.514286 56.766667

178

Siegel Siegelel-Tukey OneOne-Way Analysis Chi-Square DF Pr > Chi-Square

17.4916 2 0.0002

Ansari-Bradley Scores for Variable X Classified by Variable g

g

N

Sum of Scores

Expected Under H0

Std Dev Under H0

Mean Score

a b c

30 35 30

868.0 577.0 859.0

727.578947 848.842105 727.578947

62.460359 64.818177 62.460359

28.933333 16.485714 28.633333

AnsariAnsari-Bradley OneOne-Way Analysis Chi-Square DF Pr > Chi-Square

17.5960 2 0.0002

Klotz Scores for Variable X Classified by Variable g

g

N

Sum of Scores

Expected Under H0

Std Dev Under H0

Mean Score

a b c

30 35 30

18.281261 54.959048 14.128159

27.590043 32.188383 27.590043

5.347165 5.549015 5.347165

0.609375 1.570259 0.470939

Klotz OneOne-Way Analysis Chi-Square DF Pr > Chi-Square

17.0455 2 0.0002

Mood Scores for Variable X Classified by Variable g

g

N

Sum of Scores

Expected Under H0

Std Dev Under H0

Mean Score

a b c

30 35 30

16368.0 39737.0 15335.0

22560.0 26320.0 22560.0

3062.97894 3178.60347 3062.97894

545.60000 1135.34286 511.16667

Mood OneOne-Way Analysis Chi-Square DF Pr > Chi-Square

17.8561 2 0.0001

Kiekvienam iš nurodytų PROC sakinyje kriterijų spausdinamos dvi lentelės, kurios yra analogiškos Kruskall-Wallis kriterijui spausdinamoms lentelėms, kai imčių daugiau negu dvi ir Mann-Whitney-Wilcoxon kriterijui spausdinamoms lentelėms, kai yra dvi imtys. Palyginę gautas P-reikšmes su pasirinktu reikšmingumo lygmeniu, gauname, kad hipotezė apie skirstinių vienodumą atmetama.

179

4. Kiti neparametriniai kriterijai Šiame skyrelyje pateiksime du kriterijus, kurie skirti patikrinti hipotezę apie medianą, kai turime vieną imtį, arba apie medianų lygybę, kai turime dvi priklausomas imtis, o taip pat grubių klaidų išskyrimo kriterijų.

4.1. Ženklų kriterijus Ženklų kriterijus (Sign Test) naudojamas, kai turime vieną imtį ir norime patikrinti hipotezę apie medianos reikšmę, o taip pat homogeniškumo hipotezei tikrinti, kai turime dvi priklausomas imtis. Šis kriterijus yra Stjudento kriterijaus vienai imčiai ir Stjudento kriterijaus priklausomoms imtims neparametrinis analogas. I) Vienos imties atvejis. Tegu imtis X 1 , X 2 ,..., X n yra gauta stebint tolydų atsitiktinį dydį X. Reikia patikrinti hipotezę: H 0 : X mediana lygi u 0 su alternatyva H 1 : X mediana nelygi u 0 . Kriterijaus statistika: M = (n + − n − ) / 2 ,

(6.86)

(6.87)

čia n + yra skaičius reikšmių, didesnių už u0, n − yra skaičius reikšmių, mažesnių už u0. Reikšmės, lygios u0, neįtraukiamos į statistikos skaičiavimą. Dvipusė P-reikšmė apskaičiuojama taip: P{| M |>| M |} = 0,5

nt −1

min( n + , n − )

∑ j =0

 nt   ,  j

(6.88)

čia M – apskaičiuota pagal imties duomenis statistikos (6.87) reikšmė, M - tikėtina statistikos reikšmė, kai hipotezė teisinga, nt = n + + n − , (6.89) t.y. imties reikšmių, nelygių u 0 , skaičius. SAS yra realizuotas Vilkoksono ranginis ženklų kriterijus (Wilcoxon signed rank test), kurio paskirtis tokia pati kaip ir ženklų kriterijaus. Jis naudojamas, kai skirstinys simetriškas, grindžiamas duomenų rangais. Tikrinama hipotezė apie medianos reikšmę. Vilkoksono ranginio ženklų kriterijaus statistika: S=

∑r

i

i: X i > 0

+



nt (nt + 1) , 4

(6.90)

čia ri + yra | X i − u 0 | rangas (ranguojama nuo mažiausio iki didžiausio; prieš ranguojant stebėjimai, kuriems X i lygus u 0 išbraukiami), nt - apibrėžtas (6.89). Susietoms reikšmės priskiriami vidutiniai rangai. Kai n ≤ 20 , tai apskaičiuojama tiksli P-reikšmė. Kai n>20, tai naudojama aproksimacija. Statistikos s n −1 (6.91) T= nV − s 2 skirstinys, kai hipotezė H 0 : X mediana lygi nuliui (su prielaida, kad duomenų skirstinys simetriškas) aproksimuojamas Stjudento skirstiniu su n-1 laivės laipsniu. Čia S – apibrėžta (6.90), 1 1 V = n(n + 1)(2n + 1) − ∑ t i (t i + 1)(t i − 1) . (6.92) 48 24

180

kur sumuojama pagal susietų reikšmių grupes (reikšmės imamos moduliu); t i yra reikšmių skaičius i-tojoje susietų reikšmių grupėje. Hipotezė atmetama su reikšmingumo lygmeniu α , kai: | T |> tα / 2 (n − 1) , čia tα / 2 (n − 1) yra Stjudento skirtinio su n-1 laisvės laipsniu ( α / 2 )-toji kritinė reikšmė. SAS modulio BASE procedūroje UNIVARIATE yra realizuotas ir ženklų kriterijus ir Vilkoksono ranginis ženklų kriterijus. Šie kriterijai spausdinami automatiškai. Pagal nutylėjimą tikrinama hipotezė su u 0 = 0 . Galime nurodyti kitą reikšmę su MU0 = u 0 . Sintaksė: PROC UNIVARIATE DATA=lentelė <MU0=reikšmė>; VAR kintamasis; RUN;

čia kintamasis – analizuojamas kintamasis, reikšmė – hipotetinė medianos reikšmė. 6.17 p a v y z d y s. Buvo išmatuotas 24 atsitiktinai atrinktų vaikų ūgis.Gauti tokie rezultatai (cm): 124 122 123 134 124 123 121 124 128 123 126 125 131 119 122 125 130 122 125 121 132 128 131 127 Sukurkime duomenų lentelę su tokiu Data žingsniu: DATA vaikai; INFILE ’c:\vaikai.txt’; INPUT ugis @@;

Ar galime teigti, kad vidutinis vaikų ūgis yra 128 cm? Tarkime, kad reikšmingumo lygmuo α = 0.05. Naudosime procedūrą UNIVARIATE. Editor lange įveskime: PROC UNIVARIATE DATA=vaikai MU0=128; VAR ugis; RUN;

Output lange gauname:

The UNIVARIATE Procedure Variable: ugis Moments

N Mean Std Deviation Skewness Uncorrected SS Coeff Variation

24 125.416667 3.93332105 0.61846377 377860 3.13620283

Sum Weights Sum Observations Variance Kurtosis Corrected SS Std Error Mean

24 3010 15.4710145 -0.4234167 355.833333 0.8028858

Tests for Location: Mu0=128 Test

-Statistic-

-----p Value------

Student's t Sign Signed Rank

t M S

Pr > |t| Pr >= |M| Pr >= |S|

-3.21756 -6 -84

0.0038 0.0169 0.0035

Lentelėje „Tests for Location: Mu0=128“, spausdinamos trijų kriterijų statistikų reikšmės ir dvipusės P-reikšmės, skirtos patikrinti hipotezę apie vidurkio arba medianos reikšmę. Eilutėje „Student‘s t“ spausdinama Stjudento kriterijaus (žr.V sk., 2.2 skyrelį) statistikos reikšmė -3,21756 ir dvipusė P-reikšmė 0,0038, skirta patikrinti hipotezę, kad vidurkis lygus 128 su alternatyva, kad nelygus. Kitose dviejose eilutėse spausdinamos dviejų neparametrinių kriterijų statistikų reikšmės ir dvipusės P-reikšmės, skirtos patikrinti hipotezę, kad mediana lygi 128 su alternatyva, kad nelygi. Eilutėje „Sign“ spausdinama ženklų

181

kriterijaus statistikos (6.87) reikšmė -6 ir dvipusė P-reikšmė 0,0169, gauname, kad hipotezė atmetama su reikšmingumo lygmeniu 0,05. Eilutėje „Signed Rank“ spausdinama Vilkoksono ranginio ženklų kriterijaus statistikos reikšmė -84 ir dvipusė P-reikšmė 0,0035, gauname, kad hipotezė atmetama su reikšmingumo lygmeniu 0,05. Taigi, su reikšmingumo lygmeniu 0,05 negalime teigti, kad vidutinis vaikų ūgis 128. II) Dviejų priklausomų imčių atvejis. Tarkime, kad ( X i , Yi ), i = 1,..., n yra dydžio n imtis, gauta stebint tolydžiųjų kintamųjų porą (X,Y). Reikia patikrinti hipotezę: H 0 : X ir Y medianos lygios

(6.93)

su alternatyva H 1 : X ir Y medianos nelygios. Sukuriame naują kintamąjį Z i = X i − Yi , i = 1,..., n ir tikriname hipotezę: H 0 : Z = X − Y mediana lygi nuliui. Ši hipotezė ekvivalenti pradinei hipotezei (6.93). Taigi, gavome uždavinį, kurį nagrinėjome I) punkte. 6.18 p a v y z d y s. Lentelėje pateikta 10 pacientų, vartojusių migdomuosius vaistus A ir B, papildomo miego trukmė X ir Y (valandomis) (žr. [5]): i 1 2 3 4 5

X 1.9 0.8 1.1 0.1 -0.1

Y 0.7 -1.6 -0.2 -1.2 -0.1

i 6 7 8 9 10

X 4.4 5.5 1.6 4.6 3.4

Y 3.4 2.7 0.8 0.0 2.0

Reikia patikrinti hipotezę, kad vaistų poveikis vienodas. Sukuriame duomenų lentelę. Apskaičiuojame naujo kintamojo reikšmes (kintamųjų X ir Y reikšmių skirtumai). Hipotezę tikrinsime su ženklų ir Vilkoksono ranginiu ženklų kriterijumi, naudosime procedūrą UNIVARIATE. Editor lange parašome: DATA Duomenys; INPUT Nr X Y @@; Z=X-Y; DATALINES; 1 1.9 0.7 6 4.4 3.4 2 0.8 -1.6 7 5.5 2.7 3 1.1 -0.2 8 1.6 0.8 4 0.1 -1.2 9 4.6 0.0 5 -0.1 -0.1 10 3.4 2.0 ; PROC UNIVARIATE DATA=Duomenys; VAR Z; RUN;

Output lange gauname (dalis spausdinamų rezultatų ): The UNIVARIATE Procedure Variable: Z

N Mean Std Deviation Skewness Uncorrected SS Coeff Variation

Test

Moments 10 Sum Weights 1.68 Sum Observations 1.2890996 Variance 1.34178443 Kurtosis 43.18 Corrected SS 76.732119 Std Error Mean

10 16.8 1.66177778 2.25393443 14.956 0.40764909

Tests for Location: Mu0=0 -Statistic-----p Value------

182

Student's t Sign Signed Rank

t M S

4.121192 4.5 22.5

Pr > |t| Pr >= |M| Pr >= |S|

0.0026 0.0039 0.0039

Gautas P-reikšmes lyginame su pasirinktu reikšmingumo lygmeniu 0,05, gauname, kad hipotezė atmetama, taigi, negalime teigti, kad vaistų poveikis vienodas. P a s t a b a. Kai duomenų normališkumo sąlyga patenkinta, tai naudojamas Stjudento kriterijus. Kai procedūroje UNIVARIATE nurodome NORMAL ir stebėjimų ne daugiau kaip 2000, tai spausdinama Shapiro-Wilk statistikos reikšmė ir P-reikšmė, skirta patikrinti hipotezę apie duomenų normališkumą. 6.19 p a v y z d y s. Imkime duomenis iš 6.17 pavyzdžio. Patikrinkime duomenų nrmališ-kumą. Editor lange įveskime: PROC UNIVARIATE DATA=vaikai MORMAL; VAR ugis; RUN;

Output lange gauname:

Tests for Normality

Test

--Statistic---

-----p Value------

ShapiroShapiro-Wilk Kolmogorov-Smirnov Cramer-von Mises Anderson-Darling

W D W-Sq A-Sq

Pr Pr Pr Pr

0.94461 0.167182 0.099814 0.5671

< > > >

W D W-Sq A-Sq

0.2065 0.0820 0.1081 0.1314

Gavome, kad Shapiro-Wilk statistikos reikšmė lygi 0,9461, P-reikšmė 0,2065, todėl hipotezė apie duomenų normališkumą neatmetama su reikšmingumo lygmeniu 0,05. Taip pat spausdinamos kriterijų, pagrįstų teorinės ir empirinės pasiskirstymo funkcijų skirtumu, statistikų reikšmės ir P-reikšmės (žr.2.2 skyrelį).

4.2. Grubių klaidų išskyrimo kriterijus Grubios klaidos stebėjimo rezultatuose atsiranda pakitus bandymo sąlygoms, neteisingai perskaičius matavimo aparatūros parodymus, apsirikus užrašant matavimo rezultatą ir pan. Matavimo rezultatai su grubiomis klaidomis kartais lengvai pastebimi, nes žymiai skiriasi nuo kitų. Abejotinais atvejais atliekama statistinė analizė. Tarkime, kad turime imtį X 1 , X 2 ,..., X n . Reikia patikrinti hipotezę, kad X 1 , X 2 ,..., X n yra atsitiktinio dydžio X, kurio skirstinys priklauso normaliųjų skirstinių šeimai P = {N ( µ , σ 2 ), − ∞ < µ < ∞, 0 < σ < ∞} , paprasčiausia atsitiktinė imtis. Šiame skyrelyje pateiksime Bolševo-Ubaidulajevos sukonstruotą kriterijų (žr. [5]). Tarkime, kad klaidų skaičius ne didesnis už fiksuotą sveikąjį skaičių s. Kriterijus grindžiamas tokiu faktu: variacinės eilutės, gautos stebint normalųjį atsitiktinį dydį, pradžios ir pabaigos taškai, atitinkamai transformuoti, kai imties tūris didelis, gali būti laikomi Puasono proceso šuolių taškais. Atlikime transformaciją:

  X − µ  Z i = n1 − Φ i  , kai µ , σ žinomi;  σ     n Xi − X Z i = n1 − Φ   n −1 σ 

  , kai µ nežinomas, σ žinomas;  

  X − µ  Z i = n1 − Tn −1  i  , kai µ žinomas, σ nežinomas;  s   183

(6.94)

 X −X Z i = n1 − Tn − 2  i  s 

  , kai µ , σ nežinomi,  

čia X = s2 = s2 =

1 n ∑ Xi, n i =1

1 n ( X i − µ ) 2 , kai µ žinomas; ∑ n i =1

(6.95)

1 n ( X i − X ) 2 , kai µ nežinomas, ∑ n i =1

Φ (x) - standartinio normalaus skirstinio pasiskirstymo funkcija, Tν (x) yra Tompsono pasiskirstymo funkcija:

Γ((v + 1) / 2) Tv ( x) = π (v + 1) Γ(v / 2) −

1

 y2   ∫ 1 − v + 1  v +1 x

(v −2) / 2

, | x |< v + 1.

Skaičiuojant funkcijos Tν (x) reikšmes galime remtis Tompsono ir Stjudento skirstinių sąryšiu:  Tv ( x) = S v  x 

v v +1− x2

 ,  

(6.96)

čia S v (t ) yra Stjudento skirstinio su v laisvės laipsnių pasiskirstymo funkcija. Kai alternatyva dvipusė, tai funkcijose Φ , Tn −1 , Tn − 2 reikia imti argumentų absoliutinius didumus. Sudarome variacinę eilutę Z (1) ≤ Z ( 2 ) ≤ ... ≤ Z ( n ) ir j(i) pažymime numerį to variacinės eilutės ( Z (1) ,..., Z ( n ) ) nario, kuris atitinka X i . Tie stebėjimo rezultatai X i , kurių santykis Z ( j ( i )) / j (i ) ne didesnis už α (dvipusė alternatyva), atmetami kaip grubios klaidos, čia α yra reikšmingumo lygmuo. Šis kriterijus nepriklauso nuo s, t.y. galimo grubių klaidų skaičiaus (kai α ≤ 0,2 ). 6.20 p a v y z d y s. Modeliuokime standartinio normalaus atsitiktinio dydžio imtį (imties dydis 100). Papildykime gautą lentelę dviem reikšmėmis 4, -3,5. Suraskime grubias klaidas. Tarkime, kad vidurkis ir dispersija nežinomi. Reikšmingumo lygmuo 0,05. Editor lange parašykime: DATA Modeliavimas; /*modeliuojame duomenis*/ DROP i; DO i=1 TO 100; X=normal(10); OUTPUT; END; RUN; DATA DD; /*sukuriame atskirą papildomų stebėjimų lentelę*/ X=4; OUTPUT; X=-3.5; OUTPUT; RUN; DATA Duomenys; /*sukuriame duomenų lentelę, kurią analizuosime n=102*/ SET DD Modeliavimas; RUN;

184

PROC MEANS NOPRINT DATA=Duomenys VARDEF=N; VAR X; OUTPUT OUT=pagalbinis MEAN(X)=vidurkis STD(X)=stand_n; RUN; DATA Rezultatas; IF _N_=1 THEN SET pagalbinis; SET Duomenys; RUN; DATA Rezultatas; SET Rezultatas; arg=abs((X-vidurkis)/stand_n); arg2=arg*sqrt(100/(100+1-arg*arg)); Z=102*(1-cdf(’T’,arg2,100)); RUN; PROC SORT DATA=Rezultatas OUT=Klaidos; BY Z; RUN; DATA Klaidos; SET Klaidos; j=_N_; stat=z/j; IF stat <= 0.05; RUN;

Lentelėje „Klaidos“ gausime reikšmes, kurios yra grubios klaidos. Šiame pavyzdyje gauname, kad su reikšmingumo lygmeniu 0,05 galime teigti, kad stebėjimai -3,5 ir 4 yra grubios klaidos.

185

SANTRUMPOS IR ŽYMENYS Žymenys, naudojami programose SAS komandos parašytos didžiosiomis raidėmis. Tekstas, kurį reikia įvesti Editor lange, parašytas „Courier New“ šriftu. Komandos, nurodytos tarp simbolių „<“ ir „>“, yra nebūtinos (pasirinktinės). Jeigu kelios komandos yra atskirtos simboliais „|“, tai reikia nurodyti vieną iš jų. Žymenys ir santrumpos, naudojamos tekste a.d. – atsitiktinis dydis; a.v. – atsitiktinis vektorius; NMD – nepaslinktas minimalios dispersijos (įvertis); TG – tolygiai galingiausias (kriterijus); TGN – tolygiai galingiausias nepaslinktas (kriterijus); EX – a.d. X vidurkis; VX – a.d. X dispersija; cov(X,Y) – a.d. X ir Y kovariacija; B(n,q) – binominis skirstinys su parametrais n ir q; P (λ ) - Puasono skirstinys su parametru λ ; N(0,1) – standartinis normalusis skirstinys; N( µ , σ 2 ) - normalusis skirstinys su parametrais µ ir σ 2 ; G (λ , η ) - gama skirstinys su parametrais λ ir η ; Be(γ , η ) - beta skirstinys su parametrais γ ir η ; S(n) – Stjudento skirstinys su n laisvės laipsnių; F(m, n) – Fišerio skirstinys su m ir n laisvės laipsnių; X ~ N( µ , σ 2 ) - a.d. X skirstinys yra normalusis su parametrais µ ir σ 2 (analogiškai kitų skirstinių atveju).

186

LITERATŪRA Literatūra lietuvių kalba 1. Bikelienė V. Taikomosios matematinės statistikos elementai. Vilnius: VU l-ka, 1993, 101 p. 2. Bikelienė V. Neparametrinė statistika: Dažnių lentelėmis pagrįsti statistiniai kriterijai ir sąryšio matai. Vilnius: VU l-ka, 1986. 3. Čekanavičius V., Murauskas G. Statistika ir jos taikymai.I. Vilnius: TEV, 2000, 240 p. 4. Čekanavičius V., Murauskas G. Statistika ir jos taikymai. II. Vilnius: TEV, 2002, 272p. 5. Kruopis J. Matematinė statistika. Vilnius: Mokslas, 1993, 416 p. Rusų kalba 6. Афифи А., Эйзен С. Статистический анализ. Подход с использованием ЭВМ. Москва: Мир, 1982, 488 с. Anglų kalba 7. Delwiche L.D., Slaughter S.J. The Little SAS® Book: A primer. SAS Press, 1998, 300p. 8. Hatcher L., Stepanski E.J. A Step-by-Step Approach to Using SAS® System for Univariate and Multivariate Statistics. Cary, Nc: SAS Institute Inc., 1994, 552p. 9. SAS® Help and Documentation. Kompaktas (platinamas kartu su SAS® ). 10. Interneto tinklapis http://www.sas.com.

187

More Documents from "Simona Ra"