%**************************************************************** % READ.ISU * %**************************************************************** % Indlæsning af data til projekt 1 fra den udleverede datafil. del var konto1 konto2 aar md dag tid kr 35172 open 03-1-dat.txt skipline read konto1 konto2 aar md dag tid kr save data %**************************************************************** % KORT.ISU * %**************************************************************** % Konstruktion af et datasæt der indeholder en enhed pr. kunde % (idet kunder defineres ved konto1). De ønskede oplysninger er % antal transaktioner (ANTAL), dag for første og sidste transaktion % (TID0 og TID1) og det samlede beløb fra transaktionerne (KR_SUM). delete get data sort konto1 tid + var first last kunde ##(konto1) kunde=1 exclude 1 kunde=kunde(#-1)+(konto1<>konto1(#-1)) includeall { kunderne er nu fortløbende nummereret } first=# exclude kunde=kunde(#-1) save tmp first includeall del first get tmp { first indeholder nu numre på de "linier" hvor en konto begynder } last=# exclude 1 exclude kunde=kunde(#+1) save tmp last includeall del last get tmp { last indeholder nu numre på de "linier" hvor en konto slutter } cum=kr exclude 1 exclude kunde<>kunde(#-1) cum=cum(#-1)+kr includeall kr_sum=cum(last) tid0=tid(first) tid1=tid(last) antal=last-first+1 save kort tid0 tid1 antal kr_sum %**************************************************************** % RAN.ISU * %**************************************************************** % Randomiseringstest - illustration. % Dette har ikke direkte noget med projekt 1 at gøre. Men det % foreslås at man benytter en lignende teknik (tilfældig permuation % af tidspunkterne på den oprindelige datafil) til at undersøge % om den rektangulære fordeling kan bruges til vurdering af % "P-værdierne" baseret på Poissonprocessens antagelser - eller til % at generere et sammenligningsgrundlag som er mere relevant end den % rektangulære fordeling. delete % Vi konstruerer en variate af længde 30 % De første 20 værdier er genereret som ligefordelte % på [0,1], de sidste 10 på [0,2]. Faktoren F definerer % inddelingen i de første 20 og de sidste 10. var y 30 fac f 30 2 f=1+(#>20) y=f*random hist y=0.0,20,2 f % Vi udregner teststørrelsen t = differensen mellem % gennemsnittet i gruppe 2 og gennemsnittet i gruppe 1. focus f 1 s1=mean(y) includeall focus f 2 s2=mean(y) includeall t=s2-s1 % Nu genereres 1000 datasæt af samme slags, hvor de 30 % observationer er tilfældigt fordelt på de to grupper. % De således simulerede teststørrelser gemmes i TT. var r 30 var tt 1000 % De følgende to kommandoer er vigtige - uden dem kører % programmet meget langsomt, fordi outputfilen bliver % fyldt med ragelse fra alle løkkens 1000 gennemløb % (kommando-ekkoer og advarsler vedr. SORT-kommandoen). echo 0 out 0 i=0 { i er udeklareret, og får derfor længde 1 } %%% i=i+1 r=random { disse to kommandoer permuterer } sort r y { y-værdierne tilfældigt } focus f 1 s1=mean(y) includeall focus f 2 s2=mean(y) includeall tt(i)=s2-s1 goto %%% i<1000 echo 1 out hist tt=-2.00,40,2 ind=(tt>t) compute t compute sum(ind):4:0 rem Formel P-værdi: compute sum(ind)/1000 show