Afsnit 5.8: Øvelse 5: IT

I denne uges øvelser skal du blive fortrolig med den statistiske model for regressionsanalysen. Desuden skal du prøve at bruge funktionen lm i R til analysen. Denne funktion skal du også bruge i øvelse 6 og 7.
Opgaverne 5.1-5.4 skal være forberedt hjemmefra og gennemgås ved tavlen til øvelserne. Efter øvelsen skal der afleveres en rapport over opgave 5.5.

Opgave 5.1: Regression

Et mål for udviklingen af kompleksiteten af computerchips er antallet af transistorer på en chip. På adressen Transistor count kan man finde en tabel med antallet af transistorer for 108 chips produceret i perioden 1971-2016. Moore's lov siger, at antallet af transitorer på en chip fordobles cirka hvert andet år. Dette blev formuleret af Gordon Moore, som var medstifter af Intel (Moore's udsagn går helt tilbage til 1965 og 1975).
I skal nedenfor undersøge dette udsagn ved at se på de transformerede antal transistorers afhængighed af produktionsår. Ved at bruge to-talslogaritmen opnår vi, at en fordobling af antal transistorer svarer til en stigning på 1.
Filen Moore.csv indeholder data. Filen har to søjler, hvor første søjle er produktionsår regnet med udgangspunkt i 1950 (en værdi på 24 svarer således til 1974), og anden søjle er antal transistorer på chippen.
  1. Indlæs data, og dan variablene Aar og Antal med indholdet af de to søjler. Dan endvidere variablen log2Antal=log2(Antal) med de transformerede antal transistorer. Lav en figur, hvor log2Antal tegnes op mod Aar (Aar langs førsteaksen og log2Antal langs andenaksen). Er det rimeligt at sige, at der er en lineær sammenhæng mellem de to variable?
  2. Opskriv den lineære regressionsmodel for data. Estimer parametrene i modellen, og lav figurer til modelkontrol. I residualplottet skal du indtegne to vandrette linjer, der skærer andenaksen i punkterne hvor er skønnet over spredningen i regressionsmodellen.
  3. Beregn 95%-konfidensintervaller for henholdsvis skæring og hældning i den lineære sammenhæng mellem middelværdien af log2Antal og Aar. Eftervis, at konfidensintervallet for hældningen, fundet gennem et kald til confint, er korrekt ved at bruge oplysninger i output fra summary.
  4. Overvej, om data er i overensstemmelse med en teori, der siger, at antallet af transitorer på en chip fordobles hvert andet år?

Opgave 5.2: Regressionsanalyse med prædiktion

I denne opgave skal I se på muligheden for at prædiktere den tid, der skal bruges til at teste et program ud fra oplysning om, hvor lang tid der er brugt på at kode programmet. Data i filen Testtid.csv indeholder oplysninger for 95 programmer. Filen har to søjler, hvor første søjle er tid brugt på at kode, og anden søjle er tid brugt på at teste programmet (begge tider er i timer). Data er simulerede ud fra oplysningerne i figur 3 i artiklen Software effort estimation with multiple linear regression: review and practical application.
I opgaven her skal I etablere en lineær sammenhæng mellem middelværdien af logaritmen til testtiden og logaritmen til kodningstiden, og bruge denne sammenhæng til at prædiktere testtiden ved forskellige givne værdier af kodningstiden.
  1. Lad logKode være en vektor med logaritmen til kodningstiderne, og lad logTest være en vektor med logaritmen til testtiderne. Lav en figur, hvor logTest afsættes mod logKode. Er det rimeligt at sige, at der er en lineær sammenhæng mellem de to variable?
    Opskriv den lineære regressionsmodel for data, og estimer parametrene i denne via lm og summary. Indtegn den fundne linje i figuren med data.
    Prøv i ord at beskrive sammenhængen i data, ud fra hvad du ser i figuren.
  2. Lav et test, for hypotesen at hældningen er nul. Hvad bliver konklusionen af dit test? Lav dernæst et 95%-konfidensinterval for hældningen. Kommenter på betydningen af, at hældningen ser ud til at være væsentlig mindre end 1.
    Lav et skøn over ændringen i middelværdi af logTest mellem en værdi af logKode på 2 og 4, og sammenhold denne med spredningen omkring regressionslinjen (jævnfør din egen beskrivelse af sammenhængen i data sidst i foregående spørgsmål).
  3. Lav et 95%-konfidensinterval for middelværdien af logTest, når logKode er 6.
    Lav dernæst et prædiktionsinterval for en kommende måling, når logKode er 6.
    Prøv at forklare, hvorfor prædiktionsintervallet er noget bredere end konfidensintervallet.
  4. I dette spørgsmål skal du beregne konfidensintervallet og prædiktionsintervallet i mange punkter og indtegne disse som en kurve i figuren fra spørgsmål (a). Du kan finde inspiration til konstruktion af figuren i afsnit 5.5 i det skjulte punkt "Test dig selv". Til beregningen kan du kalde predict med nye datapunkter givet ved data.frame(logKode=c(0:100)*0.07).

