201303 ECON2130 Obligatorisk Oppgave Oppgave 1 Vi lar være uavhengige og normalfordelte,, setter og ønsker å vise at og at den teoretiske korrelasjonskoeffisienten mellom og er. Vi betrakter her en standard normalfordeling på formen oppgitte informasjonen at og. Dermed også og har fra den,, som vi trenger for å vise. Med utgangspunkt i dette, ser vi at der vi har brukt at for å vise. Vi har her også benyttet oss av at da og er normalfordelte og uavhengige, noe som innebærer at paret har og. Dette følger av en enkel anvendelse av Fubini-Tonelli teoremet der vi betrakter et uttrykk Med andre ord er paret ukorrelerte, som gjør at vi kan forenkle utledningen til og som vi også kan benytte oss av når vi skal utlede. Dette bringer oss videre til det andre uttrykket vi skal utlede. Her har vi at. der Fra dette finner vi et uttrykk for, men har her både ukjent og.. Vi kan beregne fra uttrykket Side 1 av 26
som gir oss dersom vi setter inn i. Vi har nå vist både og. Side 2 av 26
Oppgave 2 Vi skal så simulere observasjoner av både og. Vi har her brukt MATLAB istedenfor MS Excel til å generere data, da undertegnede foretrekker dette. Programmet ligger vedlagt, og skal gi samme resultat som ved bruk av MS Excel. Da målet er lære mer om korrelasjonskoeffisienten, og ikke nødvendigvis MS Excel tar vi utgangspunkt i at dette er greit. Det første vi gjør er å plotte og mot hverandre i et spredningsplot. Figur 2.1: Spredningplot mellom og for observasjoner. Vi ser herfra at og er uavhengige av hverandre, noe som ville ha kommet bedre frem om vi hadde simulert dette for store. Vi skal videre beregne, og plotte mot. Figur 2.2: Spredningplot mellom og for observasjoner. Side 3 av 26
Vi ser her en avhengighet mellom og. Mens dataene er fordelt tilnærmet uniformt mellom kvadrantene i figur 2.1, så er dataen for dette tilfellet bundet til 2. og 4. kvadrant i figur 2. Vi kan fra dette anta at og har en negativ avhengighet, med andre ord at korrelasjonskoeffisienten er negativ. Vi kan trekke dette fra at punktene ligger nærme en avtagende rett linje, som betyr at vi har en negativ koeffisient. Vi velger å se på dette for et tilfelle der, for å se om dette stemmer. Figur 2.3: Spredningplot mellom og for observasjoner. Figur 2.4: Spredningplot mellom og for observasjoner. Vi ser fra figurene 2.3 og 2.4 at våre antakelser ser ut til å stemme. Vi ser her at og er uavhenigige og normalfordelt i figur 2.3, og at det er en negativ avhengighet (negativ korrelasjonskoeffisient) i figur 2.4. Side 4 av 26
Programmet (.m) som ble brukt til å simulere denne deloppgaven er vist under. % Oppgave 2 % Simulering av 2x20 uavhengige observasjoner n = 20; x = randn(n,1); z = randn(n,1); % Plotter x mot z figure(1) plot(x,z,'xk'); title('oppgave 2.1') xlabel('x') ylabel('z') axis equal % Beregning av y y = z-x; % Plotter x mot z figure(2) plot(x,y,'xk'); title('oppgave 2.2') xlabel('x') ylabel('y') axis equal % Oppgave 2 - ekstrasimulering for store n % Simulering av 2x20 uavhengige observasjoner n = 2000; x = randn(n,1); z = randn(n,1); % Plotter x mot z figure(3) plot(x,z,'xk'); title('oppgave 2.1 - store n') xlabel('x') ylabel('z') axis equal % Beregning av y y = z-x; % Plotter x mot z figure(4) plot(x,y,'xk'); title('oppgave 2.2 - store n') xlabel('x') ylabel('y') axis equal Side 5 av 26
Oppgave 3 Vi bruker videre samme metode som ovenfor til å simulere obserasjonspar, men her når og når. Vi setter der. Gitt at vi nå har oppgitt, må vi finne. Dette gjøres ved å løse for med utgangspunkt i det vi gjorde i oppgave 1. Vi setter så svaret inn i uttrykket for. Det vi mangler så er. Vi beregner dette på samme måte som i oppgave 1. Setter vi inn i får vi som vi kan løse med hensyn på. Vi lar programmet løse for, slik at vi kan beholde verdiene som flyttall for å unngå numeriske beregningsfeil. Svarene vi får for konstanten er hhv. og. Vi har her også tatt oss friheten til å generere data for for å lettere se formen på spredningsplottene. Figurene 3.1 og 3.2 er beregnet med for hhv. og, mens figurene 3.3 og 3.4 er beregnet for for tilsvarende. Side 6 av 26
Figur 3.1: Spredningplot mellom og for og. Figur 3.2: Spredningplot mellom og for og. Fra figurene over ser vi at den genererte dataen er tilnærmet uniformt fordelt mellom kvadrantene når. Likevel kan vi for figur 3.2 se at datasettet er ovalt, og ligger mot en avtakende rett linje. Vi kan fra dette (jmf. oppgave 2) konkludere med at jo nærmere er, desto nærmere vil punktene være den avtakende rette linjen. Side 7 av 26
Figur 3.3: Spredningplot mellom og for og Figure 3.4: Spredningplot mellom og for og. Vi kan se tilsvarende i figurene 3.3 og 3.4, der. Vi ser her at punktene i spredningsplottet ligger i nærheten av en økende rett linje. Her følger koden som ble brukt for å generere de fire figurene. % Oppgave 3 % Simulering av 2x20 uavhengige observasjoner n = 20; x = randn(n,1); z = randn(n,1); % Beregner a Side 8 av 26
rho = [-0.2, 0.9]; a = rho./sqrt(1-rho.^2) % Generer spredningsplott for (i=1:2) y = z+a(i).*x; % Plotter x mot y figure(i) plot(x,y,'xk'); title(['oppgave 3, \rho = ',num2str(rho(i)),', a = ',num2str(a(i)),', n = ',num2str(n)]) xlabel('x') ylabel('y') axis equal end % Generer spredningsplott for store n n = 20000; x = randn(n,1); z = randn(n,1); for (i=1:2) y = z+a(i).*x; % Plotter x mot y figure(i+2) plot(x,y,'xk'); title(['oppgave 3, \rho = ',num2str(rho(i)),', a = ',num2str(a(i)),', n = ',num2str(n)]) xlabel('x') ylabel('y') axis equal end Side 9 av 26
Oppgave 4 Vi har i de foregående deloppgavene benyttet oss av en kjent korrelasjonskoeffisient,. I praksis vil populasjonsstørrelsene og, og dermed også, være ukjente og må estimeres. Vi benytter oss her av relasjonene og for å estimere ut fra data ved. Vi kan fra dette lage en kode som estimerer. Denne koden er gitt som % Oppgave 4 % Simulering av 2x20 uavhengige observasjoner n = 20; x = randn(n,1); z = randn(n,1); % Beregning av y y = z-x; % Beregne sx, sy og sxy xavrg = sum(x)/n; yavrg = sum(y)/n; sx = (1/(n-1))*sum((x-xavrg).^2) sy = (1/(n-1))*sum((y-yavrg).^2) sxy = (1/(n-1))*sum((x-xavrg).*(y-yavrg)) % Beregne r og sjekke differanse r = sxy/sqrt(sx*sy) t = -1/sqrt(2) diff = abs(r-t) og estimerer i tillegg til når den blir kjørt. >> run('c:\users\nicolai Solheim\...\2013 ECON2130\oppg4.m') sx = 0.9287 sy = 0.9142 sxy = -0.6305 r = -0.6843 t = -0.7071 diff = 0.0228 Vi ser fra dette at forskjellen mellom den teoretiske og estimerte korrelasjonskoeffisienten er tilnærmet. Modellen vi bruker for å estimere har dermed vist seg helt grei for denne Side 10 av 26
ene gangen vi kjørte programmet. Likevel sier ikke dette ene svaret hvorvidt det er en god eller dårlig estimator. Dette skal vi se mer på i oppgave 5. Side 11 av 26
Oppgave 5 For å få et inntrykk av hvor god (eller dårlig) er som estimator skal vi se hvordan oppfører seg ved gjentatt bruk. Vi benytter oss av programmet vi lagde i forrige oppgave, og modifiserer dette til å gjøre beregninger ganger. Vi lagrer da for hver runde i en matrise og bruker dette til å se på om virker pålitelig som en estimator for. Vi kan presentere resultatene i et histogram, samt beregne gjennomsnitt, median, (øvre- og nedre) kvartil og standardavvik. Figur 5.1: Beregnede verdier av for og. Fra figur 5.1 synes å være normalfordelt, som gir oss et godt utgangspunkt for å bedømme hvorvidt er en pålitelig estimator. Vi kan videre se på gjennomsnitt, median, (øvre- og nedre) kvartil og standardavvik. >> run('c:\users\nicolai Solheim\...\2013 ECON2130\oppg5.m') rmean = -0.7007 diffmean = 0.0831 rquan = -0.7595-0.7282-0.6440 rstd = 0.1113 Fra programmet har vi at gjennomsnittsverdien mot, der vi ser en liten differanse. Videre har vi at medianen er, noe som heller ikke er langt unna. Ser vi nå på øvre og nedre kvartil, finner vi at disse ligger innenfor et standardavvik fra gjennomsnittet. Vi kan med andre ord konkludere med at er en pålitelig estimator for, da med et lite forbehold. Det ville vært ønskelig å øke både og med en faktor for å verifisere dette. Kildekoden til programmet som ble brukt til denne oppgaven er gitt på neste side. Side 12 av 26
% Oppgave 5 % Loop for m simuleringer m = 25; r = zeros(m,3); for (i=1:m) end % Simulering av 2x20 uavhengige observasjoner n = 20; x = randn(n,1); z = randn(n,1); % Beregning av y y = z-x; % Beregne sx, sy og sxy xavrg = sum(x)/n; yavrg = sum(y)/n; sx = (1/(n-1))*sum((x-xavrg).^2); sy = (1/(n-1))*sum((y-yavrg).^2); sxy = (1/(n-1))*sum((x-xavrg).*(y-yavrg)); % Beregne r og sjekke differanse r(i,1) = sxy/sqrt(sx*sy); r(i,2) = -1/sqrt(2); r(i,3) = abs(r(i,1)-r(i,2)); % Presentasjon av data figure(1) dm = max(r(:,3)); mid = -1/sqrt(2); x = mid-dm:0.01:mid+dm; hist(r(:,1),x) title(['oppgave 5, m = ',num2str(m),', n = ',num2str(n)]) ylabel('antall') xlabel('r(x,y)') rmean = sum(r(:,1))/m diffmean = sum(r(:,3))/m rquan = quantile(r(:,1),[0.25, 0.5, 0.75]) rstd = std(r(:,1)) Side 13 av 26
Oppgave 6 Vi gjentar nå oppgave 5, men modifiserer programmet til er at vi får bedre estimater for. observasjoner. Det vi nå ser >> run('c:\users\nicolai Solheim\...\2013 ECON2130\oppg6.m') rmean = -0.7071 diffmean = 0.0200 rquan = -0.7575-0.7088-0.6594 rstd = 0.0595 [...] Vi ser her at og at medianen ligger enda nærmere. Samtidig ser vi også at kvartilene ligger noe nærmere medianen, og at standardavviket er mer enn halvert sammenlignet med forrige deloppgave. Det betyr at 69% av de estimerte -verdiene ligger innenfor intervallet som tyder på at blir en bedre estimator for dersom man øker antall observasjoner av og. Vi kan også fra figur 6.1 se at vi får en enda bedre normalfordeling av verdiene, sammenlignet med figur 5.1 i forrige oppgave. Figur 6.1: Beregnede verdier av for og. Likevel bør man gå steget lenger og beregne dette for enda større og. Spesielt vil en større være viktig, men da vi ser på egenskapene rundt må vi også øke betydelig. Vi øker nå verdiene til og, og vil se hvilken betydning dette har for som estimator for. [...] rmean = -0.7071 Side 14 av 26
diffmean = 0.0040 rquan = -0.7105-0.7071-0.7037 rstd = 0.0050 Vi ser her at vi har et standardavvik med en faktor 10 mindre, i tillegg til at medianen og gjennomsnittet er like. Tilsvarende er gjennomsnittsdifferansen redusert med en faktor 10, og kvartilene ligger godt inntil medianen. Vi ser også i figur 6.2 at vi har en jevn normalfordeling. Figur 6.2: Beregnede verdier av for og. Vi kan fra dette konkludere med at er pålitelig som estimator for, og ser at estimatet blir bedre dersom vi øker antall observasjoner av og. Under ligger programkoden som ble brukt for å løse denne oppgaven. % Oppgave 6 % Loop for m simuleringer m = 25; r = zeros(m,3); for (i=1:m) % Simulering av 2xn uavhengige observasjoner n = 50; x = randn(n,1); z = randn(n,1); % Beregning av y y = z-x; % Beregne sx, sy og sxy xavrg = sum(x)/n; yavrg = sum(y)/n; sx = (1/(n-1))*sum((x-xavrg).^2); sy = (1/(n-1))*sum((y-yavrg).^2); Side 15 av 26
end sxy = (1/(n-1))*sum((x-xavrg).*(y-yavrg)); % Beregne r og sjekke differanse r(i,1) = sxy/sqrt(sx*sy); r(i,2) = -1/sqrt(2); r(i,3) = abs(r(i,1)-r(i,2)); % Presentasjon av data figure(1) dm = max(r(:,3)); mid = -1/sqrt(2); x = mid-dm:0.01:mid+dm; hist(r(:,1),x) title(['oppgave 6, m = ',num2str(m),', n = ',num2str(n)]) ylabel('antall') xlabel('r(x,y)') rmean = sum(r(:,1))/m diffmean = sum(r(:,3))/m rquan = quantile(r(:,1),[0.25, 0.5, 0.75]) rstd = std(r(:,1)) % Oppgave 6 - store n og m % Loop for m simuleringer m = 100000; r = zeros(m,3); for (i=1:m) end % Simulering av 2xn uavhengige observasjoner n = 10000; x = randn(n,1); z = randn(n,1); % Beregning av y y = z-x; % Beregne sx, sy og sxy xavrg = sum(x)/n; yavrg = sum(y)/n; sx = (1/(n-1))*sum((x-xavrg).^2); sy = (1/(n-1))*sum((y-yavrg).^2); sxy = (1/(n-1))*sum((x-xavrg).*(y-yavrg)); % Beregne r og sjekke differanse r(i,1) = sxy/sqrt(sx*sy); r(i,2) = -1/sqrt(2); r(i,3) = abs(r(i,1)-r(i,2)); % Presentasjon av data figure(2) dm = max(r(:,3)); mid = -1/sqrt(2); x = mid-dm:0.001:mid+dm; hist(r(:,1),x) title(['oppgave 6, m = ',num2str(m),', n = ',num2str(n)]) ylabel('antall') xlabel('r(x,y)') rmean = sum(r(:,1))/m diffmean = sum(r(:,3))/m rquan = quantile(r(:,1),[0.25, 0.5, 0.75]) rstd = std(r(:,1)) Side 16 av 26
Oppgave 7 Vi lar nå der og er uavhengige og normalfordelte som i oppgave 1. Deretter simulerer vi og plotter mot. Vi lager igjen et enkelt program. % Oppgave 7 % Simulering av 2xn uavhengige observasjoner n = 50; x = randn(n,1); z = randn(n,1); % Beregning av y y = z-3*x.^2; % Beregne sx, sy og sxy xavrg = sum(x)/n; yavrg = sum(y)/n; sx = (1/(n-1))*sum((x-xavrg).^2); sy = (1/(n-1))*sum((y-yavrg).^2); sxy = (1/(n-1))*sum((x-xavrg).*(y-yavrg)); % Beregne r og sjekke differanse r = sxy/sqrt(sx*sy) % Presentasjon av data figure(1) plot(x,y,'xk') xlabel('x') ylabel('y') title('oppgave 7') Dette programmet gir figur 7.1 og estimerer for dette datasettet. Figur 7.1: plottet mot for. Fra figur 7.1 tyder det på at det er en sammenheng mellom variablene og. Vi kan også beregne den sanne og sammenligne denne mot den estimerte. Vi benytter oss av samme fremgangsmåte som i oppgave 1. Side 17 av 26
Vi benytter oss videre av. Den sanne er i dette tilfellet, mot som vi estimerte. Dette estimatet kan komme av det lave antall simuleringer som er valgt,. Et større antall simuleringer vil mest sannsynlig gi et bedre estimat. Ved å kjøre programmet for ble estimatet som er betydelig bedre enn for estimatet som ble beregnet for. Plottet for kan ses i figur 7.2 under. Figur 7.2: plottet mot for. Side 18 av 26
Oppgave 8 Vi ser i denne oppgavene på tall fra 60-årene som tar for seg gjennomsnittlig sigarettforbruk og dødlighet av hjertekarsykdommer (HKS) for land. i) Det første vi ønsker å gjøre er å beregne og der står for sigarettkonsum og for HKS-dødlighet. Vi ønsker så å beregne korrelasjonskoeffisienten mellom sigarettforbruk og HKS-dødlighet. Vi har igjen benyttet oss av en programkode og beregnet disse verdiene numerisk. % Oppgave 8.1 % Data n = 21; x = [3900;3350;3220;3220;2790;2780;2770;2290;2160;1890;1810;1800;1770;1700; 1680;1510;1500;1410;1270;1200;1090]; y = [256.9;211.6;238.1;211.8;194.1;124.5;187.3;110.5;233.1;150.3;124.7;41.2; 182.1;118.1;31.9;114.3;144.9;59.7;126.9;43.9;136.3]; % Beregne gjennomsnitt, sx, sy og sxy xavrg = sum(x)/n yavrg = sum(y)/n sx = sqrt((1/(n-1))*sum((x-xavrg).^2)) sy = sqrt((1/(n-1))*sum((y-yavrg).^2)) sxy = (1/(n-1))*sum((x-xavrg).*(y-yavrg)) % Beregne rho r = sxy/(sx*sy) ii) Videre antar vi at benevningen for HKS-dødlighet endres fra pr. 100 000 til pr. 10 000. Det vi ønsker er å se på hvilken konsekvens denne endringen får for standardavvik, kovarians, korrelasjonskoeffisienten og deres estimater. Side 19 av 26
Vi ser her at både gjennomsnittet, standardavviket og kovariansen reduseres med en faktor 10. Alt annet forblir uendret. Et spørsmål er hvorfor korrelasjonskoeffisienten er uberørt. Dette kan forklares ved uttrykket for. Fra uttrykket ser vi hele prosessen, og fra dette ser vi også at vi regner på en relativ skala. Det vil si at dersom vi reduserer benevningene på, så vil vi redusere både nevner og teller tilsvarende. og ble redusert med en faktor 10, mens vi lot forbli uendret. Vi har med andre ord redusert med en faktor i både nevner og teller, som betyr at korrelasjonskoeffisienten ikke er berørt. Dette forklarer hvorfor ikke endrer seg selvom vi endrer benevningen for. Programmet som ble brukt for å regne ut dette er gitt under. % Oppgave 8.2 % Data n = n; x = x; y = y/10; % Beregne gjennomsnitt, sx, sy og sxy xavrg = sum(x)/n yavrg = sum(y)/n sx = sqrt((1/(n-1))*sum((x-xavrg).^2)) sy = sqrt((1/(n-1))*sum((y-yavrg).^2)) sxy = (1/(n-1))*sum((x-xavrg).*(y-yavrg)) % Beregne rho r = sxy/(sx*sy) Side 20 av 26
Oppgave 9 Tallene i oppgave 8 betraktes som et representativt utvalg av observasjoner trukket fra en større populasjon med en ukjent korrelasjonskoeffisient,. Det er denne koeffisienten vi er interessert i, og skal i denne oppgaven se på hvor sterk evidensen av data er for at den ukjente faktisk er positiv når vi tar henyn til usikkerhet knyttet til estimatet. Vi lar her være vårt estimat som betraktes som en observasjon av en stokastisk variabel. Vi er altså interessert i å betrakte sannsynligheten under antakelsen at. Dersom denne sannsynligheten er liten nok, anses dette som en sterk evidens mot antakelsen. For at den skal være liten nok skal -verdien ha en størrelsesorden. For å kunne beregne trenger vi å kjenne til sannsynlighetsfordelingen til. Vi benytter oss her av Fishers -transformasjon der, og som er tilnærmet normalfordelt,, når. Vi har definert den for. i) Vi starter med å betrakte funksjonen og plotte denne for å vise at den er voksende. Figur 9.1: Fishers -transformasjon plottet mot. Fra figur 9.1 ser vi at er en strengt voksende funksjon av på området. Programkoden følger under. % Oppgave 9.1 % Data n = 21; r = [-0.99:0.01:.99]; % Generere h(x) h = sqrt(n-1).*log((1+r)./(1-r)); % Plott h(x) mot r figure(1) Side 21 av 26
plot(r,h,'-k') title('oppgave 9.1') xlabel('r') ylabel('h(r)') ii) Vi ser fra figur 9.1 at begivenhetene og er logisk ekvivalente og dermed også at. Dette kommer av forholde da er den inverse av, altså. Dette viser at dersom den ene begivenheten intreffer, så intreffer den andre også. iii) Til slutt skal vi bruke i) og ii) til å beregne -verdien,. Vi benytter oss her av fordelingstettheten til og bruker dermed at for å beregne. Figur 9.2: Plottet viser løsningen. -verdien vil da være gitt ved som er sannsynligheten for å få. Gitt at denne -verdien er på størrelsorden så er det ikke å anse som sterk nok evidens for at. Vi kan derfor trekke den slutning at ut fra den -verdien vi beregnet. Side 22 av 26
Tillegg til oppgave 1 og 2 Som et lite tillegg til oppgave 1 og 2 kan vi forklare, der både og er normalfordelte og uavhengige, og dermed også ukorrelerte. Dette innebar at paret har og dermed også. Vi kan forklare dette grafisk. Hver for seg har vi at de tilfeldige fordelingene er normalfordelte, nemlig og, og uavhengig av hverandre. Figur 10.1: Vi har her plottet tilfeldige trekk for. Punktene vil her ha størst tetthet rundt og innenfor av dette. Figur 10.2: Vi har her plottet tilfeldige trekk for. Punktene vil som i figur 10.1 ha størst tetthet rundt og innenfor av dette. Side 23 av 26
Dersom vi slår disse sammen i et tredimensjonalt plott vil vi få en klokkeformet figur, slik som figurene 10.3-5 viser. Figur 10.3: Figuren viser fra siden. Figur 10.4: Figuren viser. Figur 10.5: Figuren viser fra oversiden. Side 24 av 26
Vi har for figurene 10.3-5 brukt en uniform Gauss-kurve for å vise dette, da det å bruke tilfeldige genererte trekk er en litt større jobb. Det disse figurene er ment å vise er at paret er ukorrelerte, uavhengige og normalfordelte. Vi kan blant annet se dette på symmetrien på figuren da det ikke er noe lineært forhold mellom og. Dette har vi også vist i figur 2.3, men da som et spredningplot mellom og for observasjoner. Programkoden for disse figurene er gitt under. % Tillegg til oppgave 1 og 2 % Definere PDF function f = gauss_distribution(x, mu, s) p1 = -.5 * ((x - mu)/s).^ 2; p2 = (s * sqrt(2*pi)); f = exp(p1)./ p2; end % Globale variable m = 0 s = 1; n = 100; d=3; % Definere x og z x = randn(n,1); z = randn(n,1); % Plott X figure(1) f = gauss_distribution(x, m, s); plot(x,f,'.k') title('x~n(0,1)') xlabel('x_i') ylabel('p(x)') axis([-3 3 0 0.5]) % Plott Z figure(2) f = gauss_distribution(z, m, s); plot(z,f,'.k') title('z~n(0,1)') xlabel('z_i') ylabel('p(z)') axis([-3 3 0 0.5]) % Simulering N(0,1) 3D n = 100; d = 3; x=linspace(-d,d,n);y=x'; [x,y] = meshgrid(x,y); z=exp(-(x.^2+y.^2)/2); % Plotter x mot z figure(3) mesh(x,y,z) title('(x,y)~n(0,\sigma)') xlabel('x~n(0,1)') ylabel('z-n(0,1)') Zlabel('P(X,Z)') axis equal Side 25 av 26
Kilder Løvås, G. Gunnar. (2004). Statistikk for universiteter og høgskoler. Universitetsforlaget. Vedlegg Programkode, oppgave 1 (tillegg) Programkode, oppgave 2 Programkode, oppgave 3 Programkode, oppgave 4 Programkode, oppgave 5 Programkode, oppgave 6 Programkode, oppgave 7 Programkode, oppgave 8 Programkode, oppgave 9 Side 26 av 26