Opgave 5.3: Regression med kendt skæring

Ved beskrivelse at et stykke software bruges flere forskellige mål. I denne opgave skal I se på forholdet mellem to mål, nemlig antal linjer med kode (loc) og McCabe kompleksitet (MC, også kaldet cyclomatic complexity). McCabe kompleksiteten måler antallet af stier gennem koden. Hvis for eksempel programmet har et if-statement, giver dette to stier.
I skal betragte data fra artiklen Software development effort estimation using fuzzy logic: a case study med i alt 41 forskellige softwareprogrammer, alle med en meget lav værdi af kompleksiteten. Data findes i filen MCloc.csv, der har to søjler med henholdsvis MC og loc.
  1. Lav en figur, hvor loc afsættes mod MC, og hvor førsteaksen går fra 0 til 6, og andenaksen går fra 0 til 35.
    Opstil regressionsmodellen hvor middelværdien af loc afhænger lineært af MC. Estimer denne model via lm, og indtegn den fundne linje.
    Angiv et 95%-konfidensinterval for hældning og for skæring. Kan det antages, at hælningen er nul, svarende til at antal kodelinjer ikke er influeret af McCabe kompleksiteten?
    Angiv et 95%-konfidensinterval for middelværdien af loc (linjens værdi), når MC har værdien 1.
  2. Kompleksiteten er altid større end eller lig med 1, hvorfor skæringen med andenaksen ikke har en umiddelbar fortolkning. Dog har værdien den fortolkning, at middelværdien af antal kodelinjer er proportional med kompleksiteten. Lav et -test, for at skæringen med andenaksen er i punktet nul. Er det rimeligt at sige, at linjen går gennem ?
  3. Opskriv regressionmodellen hvor middelværdien af loc er proportional med MC (linjen har skæring med andenaksen i nul). Estimer denne model i R ved et passende kald til lm.
    Angiv et 95%-konfidensinterval for hældningen i model
    Angiv et 95%-konfidensinterval for middelværdien af antal kodelinjer (linjens værdi), når kompleksiteten er 1.
    Prøv at beskrive i ord forskellen mellem de to konfidensintervaller i dette spørgsmål og de to konfidensintervaller i spørgsmål (a).

Opgave 5.4: Prøve kalibreringsberegning

Vend tilbage til data og problemstilling i opgave 5.2. Forestil dig, at vi for et program har brugt 27 timer til at teste programmet. Desværre har vi forlagt registreringen af den tid, der blev brugt til at kode programmet. Lav et 95%-konfidensinterval for den tid, der blev brugt til at kode programmet. Hertil kan du bruge funktionen inversReg omtalt i den skjulte kode i underafsnit 5.5.1. Funktionen findes i filen Rfunktioner.txt.

Opgave 5.5: Afleveringsopgave

I denne opgave skal I bruge en lineær regressionsmodel til at sige noget om værdien af den forklarende variabel ud fra en målt responsværdi. For data her er den forklarende variabel antallet af personer i en større flok, for eksempel på en togperron, og respons er et mål beregnet ud fra et billede på et overvågningskamera, for eksempel antallet af pixels i billedet, der klassificeres som tilhørende mennesker (personpixels).
Data i filen CrowdCounting.csv har to søjler, hvor første søjle er antal personer i billedet, og den anden søjle er antal personpixels. Der er data fra 96 billeder. Data er simulerede i overensstemmelse med situationen vist i figur 2 i artiklen Counting people with low-level features and Bayesian regression.
  1. Lav en figur, hvor antal personpixels afsættes mod antal personer. Styr start og slut på førsteaksen og andenaksen med tilføjelsen xlim=c(0,60),ylim=c(0,25000) til plot. Synes du, at der er en lineær sammenhæng i data? Synes du, at sammenhængen er god med henblik på at estimere antal personer ud fra antal personpixels?
  2. Opskriv den lineære regressionsmodel, hvor respons er antal personpixels, og den forklarende variabel er antal personer.
    Find skøn og 95%-konfidensinterval for hældning og skæring, og indtegn den skønnede linje i figuren fra foregående spørgsmål. Angiv også et skøn over spredningen omkring den lineære sammenhæng.
    Lav figurer, der kan bruges til modelkontrol, og kommenter på disse figurer.
  3. Betragt situationen med et nyt billede, hvor antal personpixels er målt til 12000. Beregn et 95%-konfidensinterval for antal peroner i dette tilfælde.
    Gentag beregningen for tre andre billeder, hvor antal personpixels er målt til henholdsvis 15000, 16000 og 17000. Lav en tabel med resultaterne for de fire billeder.
    Hvis vi siger, at billederne viser personer på en togperron, og personalet har en politik med at åbne et ekstra venteværelse, hvis der er flere end 40 personer på perronen, hvor stor skal antal personpixels i billedet så være, før du vil åbne for det ekstra venteværelse?

ForegåendeNæste