[da,no,fi] chore(i18n): sync translations

Sync translations with latest source changes.
Languages: Danish [da], Norwegian [no], Finnish [fi]
update-translations
localizeflow[bot] 6 days ago
parent 69ac48f5f1
commit 2e441d2f6e

@ -12,8 +12,8 @@
"language_code": "da"
},
"1-Introduction/01-defining-data-science/notebook.ipynb": {
"original_hash": "8f5eb7b3f7cc89e6d98fb32e1de65dec",
"translation_date": "2026-02-27T09:45:55+00:00",
"original_hash": "8eb07e3d899aaba7ea9c9ec9b5aa2850",
"translation_date": "2026-07-17T22:59:22+00:00",
"source_file": "1-Introduction/01-defining-data-science/notebook.ipynb",
"language_code": "da"
},
@ -42,8 +42,8 @@
"language_code": "da"
},
"1-Introduction/03-defining-data/README.md": {
"original_hash": "12339119c0165da569a93ddba05f9339",
"translation_date": "2025-09-05T22:09:02+00:00",
"original_hash": "7217c6f9eb464d4ff4bae6c036ab53cb",
"translation_date": "2026-07-17T23:05:51+00:00",
"source_file": "1-Introduction/03-defining-data/README.md",
"language_code": "da"
},
@ -65,6 +65,12 @@
"source_file": "1-Introduction/04-stats-and-probability/assignment.md",
"language_code": "da"
},
"1-Introduction/04-stats-and-probability/notebook.ipynb": {
"original_hash": "0c77e104b29c723287bf11b773fcc5d5",
"translation_date": "2026-07-17T23:00:23+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "da"
},
"1-Introduction/README.md": {
"original_hash": "696a8474a01054281704cbfb09148949",
"translation_date": "2025-08-26T21:14:00+00:00",
@ -108,8 +114,8 @@
"language_code": "da"
},
"2-Working-With-Data/07-python/notebook-covidspread.ipynb": {
"original_hash": "6335cccba01dc6ad7b15aba7a8c73f38",
"translation_date": "2026-02-27T09:47:17+00:00",
"original_hash": "da97f98781c7cd271063f605fe8d71d0",
"translation_date": "2026-07-17T22:58:54+00:00",
"source_file": "2-Working-With-Data/07-python/notebook-covidspread.ipynb",
"language_code": "da"
},
@ -192,14 +198,14 @@
"language_code": "da"
},
"3-Data-Visualization/13-meaningful-visualizations/solution/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-26T22:47:11+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T23:05:58+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/solution/README.md",
"language_code": "da"
},
"3-Data-Visualization/13-meaningful-visualizations/starter/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-26T22:46:36+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T23:05:55+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/starter/README.md",
"language_code": "da"
},

File diff suppressed because one or more lines are too long

@ -4,45 +4,44 @@
|:---:|
|Definering af Data - _Sketchnote af [@nitya](https://twitter.com/nitya)_ |
Data er fakta, information, observationer og målinger, der bruges til at gøre opdagelser og træffe informerede beslutninger. Et datapunkt er en enkelt enhed af data i et datasæt, som er en samling af datapunkter. Datasæt kan komme i forskellige formater og strukturer og vil typisk være baseret på deres kilde, eller hvor dataene stammer fra. For eksempel kan en virksomheds månedlige indtjening være i et regneark, mens timebaserede pulsdata fra et smartwatch kan være i [JSON](https://stackoverflow.com/a/383699)-format. Det er almindeligt, at dataspecialister arbejder med forskellige typer data inden for et datasæt.
Data er fakta, information, observationer og målinger, der bruges til at gøre opdagelser og støtte informerede beslutninger. Et datapunkt er en enkelt enhed af data inden for et datasæt, som er en samling af datapunkter. Datasæt kan forekomme i forskellige formater og strukturer og vil normalt baseres på dets kilde, eller hvor dataene stammer fra. For eksempel kan en virksomheds månedlige indtjening være i et regneark, men timebaserede pulsmålinger fra et smartwatch kan være i [JSON](https://stackoverflow.com/a/383699) format. Det er almindeligt, at dataforskere arbejder med forskellige typer data inden for et datasæt.
Denne lektion fokuserer på at identificere og klassificere data ud fra deres karakteristika og kilder.
Denne lektion fokuserer på at identificere og klassificere data efter deres karakteristika og deres kilder.
## [Quiz før lektionen](https://ff-quizzes.netlify.app/en/ds/quiz/4)
## [Quiz før forelæsningen](https://ff-quizzes.netlify.app/en/ds/quiz/4)
## Hvordan Data Beskrives
## Hvordan data beskrives
### Rå Data
Rå data er data, der er kommet fra sin kilde i sin oprindelige tilstand og ikke er blevet analyseret eller organiseret. For at kunne forstå, hvad der sker med et datasæt, skal det organiseres i et format, som kan forstås både af mennesker og den teknologi, de måtte bruge til at analysere det yderligere. Strukturen i et datasæt beskriver, hvordan det er organiseret og kan klassificeres som struktureret, ustruktureret og semi-struktureret. Disse typer af struktur vil variere afhængigt af kilden, men vil i sidste ende passe ind i disse tre kategorier.
### Rådata
Rådata er data, der kommer fra deres kilde i deres oprindelige tilstand og ikke er blevet analyseret eller organiseret. For at forstå, hvad der sker i et datasæt, skal det organiseres i et format, der kan forstås af både mennesker og den teknologi, de bruger til yderligere analyse. Strukturen af et datasæt beskriver, hvordan det er organiseret, og kan klassificeres som struktureret, ustruktureret og semistruktureret. Disse strukturer varierer afhængigt af kilden, men vil i sidste ende passe ind i disse tre kategorier.
### Kvantitativ Data
Kvantitativ data er numeriske observationer inden for et datasæt og kan typisk analyseres, måles og bruges matematisk. Nogle eksempler på kvantitativ data er: et lands befolkning, en persons højde eller en virksomheds kvartalsvise indtjening. Med yderligere analyse kunne kvantitativ data bruges til at opdage sæsonbestemte tendenser i Air Quality Index (AQI) eller estimere sandsynligheden for myldretidstrafik på en typisk arbejdsdag.
### Kvantitative data
Kvantitative data er numeriske observationer i et datasæt og kan typisk analyseres, måles og bruges matematisk. Nogle eksempler på kvantitative data er: et lands befolkning, en persons højde eller en virksomheds kvartalsvise indtjening. Med yderligere analyse kan kvantitative data bruges til at opdage sæsonmæssige tendenser i luftkvalitetsindekset (AQI) eller estimere sandsynligheden for myldretidstrafik på en typisk arbejdsdag.
### Kvalitativ Data
Kvalitativ data, også kendt som kategoriske data, er data, der ikke kan måles objektivt som observationer af kvantitativ data. Det er generelt forskellige formater af subjektive data, som fanger kvaliteten af noget, såsom et produkt eller en proces. Nogle gange er kvalitativ data numerisk og ville normalt ikke blive brugt matematisk, som telefonnumre eller tidsstempler. Nogle eksempler på kvalitativ data er: videokommentarer, mærke og model af en bil eller din nærmeste vens yndlingsfarve. Kvalitativ data kunne bruges til at forstå, hvilke produkter forbrugere bedst kan lide eller til at identificere populære søgeord i jobansøgnings-CV'er.
### Kvalitative data
Kvalitative data, også kendt som kategoriske data, er data, der ikke kan måles objektivt som observationer af kvantitative data. Det er generelt forskellige formater af subjektive data, der fanger kvaliteten af noget, såsom et produkt eller en proces. Nogle gange er kvalitative data numeriske, men bruges typisk ikke matematisk, som for eksempel telefonnumre eller tidsstempler. Nogle eksempler på kvalitative data er: videokommentarer, mærke og model på en bil eller dine nærmeste venners yndlingsfarve. Kvalitative data kan bruges til at forstå, hvilke produkter forbrugerne bedst kan lide, eller til at identificere populære nøgleord i jobansøgninger.
### Struktureret Data
Struktureret data er data, der er organiseret i rækker og kolonner, hvor hver række har samme sæt kolonner. Kolonner repræsenterer en værdi af en bestemt type og identificeres med et navn, der beskriver, hvad værdien repræsenterer, mens rækker indeholder de faktiske værdier. Kolonner har ofte et specifikt sæt regler eller begrænsninger for værdierne for at sikre, at værdierne præcist repræsenterer kolonnen. For eksempel forestil dig et regneark med kunder, hvor hver række skal have et telefonnummer, og telefonnumrene aldrig indeholder alfabetiske tegn. Der kan være regler, der gælder for telefonnummerkolonnen for at sikre, at den aldrig er tom og kun indeholder tal.
### Strukturerede data
Strukturerede data er data, der er organiseret i rækker og kolonner, hvor hver række har det samme sæt kolonner. Kolonner repræsenterer en værdi af en bestemt type og identificeres med et navn, der beskriver, hvad værdien repræsenterer, mens rækker indeholder de faktiske værdier. Kolonner har ofte et specifikt sæt regler eller begrænsninger for værdierne for at sikre, at værdierne nøjagtigt repræsenterer kolonnen. For eksempel forestil dig et regneark med kunder, hvor hver række skal have et telefonnummer, og telefonnumrene aldrig indeholder bogstaver. Der kan være regler for telefonnummerkolonnen for at sikre, at den aldrig er tom og kun indeholder tal.
En fordel ved struktureret data er, at det kan organiseres på en måde, så det kan relateres til andre strukturerede data. Men fordi dataene er designet til at blive organiseret på en bestemt måde, kan det kræve meget arbejde at ændre dens overordnede struktur. For eksempel betyder det, at hvis man tilføjer en e-mail-kolonne til kunderegnearket, der ikke må være tom, skal du finde ud af, hvordan du tilføjer disse værdier til de eksisterende rækker af kunder i datasættet.
En fordel ved strukturerede data er, at de kan organiseres på en måde, der kan relateres til andre strukturerede data. Men fordi dataene er designet til at være organiseret på en bestemt måde, kan det kræve meget arbejde at ændre deres overordnede struktur. For eksempel, hvis du tilføjer en e-mail-kolonne til kunderegnearket, der ikke må være tom, skal du finde ud af, hvordan du tilføjer disse værdier til de eksisterende rækker i datasættet.
Eksempler på struktureret data: regneark, relationelle databaser, telefonnumre, bankudtog
Eksempler på strukturerede data: regneark, relationelle databaser, telefonnumre, kontoudtog.
### Ustruktureret Data
Ustruktureret data kan typisk ikke kategoriseres i rækker eller kolonner og indeholder ikke et format eller et sæt regler, der skal følges. Fordi ustruktureret data har færre begrænsninger i sin struktur, er det nemmere at tilføje ny information sammenlignet med et struktureret datasæt. Hvis en sensor, der måler barometertryk hvert 2. minut, har modtaget en opdatering, der nu tillader den at måle og registrere temperatur, kræver det ikke at ændre de eksisterende data, hvis de er ustrukturerede. Dette kan dog betyde, at det tager længere tid at analysere eller undersøge denne type data. For eksempel en videnskabsmand, der vil finde gennemsnitstemperaturen for den foregående måned ud fra sensorens data, men opdager, at sensoren har registreret et "e" i nogle af sine registrerede data for at angive, at den var defekt i stedet for et typisk tal, hvilket betyder, at dataene er ufuldstændige.
### Ustrukturerede data
Ustrukturerede data kan typisk ikke kategoriseres i rækker eller kolonner og har ikke et format eller et sæt regler at følge. Fordi ustrukturerede data har færre begrænsninger på deres struktur, er det lettere at tilføje ny information sammenlignet med et struktureret datasæt. Hvis en sensor, der registrerer data om barometertryk hvert andet minut, får en opdatering, der nu gør det muligt at måle og registrere temperatur, kræver det ikke ændringer i de eksisterende data, hvis de er ustrukturerede. Dette kan dog gøre det mere tidskrævende at analysere eller undersøge denne type data. For eksempel kan en forsker, der ønsker at finde gennemsnitstemperaturen for den foregående måned fra sensorens data, opdage, at sensoren har registreret et "e" i nogle af sine data for at angive, at den var i stykker, hvilket betyder, at dataene er ufuldstændige.
Eksempler på ustruktureret data: tekstfiler, tekstbeskeder, videofiler
Eksempler på ustrukturerede data: tekstfiler, tekstbeskeder, videofiler.
### Semi-struktureret
Semi-struktureret data har træk, der gør det til en kombination af struktureret og ustruktureret data. Det tilpasser sig typisk ikke et format med rækker og kolonner, men er organiseret på en måde, der betragtes som struktureret og kan følge et fast format eller et sæt regler. Strukturen vil variere mellem kilder, såsom en veldefineret hierarki til noget mere fleksibelt, der tillader nem integration af ny information. Metadata er indikatorer, der hjælper med at afgøre, hvordan dataene er organiseret og gemt og vil have forskellige navne, baseret på typen af data. Nogle almindelige navne til metadata er tags, elementer, enheder og attributter. For eksempel vil en typisk e-mail besked have et emne, brødtekst og et sæt modtagere og kan organiseres efter hvem eller hvornår den blev sendt.
### Semistrukturerede data
Semistrukturerede data har egenskaber, der gør dem til en kombination af strukturerede og ustrukturerede data. De følger typisk ikke et format med rækker og kolonner, men er organiseret på en måde, der anses for struktureret og kan følge et fast format eller et sæt regler. Strukturen varierer mellem kilder, fra en veldefineret hierarki til noget mere fleksibelt, der gør det nemt at integrere ny information. Metadata er indikatorer, der hjælper med at bestemme, hvordan dataene er organiseret og gemt, og de har forskellige navne afhængigt af datatypen. Nogle almindelige navne for metadata er tags, elementer, enheder og attributter. For eksempel vil en typisk e-mailbesked have et emne, en brødtekst og en række modtagere og kan organiseres efter, hvem eller hvornår den blev sendt.
Eksempler på semi-struktureret data: HTML, CSV-filer, JavaScript Object Notation (JSON)
Eksempler på semistrukturerede data: HTML, CSV-filer, JavaScript Object Notation (JSON).
## Kilder til Data
## Datakilder
En datakilde er det oprindelige sted, hvor data blev genereret, eller hvor det "bor", og vil variere afhængigt af, hvordan og hvornår det blev indsamlet. Data genereret af dets bruger(e) kaldes primære data, mens sekundære data kommer fra en kilde, der har indsamlet data til generel brug. For eksempel ville en gruppe videnskabsmænd, der indsamler observationer i en regnskov, blive betragtet som primær, og hvis de beslutter at dele det med andre videnskabsmænd, vil det blive betragtet som sekundært for dem, der bruger det.
En datakilde er det oprindelige sted, hvor dataene blev genereret, eller hvor de "bor", og det vil variere afhængigt af, hvordan og hvornår de blev indsamlet. Data genereret af brugeren/brugerne kaldes primære data, mens sekundære data kommer fra en kilde, der har indsamlet data til generel brug. For eksempel vil en gruppe forskere, der indsamler observationer i en regnskov, blive betragtet som primære, og hvis de beslutter at dele det med andre forskere, vil det blive betragtet som sekundære for dem, der bruger det.
Databaser er en almindelig kilde og er afhængige af et databasehåndteringssystem til at hoste og vedligeholde dataene, hvor brugere bruger kommandoer kaldet forespørgsler til at udforske dataene. Filer som datakilder kan være lyd-, billed- og videofiler samt regneark som Excel. Internettet er en almindelig placering for hosting af data, hvor både databaser og filer kan findes. Application programming interfaces, også kendt som API'er, giver programmører mulighed for at skabe måder at dele data med eksterne brugere via internettet, mens processen med web scraping udtrækker data fra en webside. [Lektionerne i Arbejde med Data](../../../../../../../../../2-Working-With-Data) fokuserer på, hvordan man bruger forskellige datakilder.
Databaser er en almindelig kilde og er afhængige af et databasehåndteringssystem til hosting og vedligeholdelse af data, hvor brugere bruger kommandoer kaldet forespørgsler til at udforske dataene. Filer som datakilder kan være lyd-, billed- og videofiler samt regneark som Excel. Internettets kilder er et almindeligt sted for hosting af data, hvor både databaser og filer kan findes. Application programming interfaces, også kendt som APIs, tillader programmører at skabe måder at dele data med eksterne brugere via internettet, mens processen med web scraping udtrækker data fra en webside. [Lektionen i Arbejde med Data](../../../../../../../../../2-Working-With-Data) fokuserer på, hvordan man bruger forskellige datakilder.
## Konklusion
@ -55,22 +54,26 @@ I denne lektion har vi lært:
## 🚀 Udfordring
Kaggle er en fremragende kilde til åbne datasæt. Brug [værktøjet til datasætsøgning](https://www.kaggle.com/datasets) til at finde nogle interessante datasæt og klassificer 3-5 datasæt med følgende kriterier:
Kaggle er en fremragende kilde til åbne datasæt. Brug [datasøgeværktøjet](https://www.kaggle.com/datasets) til at finde nogle interessante datasæt og klassificer 3-5 datasæt efter følgende kriterier:
- Er data kvantitativ eller kvalitativ?
- Er data struktureret, ustruktureret eller semi-struktureret?
## [Quiz efter forelæsningen](https://ff-quizzes.netlify.app/en/ds/quiz/5)
- Er dataene kvantitative eller kvalitative?
- Er dataene strukturerede, ustrukturerede eller semistrukturerede?
## [Quiz efter lektionen](https://ff-quizzes.netlify.app/en/ds/quiz/5)
## Gennemgang & Selvstudie
## Gennemgang & Selvstudium
- Denne Microsoft Learn-enhed, med titlen [Klassificer dine data](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data), har en detaljeret gennemgang af strukturerede, semistrukturerede og ustrukturerede data.
- Denne Microsoft Learn enhed med titlen [Identify data formats](https://learn.microsoft.com/en-us/training/modules/explore-core-data-concepts/2-data-formats?pivots=text) har en detaljeret gennemgang af struktureret, semi-struktureret og ustruktureret data.
## Opgave
[Klassificering af datasæt](assignment.md)
[Klassificering af Datasæt](assignment.md)
---
**Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for eventuelle misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -4,8 +4,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Introduktion til Sandsynlighed og Statistik\n",
"I denne notesbog vil vi lege med nogle af de begreber, vi tidligere har diskuteret. Mange begreber inden for sandsynlighed og statistik er godt repræsenteret i store biblioteker til databehandling i Python, såsom `numpy` og `pandas`.\n"
"# Introduktion til sandsynlighed og statistik\n",
"I denne notesbog vil vi lege med nogle af de koncepter, vi tidligere har diskuteret. Mange koncepter fra sandsynlighed og statistik er godt repræsenteret i store biblioteker til databehandling i Python, såsom `numpy` og `pandas`.\n"
]
},
{
@ -24,8 +24,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tilfældige variable og fordelinger\n",
"Lad os starte med at trække et stikprøve af 30 værdier fra en ensartet fordeling fra 0 til 9. Vi vil også beregne middelværdi og varians.\n"
"## Tilfældige variabler og fordelinger\n",
"Lad os starte med at trække et udsnit på 30 værdier fra en uniform fordeling fra 0 til 9. Vi vil også beregne middelværdi og varians.\n"
]
},
{
@ -44,7 +44,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"For visuelt at estimere, hvor mange forskellige værdier der er i prøven, kan vi tegne **histogrammet**:\n"
"For visuelt at estimere, hvor mange forskellige værdier der er i prøven, kan vi plotte **histogrammet**:\n"
]
},
{
@ -63,7 +63,7 @@
"source": [
"## Analyse af rigtige data\n",
"\n",
"Gennemsnit og varians er meget vigtige, når man analyserer virkelige data. Lad os indlæse dataene om baseballspillere fra [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)\n"
"Middelværdi og varians er meget vigtige, når man analyserer data fra den virkelige verden. Lad os indlæse data om baseballspillere fra [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)\n"
]
},
{
@ -80,7 +80,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> Vi bruger en pakke kaldet [**Pandas**](https://pandas.pydata.org/) her til dataanalyse. Vi vil tale mere om Pandas og arbejde med data i Python senere i dette kursus.\n",
"> Vi bruger et bibliotek kaldet [**Pandas**](https://pandas.pydata.org/) her til dataanalyse. Vi vil tale mere om Pandas og arbejde med data i Python senere i dette kursus.\n",
"\n",
"Lad os beregne gennemsnitsværdier for alder, højde og vægt:\n"
]
@ -98,7 +98,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Lad os nu fokusere på højde og beregne standardafvigelse og varians:\n"
"Lad os nu fokusere på højde og beregne standardafvigelse og varians: \n"
]
},
{
@ -126,7 +126,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Ud over gennemsnittet giver det mening at se på medianværdien og kvartilerne. De kan visualiseres ved hjælp af et **box plot**:\n"
"Ud over gennemsnittet giver det mening at se på medianværdien og kvartilerne. De kan visualiseres ved hjælp af et **boksplot**:\n"
]
},
{
@ -136,7 +136,7 @@
"outputs": [],
"source": [
"plt.figure(figsize=(10,2))\n",
"plt.boxplot(df['Height'].ffill(), vert=False, showmeans=True)\n",
"plt.boxplot(df['Height'].ffill(), orientation='horizontal', showmeans=True)\n",
"plt.grid(color='gray', linestyle='dotted')\n",
"plt.tight_layout()\n",
"plt.show()"
@ -146,7 +146,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Vi kan også lave boksplot af delmængder af vores datasæt, for eksempel grupperet efter spillerrolle.\n"
"Vi kan også lave boksdiagrammer af delmængder af vores datasæt, for eksempel grupperet efter spillerrolle.\n"
]
},
{
@ -165,9 +165,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **Bemærk**: Dette diagram antyder, at højderne på første basmænd i gennemsnit er højere end højderne på anden basmænd. Senere vil vi lære, hvordan vi mere formelt kan teste denne hypotese, og hvordan vi kan demonstrere, at vores data er statistisk signifikante til at vise dette. \n",
"> **Bemærk**: Dette diagram antyder, at first basemen gennemsnitligt er højere end second basemen. Senere vil vi lære, hvordan vi kan teste denne hypotese mere formelt, og hvordan vi kan demonstrere, at vores data er statistisk signifikante til at vise dette. \n",
"\n",
"Alder, højde og vægt er alle kontinuerlige stokastiske variable. Hvad tror du deres fordeling er? En god måde at finde ud af det på er at tegne et histogram over værdierne: \n"
"Alder, højde og vægt er alle kontinuerlige stokastiske variable. Hvad tror du deres fordeling er? En god måde at finde ud af det på er at plotte histogrammet for værdierne: \n"
]
},
{
@ -190,7 +190,7 @@
"source": [
"## Normalfordeling\n",
"\n",
"Lad os lave en kunstig prøve af vægte, der følger en normalfordeling med samme gennemsnit og varians som vores rigtige data:\n"
"Lad os oprette en kunstig prøve af vægte, der følger en normalfordeling med samme gennemsnit og varians som vores faktiske data:\n"
]
},
{
@ -231,7 +231,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Da de fleste værdier i det virkelige liv er normalfordelte, bør vi ikke bruge en jævnt fordelt tilfældig talgenerator til at generere prøve-data. Her er, hvad der sker, hvis vi prøver at generere vægte med en jævn fordeling (genereret af `np.random.rand`):\n"
"Da de fleste værdier i virkeligheden er normalfordelte, bør vi ikke bruge en uniform tilfældig talgenerator til at generere prøvedata. Her er hvad der sker, hvis vi forsøger at generere vægte med en uniform fordeling (genereret af `np.random.rand`):\n"
]
},
{
@ -272,7 +272,7 @@
" return m, h\n",
"\n",
"for p in [0.85, 0.9, 0.95]:\n",
" m, h = mean_confidence_interval(df['Weight'].fillna(method='pad'),p)\n",
" m, h = mean_confidence_interval(df['Weight'].ffill(),p)\n",
" print(f\"p={p:.2f}, mean = {m:.2f} ± {h:.2f}\")"
]
},
@ -282,7 +282,7 @@
"source": [
"## Hypotesetestning\n",
"\n",
"Lad os udforske forskellige roller i vores baseballspillere-datasæt:\n"
"Lad os udforske forskellige roller i vores baseballspillere datasæt:\n"
]
},
{
@ -298,7 +298,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Lad os teste hypotesen om, at førstekædemænd er højere end andenkædemænd. Den nemmeste måde at gøre dette på er at teste konfidensintervallerne:\n"
"Lad os teste hypotesen om, at førstekastspillere er højere end andenkastspillere. Den nemmeste måde at gøre dette på er at teste konfidensintervallerne:\n"
]
},
{
@ -339,17 +339,17 @@
"metadata": {},
"source": [
"De to værdier, der returneres af funktionen `ttest_ind`, er:\n",
"* p-værdien kan betragtes som sandsynligheden for, at to fordelinger har samme middelværdi. I vores tilfælde er den meget lav, hvilket betyder, at der er stærke beviser for, at førstekommere er højere.\n",
"* t-værdien er den mellemste værdi af den normaliserede middelværdi-forskel, der bruges i t-testen, og den sammenlignes med en tærskelværdi for en given konfidensværdi.\n"
"* p-værdien kan betragtes som sandsynligheden for, at to fordelinger har samme gennemsnit. I vores tilfælde er den meget lav, hvilket betyder, at der er stærke beviser for, at førstekemmere er højere.\n",
"* t-værdien er den mellemliggende værdi af normaliseret gennemsnitsforskel, som bruges i t-testen, og den sammenlignes med en tærskelværdi for en given konfidensværdi.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Simulering af en normalfordeling med centralgrænseværdisætningen\n",
"## Simulering af en normalfordeling med centralgrænsesætningen\n",
"\n",
"Den pseudo-tilfældige generator i Python er designet til at give os en ensartet fordeling. Hvis vi ønsker at skabe en generator for normalfordeling, kan vi bruge centralgrænseværdisætningen. For at få en normalfordelt værdi vil vi blot beregne gennemsnittet af et prøveudtagning genereret med en uniform fordeling.\n"
"Den pseudo-tilfældige generator i Python er designet til at give os en jævn fordeling. Hvis vi ønsker at skabe en generator for normalfordeling, kan vi bruge centralgrænsesætningen. For at få en normalt fordelt værdi vil vi blot beregne gennemsnittet af et uniformt genereret sample.\n"
]
},
{
@ -373,9 +373,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Korrelation og Evil Baseball Corp\n",
"## Korrelation og Ond Baseball Corp\n",
"\n",
"Korrelation gør det muligt for os at finde relationer mellem datasekvenser. I vores legeteksempel, lad os forestille os, at der er en ond baseball-virksomhed, som betaler sine spillere efter deres højde - jo højere spilleren er, desto flere penge får han/hun. Antag, at der er en grundløn på $1000, og en ekstra bonus fra $0 til $100, afhængigt af højden. Vi vil tage de rigtige spillere fra MLB og beregne deres fiktive lønninger:\n"
"Korrelation tillader os at finde relationer mellem datasekvenser. I vores legeteksempel, lad os forestille os, at der er en ond baseballvirksomhed, som betaler sine spillere efter deres højde jo højere spilleren er, desto flere penge får han/hun. Antag at der er en grundløn på $1000, og en yderligere bonus fra $0 til $100, afhængigt af højden. Vi vil tage de rigtige spillere fra MLB og beregne deres imaginære lønninger:\n"
]
},
{
@ -384,7 +384,7 @@
"metadata": {},
"outputs": [],
"source": [
"heights = df['Height'].fillna(method='pad')\n",
"heights = df['Height'].ffill()\n",
"salaries = 1000+(heights-heights.min())/(heights.max()-heights.mean())*100\n",
"print(list(zip(heights, salaries))[:10])"
]
@ -393,7 +393,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Lad os nu beregne kovarians og korrelation af disse sekvenser. `np.cov` vil give os en såkaldt **kovariansmatrix**, som er en udvidelse af kovarians til flere variable. Elementet $M_{ij}$ i kovariansmatrixen $M$ er en korrelation mellem inputvariablerne $X_i$ og $X_j$, og de diagonale værdier $M_{ii}$ er variansen af $X_{i}$. Tilsvarende vil `np.corrcoef` give os **korrelationsmatrixen**.\n"
"Lad os nu beregne kovarians og korrelation af disse sekvenser. `np.cov` giver os en såkaldt **kovariansmatrix**, som er en udvidelse af kovarians til flere variable. Elementet $M_{ij}$ i kovariansmatricen $M$ er en korrelation mellem inputvariablerne $X_i$ og $X_j$, og diagonalværdierne $M_{ii}$ er variansen af $X_{i}$. Tilsvarende giver `np.corrcoef` os **korrelationsmatricen**.\n"
]
},
{
@ -411,7 +411,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"En korrelation lig med 1 betyder, at der er en stærk **lineær sammenhæng** mellem to variable. Vi kan visuelt se den lineære sammenhæng ved at plotte den ene værdi mod den anden:\n"
"En korrelation 1 betyder, at der er en stærk **lineær sammenhæng** mellem to variable. Vi kan visuelt se den lineære sammenhæng ved at plotte den ene værdi mod den anden:\n"
]
},
{
@ -430,7 +430,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Lad os se, hvad der sker, hvis relationen ikke er lineær. Antag, at vores virksomhed besluttede at skjule den åbenlyse lineære afhængighed mellem højder og lønninger og indførte en vis ikke-linearitet i formlen, såsom `sin`:\n"
"Lad os se, hvad der sker, hvis relationen ikke er lineær. Antag, at vores virksomhed besluttede at skjule den åbenlyse lineære afhængighed mellem højder og lønninger og indførte en form for ikke-linearitet i formlen, som for eksempel `sin`:\n"
]
},
{
@ -447,7 +447,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"I dette tilfælde er korrelationen en smule mindre, men den er stadig ret høj. Nu, for at gøre relationen endnu mindre åbenlys, kunne vi tilføje noget ekstra tilfældighed ved at lægge en tilfældig variabel til lønnen. Lad os se, hvad der sker:\n"
"I dette tilfælde er korrelationen lidt mindre, men den er stadig ret høj. Nu, for at gøre sammenhængen endnu mindre åbenlys, kunne vi tilføje lidt ekstra tilfældighed ved at lægge en tilfældig variabel til lønnen. Lad os se, hvad der sker:\n"
]
},
{
@ -476,9 +476,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> Kan du gætte, hvorfor prikkerne danner lodrette linjer som dette?\n",
"> Kan du gætte, hvorfor prikkerne danner lodrette linjer som disse?\n",
"\n",
"Vi har observeret korrelationen mellem et kunstigt konstrueret koncept som løn og den observerede variabel *højde*. Lad os også se, om de to observerede variable, såsom højde og vægt, også korrelerer:\n"
"Vi har observeret sammenhængen mellem et kunstigt konstrueret begreb som løn og den observerede variabel *højde*. Lad os også se, om de to observerede variable, såsom højde og vægt, også korrelerer:\n"
]
},
{
@ -494,11 +494,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Desværre fik vi ikke nogen resultater - kun nogle mærkelige `nan` værdier. Dette skyldes, at nogle af værdierne i vores serie er udefinerede, repræsenteret som `nan`, hvilket gør resultatet af operationen udefineret også. Ved at se på matricen kan vi se, at `Weight` er den problematiske kolonne, fordi selvkorrelationen mellem `Height` værdier er blevet beregnet.\n",
"Desværre fik vi ikke nogen resultater - kun nogle mærkelige `nan` værdier. Dette skyldes, at nogle af værdierne i vores serie er udefinerede, repræsenteret som `nan`, hvilket får resultatet af operationen til også at være udefineret. Ved at kigge på matricen kan vi se, at `Weight` er den problematiske kolonne, fordi selvkorrelation mellem `Height` værdierne er blevet beregnet.\n",
"\n",
"> Dette eksempel viser vigtigheden af **dataklargøring** og **rengøring**. Uden ordentlige data kan vi ikke beregne noget.\n",
"> Dette eksempel viser vigtigheden af **dataklargøring** og **rensning**. Uden korrekt data kan vi ikke beregne noget.\n",
"\n",
"Lad os bruge `fillna` metoden til at udfylde de manglende værdier og beregne korrelationen: \n"
"Lad os bruge `fillna`-metoden til at udfylde de manglende værdier og beregne korrelationen:\n"
]
},
{
@ -507,14 +507,14 @@
"metadata": {},
"outputs": [],
"source": [
"np.corrcoef(df['Height'].fillna(method='pad'), df['Weight'])"
"np.corrcoef(df['Height'].ffill(), df['Weight'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Der er faktisk en korrelation, men ikke en så stærk som i vores kunstige eksempel. Hvis vi ser på scatterplottet af den ene værdi mod den anden, ville sammenhængen være meget mindre åbenlys:\n"
"Der er faktisk en korrelation, men ikke så stærk som i vores kunstige eksempel. Hvis vi ser på scatterplottet af en værdi mod den anden, ville sammenhængen være meget mindre åbenlys:\n"
]
},
{
@ -537,7 +537,7 @@
"source": [
"## Konklusion\n",
"\n",
"I denne notesbog har vi lært, hvordan man udfører grundlæggende operationer på data for at beregne statistiske funktioner. Vi ved nu, hvordan man bruger et solidt apparat af matematik og statistik for at bevise nogle hypoteser, og hvordan man beregner konfidensintervaller for vilkårlige variable givet en datasample.\n"
"I denne notesbog har vi lært, hvordan man udfører grundlæggende operationer på data for at beregne statistiske funktioner. Vi ved nu, hvordan man bruger et solidt apparat af matematik og statistik til at bevise nogle hypoteser, og hvordan man beregner konfidensintervaller for vilkårlige variable givet en datasample. \n"
]
},
{
@ -568,12 +568,6 @@
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.6"
},
"coopTranslator": {
"original_hash": "0f899e3c5019f948e7c787b22f3b2304",
"translation_date": "2026-01-16T15:46:59+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "da"
}
},
"nbformat": 4,

@ -27,7 +27,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Vi kan indlæse de seneste data direkte fra GitHub ved at bruge `pd.read_csv`. Hvis data af en eller anden grund ikke er tilgængelige, kan du altid bruge kopien, der findes lokalt i mappen `data` - bare fjern kommenteringen af linjen nedenfor, der definerer `base_url`:\n"
"Vi kan hente de nyeste data direkte fra GitHub ved hjælp af `pd.read_csv`. Hvis dataene af en eller anden grund ikke er tilgængelige, kan du altid bruge kopien, der findes lokalt i `data`-mappen - fjern blot kommentaren på linjen nedenfor, der definerer `base_url`:\n"
]
},
{
@ -265,7 +265,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Vi kan se, at hver række i tabellen definerer antallet af smittede for hvert land og/eller provins, og kolonnerne svarer til datoer. Lignende tabeller kan indlæses for andre data, såsom antallet af raske og antallet af dødsfald.\n"
"Vi kan se, at hver række i tabellen definerer antallet af smittede for hvert land og/eller provins, og kolonner svarer til datoer. Lignende tabeller kan indlæses for andre data, såsom antal genoprettede og antal dødsfald.\n"
]
},
{
@ -282,9 +282,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Forstå dataene\n",
"## At forstå dataene\n",
"\n",
"Ud fra tabellen ovenfor er rollen for kolonnen province ikke klar. Lad os se på de forskellige værdier, der findes i kolonnen `Province/State`:\n"
"Fra tabellen ovenfor er rollen for kolonnen province ikke klar. Lad os se på de forskellige værdier, der findes i kolonnen `Province/State`:\n"
]
},
{
@ -322,7 +322,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Ud fra navnene kan vi udlede, at lande som Australien og Kina har en mere detaljeret opdeling efter provinser. Lad os kigge efter information om Kina for at se eksemplet:\n"
"Ud fra navnene kan vi udlede, at lande som Australien og Kina har en mere detaljeret opdeling efter provinser. Lad os lede efter oplysninger om Kina for at se eksemplet:\n"
]
},
{
@ -1321,9 +1321,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Forbehandling af data\n",
"## Forbehandling af dataene \n",
"\n",
"Vi er ikke interesserede i at opdele lande i mindre territorier, så vi vil først fjerne denne opdeling og tilføje oplysninger om alle territorier samlet for at få information for hele landet. Dette kan gøres ved hjælp af `groupby`:\n"
"Vi er ikke interesserede i at opdele lande i yderligere territorier, så derfor vil vi først fjerne denne opdeling og lægge information om alle territorier sammen for at få oplysninger for hele landet. Dette kan gøres ved hjælp af `groupby`:\n"
]
},
{
@ -1578,7 +1578,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Du kan se, at på grund af brugen af `groupby` er alle DataFrames nu indekseret efter Land/Region. Vi kan dermed få adgang til dataene for et specifikt land ved at bruge `.loc`:|\n"
"Du kan se, at på grund af brugen af `groupby` er alle DataFrames nu indekseret efter Land/Region. Vi kan derfor få adgang til dataene for et bestemt land ved at bruge `.loc`:|\n"
]
},
{
@ -1607,7 +1607,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **Bemærk** hvordan vi bruger `[3:]` til at fjerne de første tre elementer i en sekvens, der indeholder ikke-dato metadata (Provins/Stat og geolokationskolonnerne). Vi kan også fjerne de tre kolonner helt:\n"
"> **Bemærk** hvordan vi bruger `[3:]` til at fjerne de første tre elementer i en sekvens, der indeholder metadata uden dato (Provinsen/Stat og geolokationskolonnerne). Vi kan også fjerne disse tre kolonner helt:\n"
]
},
{
@ -1625,7 +1625,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Undersøgelse af data\n",
"## Undersøgelse af dataene\n",
"\n",
"Lad os nu skifte til at undersøge et specifikt land. Lad os oprette en ramme, der indeholder data om infektioner indekseret efter dato:\n"
]
@ -1793,7 +1793,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Lad os nu beregne antallet af nye inficerede personer hver dag. Dette vil give os mulighed for at se, hvor hurtigt pandemien skrider frem. Den nemmeste måde at gøre det på er at bruge `diff`:\n"
"Lad os nu beregne antallet af nye inficerede hver dag. Dette vil give os mulighed for at se, hvor hurtigt pandemien udvikler sig. Den nemmeste måde at gøre det på er at bruge `diff`:\n"
]
},
{
@ -1823,7 +1823,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Vi kan se store udsving i dataene. Lad os se nærmere på en af månederne:\n"
"Vi kan se store udsving i dataene. Lad os kigge nærmere på en af månederne:\n"
]
},
{
@ -1852,7 +1852,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Det ser tydeligt ud til, at der er ugentlige udsving i dataene. Fordi vi ønsker at kunne se tendenserne, giver det mening at udjævne kurven ved at beregne et glidende gennemsnit (dvs. for hver dag beregner vi gennemsnitsværdien af de foregående flere dage):\n"
"Det ser tydeligt ud til, at der er ugentlige svingninger i dataene. Fordi vi gerne vil kunne se tendenserne, giver det mening at udjævne kurven ved at beregne løbende gennemsnit (dvs. for hver dag beregner vi gennemsnitsværdien af de foregående flere dage):\n"
]
},
{
@ -1882,7 +1882,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"For at kunne sammenligne flere lande, vil vi måske tage landets befolkning i betragtning og sammenligne procentdelen af smittede individer i forhold til landets befolkning. For at få landets befolkning, lad os indlæse datasættet over lande:\n"
"For at kunne sammenligne flere lande, vil vi muligvis tage landets befolkning i betragtning og sammenligne procentdelen af inficerede individer i forhold til landets befolkning. For at få landets befolkning skal vi indlæse datasættet over lande:\n"
]
},
{
@ -2153,7 +2153,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Fordi dette datasæt indeholder information om både lande og provinser, skal vi være en smule opfindsomme for at få hele landets befolkning:\n"
"Fordi dette datasæt indeholder information om både lande og provinser, skal vi være lidt snedige for at få befolkningstallet for hele landet: \n"
]
},
{
@ -2261,14 +2261,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## Beregning af $R_t$\n",
"\n",
"For at se, hvor smitsom sygdommen er, ser vi på **det grundlæggende reproduktionstal** $R_0$, som angiver, hvor mange personer en smittet person vil smitte yderligere. Når $R_0$ er mere end 1, er epidemien sandsynligvis ved at sprede sig.\n",
"For at se, hvor smitsom sygdommen er, ser vi på **det basale reproduktionstal** $R_0$, som angiver antallet af personer, som en inficeret person vil smitte yderligere. Når $R_0$ er mere end 1, vil epidemien sandsynligvis sprede sig.\n",
"\n",
"$R_0$ er en egenskab ved selve sygdommen, og tager ikke højde for nogle beskyttelsesforanstaltninger, som folk kan tage for at bremse pandemien. Under pandemiforløbet kan vi estimere reproduktionstallet $R_t$ på et givent tidspunkt $t$. Det er vist, at dette tal omtrent kan estimeres ved at tage et vindue på 8 dage og beregne $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"hvor $I_t$ er antallet af nyligt smittede individer på dag $t$.\n",
"$R_0$ er en egenskab ved selve sygdommen og tager ikke højde for nogle beskyttende foranstaltninger, som folk kan tage for at bremse pandemien. Under pandemiens forløb kan vi estimere reproduktionstallet $R_t$ på et givet tidspunkt $t$. Det er vist, at dette tal groft kan estimeres ved at tage et vindue på 8 dage og beregne $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"hvor $I_t$ er antallet af nyligt inficerede individer på dag $t$.\n",
"\n",
"Lad os beregne $R_t$ for vores pandemidata. For at gøre dette vil vi tage et rullende vindue af 8 `ninfected` værdier og anvende funktionen til at beregne forholdet ovenfor:\n"
"Lad os beregne $R_t$ for vores pandemidata. For at gøre dette vil vi tage et glidende vindue på 8 `ninfected`-værdier og anvende funktionen til at beregne ovenstående forhold:\n"
]
},
{
@ -2298,9 +2299,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Du kan se, at der er nogle huller i grafen. De kan skyldes enten `NaN`, hvis `inf`-værdier er til stede i datasættet. `inf` kan skyldes division med 0, og `NaN` kan indikere manglende data eller ingen tilgængelige data til at beregne resultatet (som i helt i starten af vores frame, hvor det glidende vindue med bredde 8 endnu ikke er tilgængeligt). For at gøre grafen pænere, skal vi udfylde disse værdier ved hjælp af `replace` og `fillna` funktionen.\n",
"Du kan se, at der er nogle huller i grafen. De kan skyldes enten `NaN`, hvis `inf` værdier er til stede i datasættet. `inf` kan opstå ved division med 0, og `NaN` kan indikere manglende data, eller at der ikke er data tilgængeligt til at beregne resultatet (som i den helt tidlige del af vores frame, hvor et rullende vindue med bredden 8 endnu ikke er tilgængeligt). For at gøre grafen pænere, skal vi udfylde disse værdier ved hjælp af `replace` og `fillna` funktionerne.\n",
"\n",
"Lad os se nærmere på begyndelsen af pandemien. Vi vil også begrænse værdierne på y-aksen til kun at vise værdier under 6, for bedre at kunne se, og tegne en vandret linje ved 1.\n"
"Lad os se nærmere på starten af pandemien. Vi vil også begrænse y-akse værdierne til kun at vise værdier under 6, for at se bedre, og tegne en vandret linje ved 1.\n"
]
},
{
@ -2331,7 +2332,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"En anden interessant indikator for pandemien er **den afledte**, eller **den daglige forskel** i nye tilfælde. Den giver os mulighed for klart at se, hvornår pandemien stiger eller falder.\n"
"En anden interessant indikator for pandemien er **differentialet**, eller **daglig forskel** i nye tilfælde. Det giver os mulighed for klart at se, hvornår pandemien stiger eller falder. \n"
]
},
{
@ -2360,7 +2361,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"I betragtning af at der er mange udsving i data forårsaget af rapportering, giver det mening at udjævne kurven ved at køre glidende gennemsnit for at få det overordnede billede. Lad os igen fokusere på de første måneder af pandemien:\n"
"Givet det faktum, at der er mange udsving i data forårsaget af rapportering, giver det mening at udjævne kurven ved at køre glidende gennemsnit for at få det samlede billede. Lad os igen fokusere på de første måneder af pandemien:\n"
]
},
{
@ -2390,14 +2391,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## Udfordring\n",
"\n",
"Nu er det tid til, at du leger mere med koden og dataene! Her er nogle forslag, du kan eksperimentere med:\n",
"Nu er det tid til, at du kan lege mere med koden og dataene! Her er nogle forslag, du kan eksperimentere med:\n",
"* Se spredningen af pandemien i forskellige lande.\n",
"* Plot $R_t$-grafer for flere lande på én graf til sammenligning, eller lav flere grafer ved siden af hinanden.\n",
"* Se, hvordan antallet af dødsfald og helbredelser korrelerer med antallet af smittede tilfælde.\n",
"* Prøv at finde ud af, hvor længe en typisk sygdom varer ved visuelt at korrelere infektionstallet og dødstallet og lede efter nogle anomalier. Du kan have brug for at se på forskellige lande for at finde det ud af.\n",
"* Beregn dødelighedsraten, og hvordan den ændrer sig over tid. Du vil muligvis tage højde for sygdommens varighed i dage for at forskyde en tidsserie, inden du laver beregninger.\n"
"* Plot $R_t$ grafer for flere lande på ét plot til sammenligning, eller lav flere plots side om side\n",
"* Se hvordan antallet af dødsfald og bedring korrelerer med antallet af smittede tilfælde.\n",
"* Prøv at finde ud af, hvor lang tid en typisk sygdom varer ved visuelt at korrelere infektionsrate og dødsrate og kigge efter nogle anomalier. Du kan være nødt til at se på forskellige lande for at finde det ud af.\n",
"* Beregn dødelighedsraten og hvordan den ændrer sig over tid. Du vil måske tage sygdommens varighed i dage i betragtning for at flytte en tidsserie, før du laver beregninger\n"
]
},
{
@ -2406,7 +2408,7 @@
"source": [
"## Referencer\n",
"\n",
"Du kan se på yderligere studier af COVID-epidemiens spredning i følgende publikationer:\n",
"Du kan se nærmere på yderligere studier af COVID-epidemiens spredning i følgende publikationer:\n",
"* [Sliding SIR Model for Rt Estimation during COVID Pandemic](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/), blogindlæg af [Dmitry Soshnikov](http://soshnikov.com)\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [Estimation of Time-Dependent Reproduction Number for Global COVID-19 Outbreak](https://www.preprints.org/manuscript/202006.0289/v1). *Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"* [Kode til ovenstående artikel på GitHub](https://github.com/shwars/SlidingSIR)\n"
@ -2423,7 +2425,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Ansvarsfraskrivelse**:\nDette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets modersmål bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der skyldes brugen af denne oversættelse.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Ansvarsfraskrivelse**:\nDette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],

@ -1,13 +1,13 @@
# Dangerous Liaisons datavisualiseringsprojekt
# Dangerous Liaisons data visualiseringsprojekt
For at komme i gang skal du sikre dig, at du har NPM og Node installeret på din maskine. Installer afhængighederne (npm install), og kør derefter projektet lokalt (npm run serve):
For at komme i gang skal du sikre dig, at du har NPM og Node **>=20.0.0** kørende på din maskine. Installer afhængighederne (npm install) og kør derefter projektet lokalt (npm run serve):
## Projektopsætning
```
npm install
```
### Kompilerer og genindlæser automatisk til udvikling
### Kompilerer og hot-loader til udvikling
```
npm run serve
```
@ -17,15 +17,17 @@ npm run serve
npm run build
```
### Linter og retter filer
### Linter og reparerer filer
```
npm run lint
```
### Tilpas konfiguration
Se [Konfigurationsreference](https://cli.vuejs.org/config/).
Se [Configuration Reference](https://cli.vuejs.org/config/).
---
**Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,6 +1,6 @@
# Dangerous Liaisons data visualiseringsprojekt
# Dangerous Liaisons datavisualiseringsprojekt
For at komme i gang skal du sikre dig, at du har NPM og Node kørende på din maskine. Installer afhængighederne (npm install) og kør derefter projektet lokalt (npm run serve):
For at komme i gang skal du sikre, at du har NPM og Node **>=20.0.0** kørende på din maskine. Installer afhængighederne (npm install) og kør derefter projektet lokalt (npm run serve):
## Projektopsætning
```
@ -12,7 +12,7 @@ npm install
npm run serve
```
### Kompilerer og minimerer til produktion
### Kompilerer og minificerer til produktion
```
npm run build
```
@ -27,5 +27,7 @@ Se [Configuration Reference](https://cli.vuejs.org/config/).
---
**Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi er ikke ansvarlige for eventuelle misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -12,8 +12,8 @@
"language_code": "fi"
},
"1-Introduction/01-defining-data-science/notebook.ipynb": {
"original_hash": "8f5eb7b3f7cc89e6d98fb32e1de65dec",
"translation_date": "2026-02-27T09:49:48+00:00",
"original_hash": "8eb07e3d899aaba7ea9c9ec9b5aa2850",
"translation_date": "2026-07-17T23:04:17+00:00",
"source_file": "1-Introduction/01-defining-data-science/notebook.ipynb",
"language_code": "fi"
},
@ -42,8 +42,8 @@
"language_code": "fi"
},
"1-Introduction/03-defining-data/README.md": {
"original_hash": "12339119c0165da569a93ddba05f9339",
"translation_date": "2025-09-05T22:49:52+00:00",
"original_hash": "7217c6f9eb464d4ff4bae6c036ab53cb",
"translation_date": "2026-07-17T23:06:58+00:00",
"source_file": "1-Introduction/03-defining-data/README.md",
"language_code": "fi"
},
@ -65,6 +65,12 @@
"source_file": "1-Introduction/04-stats-and-probability/assignment.md",
"language_code": "fi"
},
"1-Introduction/04-stats-and-probability/notebook.ipynb": {
"original_hash": "0c77e104b29c723287bf11b773fcc5d5",
"translation_date": "2026-07-17T23:05:29+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "fi"
},
"1-Introduction/README.md": {
"original_hash": "696a8474a01054281704cbfb09148949",
"translation_date": "2025-08-26T21:14:17+00:00",
@ -108,8 +114,8 @@
"language_code": "fi"
},
"2-Working-With-Data/07-python/notebook-covidspread.ipynb": {
"original_hash": "6335cccba01dc6ad7b15aba7a8c73f38",
"translation_date": "2026-02-27T09:51:12+00:00",
"original_hash": "da97f98781c7cd271063f605fe8d71d0",
"translation_date": "2026-07-17T23:03:41+00:00",
"source_file": "2-Working-With-Data/07-python/notebook-covidspread.ipynb",
"language_code": "fi"
},
@ -192,14 +198,14 @@
"language_code": "fi"
},
"3-Data-Visualization/13-meaningful-visualizations/solution/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-26T22:47:24+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T23:07:06+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/solution/README.md",
"language_code": "fi"
},
"3-Data-Visualization/13-meaningful-visualizations/starter/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-26T22:46:47+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T23:07:02+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/starter/README.md",
"language_code": "fi"
},

File diff suppressed because one or more lines are too long

@ -1,75 +1,79 @@
# Määritellään dataa
# Datan Määrittely
|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/03-DefiningData.png)|
|:---:|
|Datan määrittely - _Sketchnote by [@nitya](https://twitter.com/nitya)_ |
Data on faktoja, tietoa, havaintoja ja mittauksia, joita käytetään löytöjen tekemiseen ja perusteltujen päätösten tukemiseen. Datapiste on yksittäinen datayksikkö datasetissä, joka on kokoelma datapisteitä. Datasetit voivat olla eri muodoissa ja rakenteissa, ja ne perustuvat yleensä lähteeseensä eli siihen, mistä data on peräisin. Esimerkiksi yrityksen kuukausittaiset tulot voivat olla taulukkolaskennassa, mutta älykellon tuntikohtaiset syketiedot voivat olla [JSON](https://stackoverflow.com/a/383699)-muodossa. On yleistä, että data-analyytikot työskentelevät erilaisten datatyyppien kanssa samassa datasetissä.
Data on faktoja, tietoa, havaintoja ja mittauksia, joita käytetään löytöjen tekemiseen ja perusteltujen päätösten tukemiseen. Datan piste on yksittäinen datapiste tietoaineistossa, joka on datapisteiden kokoelma. Tietoaineistot voivat olla eri muodoissa ja rakenteissa, ja ne perustuvat yleensä lähteeseensä eli mistä data on peräisin. Esimerkiksi yrityksen kuukausitulo saattaa olla taulukkolaskentaohjelmassa, mutta älykellon tuntikohtainen syketieto voi olla [JSON](https://stackoverflow.com/a/383699) -muodossa. On yleistä, että datatieteilijät työskentelevät erilaisten datatyyppien kanssa samassa tietoaineistossa.
Tämä oppitunti keskittyy datan tunnistamiseen ja luokitteluun sen ominaisuuksien ja lähteiden perusteella.
Tämä oppitunti keskittyy datan tunnistamiseen ja luokitteluun sen ominaisuuksien ja lähteiden mukaan.
## [Esiluennon kysely](https://ff-quizzes.netlify.app/en/ds/quiz/4)
## Miten dataa kuvataan
## [Ennakkotehtävä](https://ff-quizzes.netlify.app/en/ds/quiz/4)
## Kuinka dataa kuvataan
### Raakadata
Raakadata on dataa, joka on peräisin lähteestään alkuperäisessä muodossaan eikä sitä ole analysoitu tai järjestetty. Jotta datasetistä saataisiin selkoa, se täytyy järjestää muotoon, joka on ymmärrettävä ihmisille sekä teknologialle, jota he voivat käyttää sen jatkoanalysointiin. Datasetin rakenne kuvaa, miten se on järjestetty, ja se voidaan luokitella rakenteelliseksi, rakenteettomaksi ja puolirakenteelliseksi. Nämä rakenteet vaihtelevat lähteen mukaan, mutta ne kuuluvat lopulta näihin kolmeen kategoriaan.
### Raakadatan
Raadata on dataa, joka on tullut lähteestään alkuperäisessä muodossaan eikä sitä ole analysoitu tai järjestetty. Jotta tiedostoista voisi saada merkityksen, se on järjestettävä ihmisten ja teknologian ymmärtämään muotoon, jota voidaan analysoida edelleen. Tietoaineiston rakenne kuvaa, miten se on järjestetty, ja se voidaan luokitella rakenteelliseksi, rakenteettomaksi tai puolistrukturoiduksi. Näiden rakennetyyppien muoto vaihtelee lähteen mukaan, mutta ne sopivat yleensä näihin kolmeen luokkaan.
### Kvantitatiivinen data
Kvantitatiivinen data on datasetin numeerisia havaintoja, joita voidaan yleensä analysoida, mitata ja käyttää matemaattisesti. Esimerkkejä kvantitatiivisesta datasta ovat: maan väkiluku, henkilön pituus tai yrityksen neljännesvuosittaiset tulot. Lisäanalyysin avulla kvantitatiivista dataa voitaisiin käyttää esimerkiksi ilmanlaatuindeksin (AQI) kausitrendien löytämiseen tai arvioimaan ruuhka-ajan liikenteen todennäköisyyttä tyypillisenä työpäivänä.
### Kvantitatiivinen Data
Kvantitatiivinen data koostuu numeerisista havainnoista tietoaineistossa, joita voidaan tyypillisesti analysoida, mitata ja käyttää matemaattisesti. Esimerkkejä kvantitatiivisesta datasta ovat: maan väestö, henkilön pituus tai yrityksen neljännesvuositulokset. Jatkoanalyysin avulla kvantitatiivista dataa voidaan käyttää esimerkiksi ilmanlaatuindeksin (AQI) kausivaihteluiden tutkimiseen tai ruuhka-aikojen todennäköisyyden arvioimiseen tyypillisenä arkipäivänä.
### Kvalitatiivinen data
Kvalitatiivinen data, joka tunnetaan myös kategorisena datana, on dataa, jota ei voida mitata objektiivisesti kuten kvantitatiivista dataa. Se on yleensä subjektiivista dataa, joka kuvaa jonkin asian laatua, kuten tuotetta tai prosessia. Joskus kvalitatiivinen data on numeerista, mutta sitä ei yleensä käytetä matemaattisesti, kuten puhelinnumerot tai aikaleimat. Esimerkkejä kvalitatiivisesta datasta ovat: videokommentit, auton merkki ja malli tai lähimpien ystäviesi suosikkiväri. Kvalitatiivista dataa voitaisiin käyttää esimerkiksi ymmärtämään, mitkä tuotteet kuluttajat pitävät parhaimpina tai tunnistamaan suosittuja avainsanoja työhakemusten ansioluetteloista.
### Kvalitatiivinen Data
Kvalitatiivinen data, joka tunnetaan myös kategorisena datana, on dataa, jota ei voida mitata objektiivisesti kuten kvantitatiivista dataa. Se koostuu yleensä erilaisista subjektiivisista tiedoista, jotka kuvaavat jonkin asian laatua, kuten tuotetta tai prosessia. Joissakin tapauksissa kvalitatiivinen data on numeerista, mutta sitä ei normaalisti käytetä matemaattisesti, kuten puhelinnumerot tai aikaleimat. Esimerkkejä kvalitatiivisesta datasta ovat: videokommentit, auton merkki ja malli tai lähimpien ystäviesi lempiväri. Kvalitatiivista dataa voidaan käyttää esimerkiksi selvittämään, mitkä tuotteet kuluttajat pitävät parhaimpina tai tunnistamaan suosittuja hakusanoja työhakemuksissa.
### Rakenteellinen data
Rakenteellinen data on dataa, joka on järjestetty riveihin ja sarakkeisiin, joissa jokaisella rivillä on sama sarakejoukko. Sarakkeet edustavat tietyn tyyppistä arvoa ja ne tunnistetaan nimellä, joka kuvaa, mitä arvo edustaa, kun taas rivit sisältävät varsinaiset arvot. Sarakkeilla on usein erityiset säännöt tai rajoitukset arvoille, jotta arvot edustavat saraketta tarkasti. Esimerkiksi kuvittele asiakastaulukko, jossa jokaisella rivillä täytyy olla puhelinnumero, eikä puhelinnumerot koskaan sisällä aakkosmerkkejä. Puhelinnumerosarakkeeseen voidaan soveltaa sääntöjä, jotka varmistavat, että se ei ole koskaan tyhjä ja sisältää vain numeroita.
### Rakenteellinen Data
Rakenteellinen data on dataa, joka on järjestetty riveihin ja sarakkeisiin siten, että jokaisella rivillä on sama sarjallinen sarakkeita. Sarakkeet edustavat tietyn tyyppistä arvoa ja niillä on nimi, joka kuvaa, mitä arvo tarkoittaa, kun taas rivit sisältävät varsinaiset arvot. Sarakkeilla on usein tiettyjen arvojen säännöt tai rajoitukset, jotka varmistavat, että arvot kuvaavat saraketta tarkasti. Kuvittele esimerkiksi asiakastietojen taulukko, jossa jokaisella rivillä on oltava puhelinnumero, eikä puhelinnumerot saa sisältää kirjaimia. Puhelinnumerosarakkeeseen voi olla sovellettuna sääntöjä, jotka varmistavat, että se ei ole koskaan tyhjä ja sisältää vain numeroita.
Rakenteellisen datan etuna on, että se voidaan järjestää tavalla, joka mahdollistaa sen yhdistämisen toiseen rakenteelliseen dataan. Koska data on suunniteltu järjestettäväksi tietyllä tavalla, sen rakenteen muuttaminen voi kuitenkin vaatia paljon vaivaa. Esimerkiksi jos asiakastaulukkoon lisätään sähköpostisarakke, joka ei voi olla tyhjä, täytyy miettiä, miten nämä arvot lisätään olemassa oleviin asiakasriveihin datasetissä.
Rakenteellisen datan etuna on, että sitä voidaan järjestää siten, että sitä voidaan yhdistää muuhun rakenteelliseen dataan. Koska data on suunniteltu tiettyyn rakenteeseen, rakenteen muuttaminen voi kuitenkin vaatia paljon työtä. Esimerkiksi sähköpostisarakkeen lisääminen asiakastietojen taulukkoon, joka ei saa olla tyhjä, tarkoittaa, että sinun on päätettävä, miten lisäät nämä arvot olemassa oleviin asiakasriveihin datassa.
Esimerkkejä rakenteellisesta datasta: taulukkolaskennat, relaatiotietokannat, puhelinnumerot, tiliotteet
Esimerkkejä rakenteellisesta datasta: taulukkolaskelmat, relaatiotietokannat, puhelinnumerot, pankkitilitiedot
### Rakenteeton data
Rakenteeton data ei yleensä sovi riveihin tai sarakkeisiin eikä sisällä muotoa tai sääntöjä, joita noudattaa. Koska rakenteettomalla datalla on vähemmän rajoituksia rakenteelleen, uuden tiedon lisääminen on helpompaa verrattuna rakenteelliseen datasettiin. Jos sensori, joka tallentaa ilmanpaineen dataa kahden minuutin välein, saa päivityksen, joka mahdollistaa lämpötilan mittaamisen ja tallentamisen, se ei vaadi olemassa olevan datan muuttamista, jos se on rakenteetonta. Tämä voi kuitenkin tehdä tällaisen datan analysoinnista tai tutkimisesta aikaa vievää. Esimerkiksi tutkija, joka haluaa löytää keskimääräisen lämpötilan edelliseltä kuukaudelta sensorin datasta, mutta huomaa, että sensori on tallentanut "e"-kirjaimen joihinkin tietoihinsa merkiksi siitä, että se oli rikki, mikä tarkoittaa, että data on puutteellista.
### Rakenteeton Data
Rakenteetonta dataa ei tyypillisesti voi luokitella riveihin tai sarakkeisiin, eikä sillä ole selkeää muotoa tai sääntöjä. Koska rakenteettomalla datalla on vähemmän rakenteellisia rajoitteita, uuden tiedon lisääminen on helpompaa verrattuna rakenteelliseen aineistoon. Jos anturi, joka mittaa barometripainetta kahden minuutin välein, saa päivityksen, joka antaa sen mitata ja tallentaa myös lämpötilaa, tämä ei vaadi olemassa olevan datan muuttamista, jos se on rakenteetonta. Tämä voi kuitenkin pidentää tämän tyyppisen datan analysointi- tai tutkimusaikaa. Esimerkiksi tutkija, joka haluaa löytää anturidatan perusteella keskimääräisen lämpötilan edelliseltä kuukaudelta, voi huomata, että anturi on merkinnyt osaan tallennettua dataa kirjain "e" osoittamaan, että se oli rikki, ei normaalia lukua, jolloin data on epätäydellistä.
Esimerkkejä rakenteettomasta datasta: tekstiedostot, tekstiviestit, videotiedostot
Esimerkkejä rakenteettomasta datasta: tekstitiedostot, tekstiviestit, videotiedostot
### Puolirakenteellinen data
Puolirakenteellisellä datalla on ominaisuuksia, jotka tekevät siitä rakenteellisen ja rakenteettoman datan yhdistelmän. Se ei yleensä noudata rivien ja sarakkeiden muotoa, mutta se on järjestetty tavalla, joka katsotaan rakenteelliseksi ja voi noudattaa kiinteää muotoa tai sääntöjä. Rakenne vaihtelee lähteiden välillä, kuten hyvin määritellystä hierarkiasta joustavampaan muotoon, joka mahdollistaa uuden tiedon helpon integroinnin. Metadata ovat indikaattoreita, jotka auttavat päättämään, miten data on järjestetty ja tallennettu, ja niillä on erilaisia nimiä datatyypistä riippuen. Joitakin yleisiä metadatan nimiä ovat tagit, elementit, entiteetit ja attribuutit. Esimerkiksi tyypillinen sähköpostiviesti sisältää aiheen, tekstin ja vastaanottajien joukon, ja se voidaan järjestää lähettäjän tai lähetysajan mukaan.
### Puolistrukturoitu Data
Puolistrukturoitu data sisältää piirteitä, jotka yhdistävät rakenteellisen ja rakenteettoman datan ominaisuuksia. Se ei tyypillisesti noudata sarakkeiden ja rivien muotoa, mutta on järjestetty rakenteellisesti ja saattaa noudattaa kiinteää muotoa tai sääntöjä. Rakenne vaihtelee lähteittäin, kuten tarkkaan määritelty hierarkia tai joustavampi rakenne, joka mahdollistaa uuden tiedon helpon integroinnin. Metadata ovat indikaattoreita, jotka auttavat päättämään, miten data on järjestetty ja tallennettu, ja niitä kutsutaan eri nimillä datan tyypistä riippuen. Yleisiä metadatan nimiä ovat tagit, elementit, entiteetit ja attribuutit. Esimerkiksi tyypillisellä sähköpostiviestillä on otsikko, runko ja vastaanottajalista, ja sitä voidaan järjestää lähettäjän tai lähetysajan mukaan.
Esimerkkejä puolirakenteellisestä datasta: HTML, CSV-tiedostot, JavaScript Object Notation (JSON)
Esimerkkejä puolistrukturoidusta datasta: HTML, CSV-tiedostot, JavaScript Object Notation (JSON)
## Datan lähteet
## Datan Lähteet
Datalähde on alkuperäinen sijainti, jossa data on luotu tai missä se "elää", ja se vaihtelee sen mukaan, miten ja milloin se on kerätty. Käyttäjien tuottama data tunnetaan primääridatana, kun taas sekundääridata tulee lähteestä, joka on kerännyt dataa yleiseen käyttöön. Esimerkiksi ryhmä tutkijoita, jotka keräävät havaintoja sademetsässä, katsottaisiin primääridataksi, ja jos he päättävät jakaa sen muiden tutkijoiden kanssa, se katsottaisiin sekundääridataksi niille, jotka käyttävät sitä.
Datalähde on paikka, jossa data on alun perin generoitu tai jossa se "asuu", ja se vaihtelee sen mukaan, miten ja milloin data on kerätty. Käyttäjän tai käyttäjien generoima data tunnetaan ensisijaisena datana, kun taas toissijainen data tulee lähteestä, joka on kerännyt dataa yleistä käyttöä varten. Esimerkiksi ryhmä tutkijoita, jotka keräävät havaintoja sademetsästä, edustaa ensisijaista dataa, ja jos he päättävät jakaa sen muiden tutkijoiden kanssa, se on toissijaista niille, jotka käyttävät sitä.
Tietokannat ovat yleinen lähde ja ne käyttävät tietokannan hallintajärjestelmää datan isännöintiin ja ylläpitoon, jossa käyttäjät käyttävät komentoja, joita kutsutaan kyselyiksi, datan tutkimiseen. Tiedostot datalähteinä voivat olla ääni-, kuva- ja videotiedostoja sekä taulukkolaskentoja, kuten Excel. Internetlähteet ovat yleinen sijainti datan isännöintiin, jossa tietokantoja ja tiedostoja voidaan löytää. Sovellusohjelmointirajapinnat, jotka tunnetaan myös nimellä API:t, mahdollistavat ohjelmoijien luoda tapoja jakaa dataa ulkoisille käyttäjille internetin kautta, kun taas verkkosivujen kaavinta (web scraping) poimii dataa verkkosivulta. [Oppitunnit datan kanssa työskentelystä](../../../../../../../../../2-Working-With-Data) keskittyvät siihen, miten käyttää erilaisia datalähteitä.
Tietokannat ovat yleinen lähde, ja ne käyttävät tietokannan hallintajärjestelmää datan ylläpitoon, jossa käyttäjät käyttävät kyselyjä tutkiakseen dataa. Tiedostojen datalähteet voivat olla ääni-, kuva- ja videotiedostoja sekä taulukkolaskentatiedostoja, kuten Excel. Internet-lähteet ovat yleinen paikka datan ylläpitoon, jossa sekä tietokannat että tiedostot löytyvät. Sovellusrajapinnat eli API:t antavat kehittäjille keinon jakaa dataa ulkoisille käyttäjille internetin kautta, kun taas verkkosivujen tietojen poiminta eli web scraping kerää dataa verkkosivulta. [Työskentely datan kanssa](../../../../../../../../../2-Working-With-Data) -oppitunnit keskittyvät eri datalähteiden käyttöön.
## Yhteenveto
Tässä oppitunnissa opimme:
Tässä oppitunnissa olemme oppineet:
- Mitä data on
- Miten dataa kuvataan
- Miten dataa luokitellaan ja kategorisoidaan
- Mistä dataa voi löytää
- Miten data kuvataan
- Miten data luokitellaan ja luokitellaan
- Mistä dataa löytyy
## 🚀 Haaste
Kaggle on erinomainen lähde avoimille dataseteille. Käytä [dataset-hakutyökalua](https://www.kaggle.com/datasets) löytääksesi mielenkiintoisia datasettejä ja luokittele 3-5 datasettiä seuraavien kriteerien mukaan:
Kaggle on erinomainen avoimen datan lähde. Käytä [dataset search tool](https://www.kaggle.com/datasets) -työkalua löytääksesi mielenkiintoisia datakokoelmia ja luokittele 3-5 dataset:iä seuraavien kriteerien mukaan:
- Onko data kvantitatiivista vai kvalitatiivista?
- Onko data rakenteellista, rakenteetonta vai puolirakenteellista?
- Onko data rakenteellista, rakenteetonta vai puolistrukturoitua?
## [Luennon jälkeinen kysely](https://ff-quizzes.netlify.app/en/ds/quiz/5)
## [Luentotehtävä](https://ff-quizzes.netlify.app/en/ds/quiz/5)
## Kertaus ja itseopiskelu
- Tämä Microsoft Learn -yksikkö, nimeltään [Classify your Data](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data), sisältää yksityiskohtaisen erittelyn rakenteellisesta, puolirakenteellisesta ja rakenteettomasta datasta.
## Kertausta ja Itseopiskelua
- Tämä Microsoft Learn -yksikkö, nimeltään [Identify data formats](https://learn.microsoft.com/en-us/training/modules/explore-core-data-concepts/2-data-formats?pivots=text), tarjoaa yksityiskohtaisen erittelyn rakenteellisesta, puolistrukturoidusta ja rakenteettomasta datasta.
## Tehtävä
[Datasettien luokittelu](assignment.md)
[Datasetien luokittelu](assignment.md)
---
**Vastuuvapauslauseke**:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, huomioithan, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäisellä kielellä tulee pitää ensisijaisena lähteenä. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskääntämistä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinkäsityksistä tai virhetulkinnoista.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Vastuuvapauslauseke**:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, otathan huomioon, että automaattiset käännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäiskielellä on virallinen lähde. Tärkeissä asioissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -4,8 +4,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Johdanto todennäköisyyksiin ja tilastotieteeseen\n",
"Tässä muistikirjassa leikitellään joillakin aiemmin käsitellyillä käsitteillä. Monet todennäköisyyden ja tilastotieteen käsitteet ovat hyvin edustettuina suurissa Pythonin tietojenkäsittelyyn tarkoitetuissa kirjastoissa, kuten `numpy` ja `pandas`.\n"
"# Johdatus todennäköisyyteen ja tilastotieteeseen\n",
"Tässä muistikirjassa leikitellään joillakin aiemmin käsitellyillä käsitteillä. Monet todennäköisyyden ja tilastotieteen käsitteet ovat hyvin edustettuina tärkeissä datankäsittelykirjastoissa Pythonissa, kuten `numpy` ja `pandas`.\n"
]
},
{
@ -25,7 +25,7 @@
"metadata": {},
"source": [
"## Satunnaismuuttujat ja jakaumat\n",
"Aloitetaan piirtämällä otos, jossa on 30 arvoa yhtenäisestä jakaumasta välillä 09. Laskemme myös keskiarvon ja varianssin.\n"
"Aloitetaan piirtämällä otos, jossa on 30 arvoa yhdenmukaisesta jakaumasta väliltä 09. Laskemme myös keskiarvon ja varianssin.\n"
]
},
{
@ -44,7 +44,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Arvioidaksemme visuaalisesti, kuinka monta erilaista arvoa otoksessa on, voimme piirtää **histogrammin**:\n"
"Visuaalisen arvion tekemiseksi siitä, kuinka monta erilaista arvoa näytteessä on, voimme piirtää **histogrammin**:\n"
]
},
{
@ -63,7 +63,7 @@
"source": [
"## Todellisen datan analysointi\n",
"\n",
"Keskiarvo ja varianssi ovat erittäin tärkeitä todellisen elämän datan analysoinnissa. Ladataan baseball-pelaajia koskeva data osoitteesta [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)\n"
"Keskiarvo ja varianssi ovat erittäin tärkeitä todellisen maailman datan analysoinnissa. Ladataan tiedot baseball-pelaajista lähteestä [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)\n"
]
},
{
@ -80,7 +80,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> Käytämme täällä tietojenkäsittelyyn pakettia nimeltä [**Pandas**](https://pandas.pydata.org/). Puhumme lisää Pandasista ja datan käsittelystä Pythonilla myöhemmin tässä kurssissa.\n",
"> Käytämme tässä datan analysointiin pakettia nimeltä [**Pandas**](https://pandas.pydata.org/). Keskustelemme myöhemmin tässä kurssissa enemmän Pandasista ja datan käsittelystä Pythonissa.\n",
"\n",
"Lasketaan keskiarvot iälle, pituudelle ja painolle:\n"
]
@ -98,7 +98,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Keskitytään nyt pituuteen ja lasketaan keskipoikkeama ja varianssi:\n"
"Keskitytään nyt pituuteen ja lasketaan keskihajonta ja varianssi: \n"
]
},
{
@ -126,7 +126,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Keskiarvon lisäksi on järkevää tarkastella mediaaniarvoa ja kvartiileja. Ne voidaan visualisoida käyttämällä **laatikko-plotkia**:\n"
"Keskimääräisen lisäksi on järkevää tarkastella mediaaniarvoa ja kvartiileja. Ne voidaan visualisoida **box plotilla**:\n"
]
},
{
@ -136,7 +136,7 @@
"outputs": [],
"source": [
"plt.figure(figsize=(10,2))\n",
"plt.boxplot(df['Height'].ffill(), vert=False, showmeans=True)\n",
"plt.boxplot(df['Height'].ffill(), orientation='horizontal', showmeans=True)\n",
"plt.grid(color='gray', linestyle='dotted')\n",
"plt.tight_layout()\n",
"plt.show()"
@ -146,7 +146,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Voimme myös tehdä laatikkokaavioita datamme osajoukoista, esimerkiksi pelaajarooleittain ryhmiteltynä.\n"
"Voimme myös tehdä laatikkokaavioita datasetin alajoukoista, esimerkiksi pelaajan roolin mukaan ryhmiteltynä.\n"
]
},
{
@ -165,9 +165,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **Huomautus**: Tämä kaavio antaa ymmärtää, että keskimäärin ensimmäisen pesän pelaajien pituudet ovat pidempiä kuin toisen pesän pelaajien pituudet. Myöhemmin opimme, miten voimme testata tätä hypoteesia muodollisemmin ja miten voimme osoittaa, että datamme on tilastollisesti merkittävää tämän näyttämiseksi.\n",
"> **Huom**: Tämä kaavio viittaa siihen, että keskimäärin ykköspelureiden pituudet ovat pidempiä kuin kakkospelureiden pituudet. Myöhemmin opimme, miten voimme testata tätä hypoteesia muodollisemmin ja miten voimme osoittaa, että aineistomme on tilastollisesti merkittävä tämän osoittamiseksi. \n",
"\n",
"Ikä, pituus ja paino ovat kaikki jatkuvia satunnaismuuttujia. Mitä luulet niiden jakauman olevan? Hyvä tapa selvittää se on piirtää arvojen histogrammi:\n"
"Ikä, pituus ja paino ovat kaikki jatkuvia satunnaismuuttujia. Mitä luulet niiden jakauman olevan? Hyvä tapa selvittää se on piirtää arvojen histogrammi: \n"
]
},
{
@ -188,9 +188,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Normaali jakauma\n",
"## Normaalijakauma\n",
"\n",
"Luodaan keinotekoinen painonäyte, joka noudattaa normaalia jakaumaa samalla keskiarvolla ja varianssilla kuin todelliset tietomme:\n"
"Luodaan keinotekoinen painojen otos, joka noudattaa normaalijakaumaa, jolla on sama keskiarvo ja varianssi kuin todellisessa aineistossamme:\n"
]
},
{
@ -231,7 +231,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Koska useimmat arvot todellisessa elämässä ovat normaalijakautuneita, emme pitäisi käyttää tasaista satunnaislukugeneraattoria näytedata tuottamiseen. Tässä mitä tapahtuu, jos yritämme generoida painoja tasaiseen jakaumaan perustuen (generoitu `np.random.rand`):\n"
"Koska suurin osa arvoista todellisessa elämässä on normaalijakauman mukaisia, emme saisi käyttää tasaisesti jakautunutta satunnaislukugeneraattoria näytteen datan luomiseen. Tässä on mitä tapahtuu, jos yritämme luoda painoja tasaisen jakauman mukaan (luotu `np.random.rand`-funktiolla):\n"
]
},
{
@ -253,7 +253,7 @@
"source": [
"## Luottamusvälit\n",
"\n",
"Lasketaan nyt luottamusvälit baseball-pelaajien painoille ja pituuksille. Käytämme koodia [tästä stackoverflow-keskustelusta](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data):\n"
"Lasketaan nyt luottamusvälit baseball-pelaajien painolle ja pituudelle. Käytämme koodia [tästä stackoverflow-keskustelusta](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data):\n"
]
},
{
@ -272,7 +272,7 @@
" return m, h\n",
"\n",
"for p in [0.85, 0.9, 0.95]:\n",
" m, h = mean_confidence_interval(df['Weight'].fillna(method='pad'),p)\n",
" m, h = mean_confidence_interval(df['Weight'].ffill(),p)\n",
" print(f\"p={p:.2f}, mean = {m:.2f} ± {h:.2f}\")"
]
},
@ -282,7 +282,7 @@
"source": [
"## Hypoteesin testaus\n",
"\n",
"Tutkitaan eri rooleja baseball-pelaajien tietojoukossamme:\n"
"Tutkitaan erilaisia rooleja baseball-pelaajien tietojoukossamme:\n"
]
},
{
@ -298,7 +298,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Testataan hypoteesia, että ykköspesänpelaajat ovat pidempiä kuin kakkospelin pelaajat. Yksinkertaisin tapa tehdä tämä on testata luottamusvälejä:\n"
"Testataan hypoteesi, että ensimmäisen pohjan pelaajat ovat pidempiä kuin toisen pohjan pelaajat. Yksinkertaisin tapa tehdä tämä on testata luottamusvälit:\n"
]
},
{
@ -317,9 +317,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Voimme nähdä, että jaksot eivät mene päällekkäin.\n",
"Näemme, että väleillä ei ole päällekkäisyyttä.\n",
"\n",
"Tilastollisesti oikein tapa todistaa hypoteesi on käyttää **Studentin t-testiä**:\n"
"Tilastollisesti oikeampi tapa todistaa hypoteesi on käyttää **Studentin t-testiä**:\n"
]
},
{
@ -338,9 +338,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"`ttest_ind`-funktion palauttamat kaksi arvoa ovat:\n",
"* p-arvoa voidaan pitää todennäköisyytenä, että kahdella jakaumalla on sama keskiarvo. Tapauksessamme se on hyvin pieni, mikä tarkoittaa, että on vahvaa näyttöä siitä, että ykköspelaajat ovat pidempiä.\n",
"* t-arvo on normalisoidun keskiarvon erotuksen välivaihe, jota käytetään t-testissä, ja sitä verrataan tietylle luottamusarvolle asetettuun kynnysarvoon.\n"
"`ttest_ind`-funktion palauttamia kahta arvoa ovat:\n",
"* p-arvoa voidaan pitää todennäköisyytenä sille, että kahdella jakaumalla on sama keskiarvo. Meidän tapauksessamme se on hyvin pieni, mikä tarkoittaa, että on vahvoja todisteita siitä, että ensimmäiset pesäpalloilijat ovat pidempiä.\n",
"* t-arvo on normalisoidun keskiarvoeron väliarvo, jota käytetään t-testissä, ja sitä verrataan kynnysarvoon tietyn luottamustason perusteella.\n"
]
},
{
@ -349,7 +349,7 @@
"source": [
"## Normaalijakauman simulointi keskeisen raja-arvolauseen avulla\n",
"\n",
"Pythonin satunnaislukugeneraattori on suunniteltu antamaan meille tasajakauma. Jos haluamme luoda normaalijakaumalle generaattorin, voimme käyttää keskeistä raja-arvolausetta. Saadaksemme normaalisti jakautuneen arvon laskemme vain tasajakautuneesta otoksesta keskiarvon.\n"
"Pythonin pseudorandom-generaattori on suunniteltu tuottamaan yhtenäisen jakauman. Jos haluamme luoda normaalijakaumaa tuottavan generaattorin, voimme käyttää keskeistä raja-arvolausetta. Saadaksemme normaalisti jakautuneen arvon laskemme yksinkertaisesti yhtenäisestä näytteestä keskiarvon.\n"
]
},
{
@ -375,7 +375,7 @@
"source": [
"## Korrelaatio ja Evil Baseball Corp\n",
"\n",
"Korrelaatio antaa meille mahdollisuuden löytää yhteyksiä datan sarjojen välillä. Leikkiesimerkissämme kuvitellaan, että on olemassa ilkeä baseball-yritys, joka maksaa pelaajilleen heidän pituutensa mukaan - mitä pidempi pelaaja on, sitä enemmän hän saa rahaa. Oletetaan, että peruspalkka on 1000 dollaria, ja lisäksi maksetaan bonus 0100 dollaria pituuden perusteella. Otamme reaaliset MLB:n pelaajat ja laskemme heidän kuvitteelliset palkkansa:\n"
"Korrelaatio antaa meille mahdollisuuden löytää yhteyksiä tietojonojen välillä. Esimerkissämme kuvitellaan, että on olemassa paha baseball-yhtiö, joka maksaa pelaajilleen korkeuden mukaan mitä pidempi pelaaja on, sitä enemmän rahaa hän saa. Oletetaan, että peruspalkka on 1000 dollaria, ja lisäksi maksetaan 0100 dollarin bonus korkeuden mukaan. Otamme todellisia MLB-pelaajia ja laskemme heidän kuvitteelliset palkkansa:\n"
]
},
{
@ -384,7 +384,7 @@
"metadata": {},
"outputs": [],
"source": [
"heights = df['Height'].fillna(method='pad')\n",
"heights = df['Height'].ffill()\n",
"salaries = 1000+(heights-heights.min())/(heights.max()-heights.mean())*100\n",
"print(list(zip(heights, salaries))[:10])"
]
@ -393,7 +393,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Lasketaan nyt näiden sekvenssien kovarianssi ja korrelaatio. `np.cov` antaa meille niin sanotun **kovarianssimatriisin**, joka on laajennus kovarianssille useille muuttujille. Kovarianssimatriisin $M$ alkio $M_{ij}$ on korrelaatio syötemuuttujien $X_i$ ja $X_j$ välillä, ja diagonaaliarvot $M_{ii}$ ovat $X_{i}$ variansseja. Vastaavasti `np.corrcoef` antaa meille **korrelaatiomatriisin**.\n"
"Lasketaan nyt näiden jaksollisten tietojen kovarianssi ja korrelaatio. `np.cov` antaa meille niin sanotun **kovarianssimatriisin**, joka on kovarianssin yleistys useille muuttujille. Kovarianssimatriisin $M$ alkio $M_{ij}$ on korrelaatio syötemuuttujien $X_i$ ja $X_j$ välillä, ja diagonaalialkiot $M_{ii}$ ovat $X_i$:n varianssi. Samoin `np.corrcoef` antaa meille **korrelaatiomatriisin**.\n"
]
},
{
@ -411,7 +411,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Korrelaatio, joka on yhtä suuri kuin 1, tarkoittaa, että kahden muuttujan välillä on vahva **lineaarinen yhteys**. Voimme havaita lineaarisen yhteyden visuaalisesti piirtämällä yhden arvon toista vastaan:\n"
"Korrelaatio, joka on yhtä kuin 1, tarkoittaa, että kahden muuttujan välillä on vahva **lineaarinen yhteys**. Voimme nähdä lineaarisen yhteyden visuaalisesti piirtämällä toisen arvon toista vastaan:\n"
]
},
{
@ -430,7 +430,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Katsotaanpa, mitä tapahtuu, jos suhde ei ole lineaarinen. Oletetaan, että yrityksemme päätti piilottaa ilmeisen lineaarisen riippuvuuden pituuden ja palkkojen välillä ja lisäsi kaavaan jonkin ei-lineaarisuuden, kuten `sin`:in:\n"
"Katsotaanpa mitä tapahtuu, jos suhde ei ole lineaarinen. Oletetaan, että yrityksemme päätti piilottaa ilmeisen lineaarisen riippuvuuden korkeuden ja palkkojen välillä ja lisäsi kaavaan jonkin ei-lineaarisuuden, kuten `sin`:\n"
]
},
{
@ -447,7 +447,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Tässä tapauksessa korrelaatio on hieman pienempi, mutta se on silti melko korkea. Nyt, tehdäksemme suhteesta vielä vähemmän ilmeisen, saatamme haluta lisätä hieman ylimääräistä satunnaisuutta lisäämällä palkan arvoon satunnaisen muuttujan. Katsotaan mitä tapahtuu:\n"
"Tässä tapauksessa korrelaatio on hieman pienempi, mutta se on silti melko korkea. Nyt, tehdäksemme suhteesta vielä vähemmän ilmeisen, saatamme haluta lisätä hieman ylimääräistä satunnaisuutta lisäämällä satunnainen muuttuja palkkaan. Katsotaanpa, mitä tapahtuu:\n"
]
},
{
@ -478,7 +478,7 @@
"source": [
"> Arvaatko, miksi pisteet asettuvat pystysuoriksi viivoiksi näin?\n",
"\n",
"Olemme havainneet korrelaation keinotekoisesti suunnitellun käsitteen, kuten palkan, ja havaintomuutujan *pituus* välillä. Tarkastellaan myös, korreloivatko kaksi havaittua muuttujaa, kuten pituus ja paino:\n"
"Olemme havainneet korrelaation keinotekoisesti luodun käsitteen, kuten palkan, ja havainnoidun muuttujan *pituuden* välillä. Tarkastellaanpa myös, korreloivatko kaksi havaittua muuttujaa, kuten pituus ja paino:\n"
]
},
{
@ -494,9 +494,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Valitettavasti emme saaneet mitään tuloksia vain joitakin outoja `nan`-arvoja. Tämä johtuu siitä, että joitakin sarjan arvoja ei ole määritelty, ja ne esitetään arvolla `nan`, mikä aiheuttaa myös operaation tuloksen olevan määrittelemätön. Katsomalla matriisia voimme nähdä, että `Weight` on ongelmallinen sarake, koska korkeusarvojen itsekorrelaatio on laskettu.\n",
"Valitettavasti emme saaneet tuloksia vain joitakin outoja `nan`-arvoja. Tämä johtuu siitä, että osa sarjamme arvoista on määrittelemättömiä, esitettynä `nan`:na, mikä aiheuttaa sen, että myös operaation tulos on määrittelemätön. Katsomalla matriisia voimme nähdä, että ongelmallinen sarake on `Weight`, koska `Height`-arvojen itsekorrelaatio on laskettu.\n",
"\n",
"> Tämä esimerkki osoittaa **aineiston valmistelun** ja **puhdistuksen** tärkeyden. Ilman asianmukaista aineistoa emme voi laskea mitään.\n",
"> Tämä esimerkki osoittaa **datan valmistelun** ja **puhdistuksen** merkityksen. Ilman asianmukaista dataa emme voi laskea mitään.\n",
"\n",
"Käytetään `fillna`-metodia täyttämään puuttuvat arvot ja lasketaan korrelaatio:\n"
]
@ -507,14 +507,14 @@
"metadata": {},
"outputs": [],
"source": [
"np.corrcoef(df['Height'].fillna(method='pad'), df['Weight'])"
"np.corrcoef(df['Height'].ffill(), df['Weight'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Todellakin on olemassa korrelaatio, mutta ei niin vahva kuin meidän keinotekoisessa esimerkissä. Itse asiassa, jos katsomme hajontakaaviota, jossa toinen arvo asetetaan toisen vastaan, suhde olisi paljon vähemmän ilmeinen:\n"
"Yhteys on todellakin olemassa, mutta ei yhtä vahva kuin keinotekoisessa esimerkissämme. Jos kuitenkin tarkastelemme hajontakuvioita arvon toista vastaan, suhde olisi paljon vähemmän ilmeinen:\n"
]
},
{
@ -537,14 +537,14 @@
"source": [
"## Yhteenveto\n",
"\n",
"Tässä muistikirjassa olemme oppineet suorittamaan peruslaskutoimituksia datalla tilastollisten funktioiden laskemiseksi. Tiedämme nyt, kuinka käyttää vankkaa matemaattisten ja tilastollisten menetelmien kokonaisuutta hypoteesien todistamiseen sekä kuinka laskea luottamusvälit mielivaltaisille muuttujille annetun datan otoksen perusteella.\n"
"Tässä muistikirjassa olemme oppineet suorittamaan perusoperaatioita datalle tilastollisten funktioiden laskemiseksi. Tiedämme nyt, miten käyttää vankkaa matematiikan ja tilastotieteen työkalupakkia hypoteesien todistamiseen sekä kuinka laskea luottamusvälit mielivaltaisille muuttujille annetun datanäytteen perusteella. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Vastuuvapauslauseke**:\nTämä asiakirja on käännetty tekoälypohjaisella käännöspalvelulla [Co-op Translator](https://github.com/Azure/co-op-translator). Pyrimme tarkkuuteen, mutta ole hyvä ja huomioi, että konekäännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäiskielellä tulee pitää virallisena lähteenä. Tärkeitä tietoja varten suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai virhetulkinnoista.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Vastuuvapauslauseke**:\nTämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, otathan huomioon, että automaattiset käännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäiskielellä on virallinen lähde. Tärkeissä asioissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -568,12 +568,6 @@
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.6"
},
"coopTranslator": {
"original_hash": "0f899e3c5019f948e7c787b22f3b2304",
"translation_date": "2026-01-16T15:49:16+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "fi"
}
},
"nbformat": 4,

@ -6,9 +6,9 @@
"source": [
"# COVID-19-pandemian arviointi\n",
"\n",
"## Datan lataaminen\n",
"## Tietojen lataaminen\n",
"\n",
"Käytämme tietoja COVID-19-tartunnan saaneista henkilöistä, joita tarjoaa [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) [Johns Hopkinsin yliopistosta](https://jhu.edu/). Datasetti on saatavilla [tässä GitHub-repositoriossa](https://github.com/CSSEGISandData/COVID-19).\n"
"Käytämme COVID-19-tartunnan saaneiden henkilöiden tietoja, joita tarjoaa [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) [Johns Hopkins Universityssä](https://jhu.edu/). Aineisto on saatavilla [tässä GitHub-repositorissa](https://github.com/CSSEGISandData/COVID-19).\n"
]
},
{
@ -27,7 +27,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Voimme ladata viimeisimmät tiedot suoraan GitHubista käyttäen `pd.read_csv` -komentoa. Jos tiedot eivät jostain syystä ole saatavilla, voit aina käyttää paikallista kopiota, joka löytyy `data`-kansiosta - poista vain alla olevan `base_url`-rivin kommenttimerkinnät:\n"
"Voimme ladata uusimmat tiedot suoraan GitHubista käyttäen `pd.read_csv`:ää. Jos jostain syystä tiedot eivät ole saatavilla, voit aina käyttää paikallista kopiota `data`-kansiossa poista vain kommenttimerkki alla olevalta riviltä, joka määrittelee `base_url`:n:\n"
]
},
{
@ -48,7 +48,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Ladataan nyt tartunnan saaneiden henkilöiden tiedot ja katsotaan, miltä tiedot näyttävät:\n"
"Ladataan nyt tiedot tartunnan saaneista henkilöistä ja katsotaan, miltä tiedot näyttävät:\n"
]
},
{
@ -265,7 +265,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Voimme nähdä, että taulukon jokainen rivi määrittää tartunnan saaneiden henkilöiden määrän kullekin maalle ja/tai alueelle, ja sarakkeet vastaavat päivämääriä. Samankaltaisia taulukoita voidaan ladata muihin tietoihin, kuten parantuneiden ja kuolleiden määrään.\n"
"Voimme nähdä, että taulukon jokainen rivi määrittelee tartunnan saaneiden henkilöiden määrän jokaiselle maalle ja/tai maakunnalle, ja sarakkeet vastaavat päivämääriä. Vastaavia taulukoita voidaan ladata myös muille tiedoille, kuten toipuneiden ja kuolleiden määrille.\n"
]
},
{
@ -282,9 +282,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tietojen ymmärtäminen\n",
"## Datan ymmärtäminen\n",
"\n",
"Yllä olevasta taulukosta ei käy ilmi, mikä rooli maakunta-sarakkeella on. Katsotaanpa erilaisia arvoja, jotka esiintyvät sarakkeessa `Province/State`:\n"
"Edellisestä taulukosta ei käy selvästi ilmi maakuntasarjan rooli. Katsotaanpa eri arvot, jotka ovat läsnä sarakkeessa `Province/State`:\n"
]
},
{
@ -322,7 +322,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Nimistä voimme päätellä, että maat kuten Australia ja Kiina on jaettu yksityiskohtaisemmin maakuntiin. Katsotaanpa tietoa Kiinasta nähdäksesi esimerkin:\n"
"Nimen perusteella voimme päätellä, että maat kuten Australia ja Kiina on jaettu yksityiskohtaisemmin provinsseittain. Etsitään tietoa Kiinasta nähdäksesi esimerkin:\n"
]
},
{
@ -1321,9 +1321,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Datan esikäsittely\n",
"## Datan esikäsittely \n",
"\n",
"Emme ole kiinnostuneita jakamaan maita pienempiin alueisiin, joten poistamme ensin tämän ja lisäämme tiedot kaikista alueista yhteen saadaksemme tiedot koko maasta. Tämä voidaan tehdä käyttämällä `groupby`:\n"
"Emme ole kiinnostuneita jakamaan maita edelleen alueisiin, joten poistamme ensin tämän ja yhdistämme tiedot kaikista alueista saadaksemme tietoa koko maasta. Tämä voidaan tehdä käyttämällä `groupby`-toimintoa:\n"
]
},
{
@ -1578,7 +1578,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Voit nähdä, että `groupby`-toiminnon käytön vuoksi kaikki DataFrame:t on nyt indeksoitu maan/alueen mukaan. Voimme siis käyttää tietoja tietylle maalle käyttämällä `.loc`:ia:|\n"
"Voit nähdä, että `groupby`-funktion käytön vuoksi kaikki DataFrame-objektit on nyt indeksoitu maan/alueen mukaan. Voimme siis käyttää tietoja tietylle maalle käyttämällä `.loc`:|\n"
]
},
{
@ -1607,7 +1607,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **Huom** kuinka käytämme `[3:]` poistaaksemme sekvenssin ensimmäiset kolme elementtiä, jotka sisältävät ei-päivämäärään liittyvät metatiedot (maakunta/osavaltio ja geopaikkatietojen sarakkeet). Voimme myös pudottaa nämä kolme saraketta kokonaan:\n"
"> **Huomaa**, miten käytämme `[3:]` poistaaksemme ensimmäiset kolme elementtiä jaksosta, jotka sisältävät ei-päivämäärämetadataa (maakunta/osavaltio ja geolokaatiokolumnit). Voimme myös pudottaa nuo kolme saraketta kokonaan:\n"
]
},
{
@ -1625,9 +1625,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tietojen tutkiminen\n",
"## Datan tutkiminen\n",
"\n",
"Vaihdamme nyt tarkastelemaan tiettyä maata. Luodaan kehys, joka sisältää päivämäärän mukaan indeksoidut tartuntatiedot:\n"
"Tarkastellaan nyt yhtä tiettyä maata. Luodaan kehys, joka sisältää tartuntatiedot päivämäärän mukaan indeksoituna:\n"
]
},
{
@ -1793,7 +1793,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Lasketaan nyt päivittäin tartunnan saaneiden uusiutuneet määrät. Tämä mahdollistaa pandemian etenemisnopeuden tarkastelun. Helpoin tapa tehdä tämä on käyttää `diff`:ia:\n"
"Lasketaanpa nyt päivittäin tartunnan saaneiden uusien henkilöiden määrä. Tämä antaa meille mahdollisuuden nähdä, kuinka nopeasti pandemia etenee. Helpoin tapa tehdä tämä on käyttää `diff`-komentoa:\n"
]
},
{
@ -1823,7 +1823,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Näemme suuria vaihteluita tiedoissa. Tarkastellaanpa tarkemmin yhtä kuukautta:\n"
"Voimme nähdä suuria vaihteluita tiedoissa. Katsotaanpa tarkemmin yhtä kuukautta:\n"
]
},
{
@ -1852,7 +1852,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Näyttää selvästi siltä, että tiedoissa on viikoittaisia vaihteluita. Koska haluamme pystyä näkemään trendit, on järkevää tasoittaa käyrää laskemalla liukuva keskiarvo (eli jokaiselle päivälle laskemme keskimääräisen arvon edelliseltä useammalta päivältä):\n"
"On selvää, että tiedoissa esiintyy viikoittaisia vaihteluita. Koska haluamme nähdä trendit, on järkevää tasoittaa käyrää laskemalla liukuvaa keskiarvoa (eli jokaiselle päivälle lasketaan edellisten useiden päivien keskiarvo):\n"
]
},
{
@ -1882,7 +1882,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Jotta voisimme vertailla useita maita, saatamme haluta ottaa huomioon maan väestön ja verrata tartunnan saaneiden henkilöiden prosenttiosuutta maan väestöstä. Jotta saisimme maan väestön tiedot, ladataan maiden tietoaineisto:\n"
"Jotta voisimme vertailla useita maita, saatamme haluta ottaa huomioon maan väestön ja verrata tartunnan saaneiden osuutta suhteessa maan väestöön. Jotta saisimme maan väestön tiedot, ladataan maiden tietoaineisto:\n"
]
},
{
@ -2153,7 +2153,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Koska tämä tietoaineisto sisältää tietoja sekä maista että provinsseista, saadaksemme koko maan väestön meidän täytyy olla hieman kekseliäämpiä:\n"
"Koska tämä tietojoukko sisältää tietoa sekä maista että provinsseista, saadaksemme koko maan väestön, meidän pitää olla hieman älykkäämpiä: \n"
]
},
{
@ -2261,14 +2261,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## Lasketaan $R_t$\n",
"\n",
"Sairaudesta tarttuvuuden määrittämiseksi tarkastelemme **peruslisääntymisluvun** $R_0$ arvoa, joka kertoo kuinka monen ihmisen tartunnan saanut henkilö tartuttaa eteenpäin. Kun $R_0$ on yli 1, epidemian leviämisen voidaan olettaa jatkuvan.\n",
"Näkääksemme, kuinka tarttuva tauti on, tarkastelemme **peruslisääntymislukua** $R_0$, joka osoittaa, kuinka monen ihmisen yksi tartunnan saanut henkilö tartuttaa eteenpäin. Kun $R_0$ on yli 1, epidemia leviää todennäköisesti.\n",
"\n",
"$R_0$ on sairauden itsensä ominaisuus, eikä ota huomioon joitain suojaustoimia, joita ihmiset voivat tehdä pandemian hidastamiseksi. Pandemian edetessä voimme arvioida lisääntymisluvun $R_t$ jollakin ajan hetkellä $t$. On osoitettu, että tätä lukua voidaan arvioida likimain ottamalla 8 päivän ikkuna ja laskemalla $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"missä $I_t$ on uusien tartunnan saaneiden määrä päivänä $t$.\n",
"$R_0$ on taudin oma ominaisuus, eikä ota huomioon joitakin suojatoimia, joita ihmiset saattavat tehdä pandemian hidastamiseksi. Pandemian edetessä voimme arvioida lisääntymisluvun $R_t$ milloin tahansa ajanhetkellä $t$. On osoitettu, että tämä luku voidaan karkeasti arvioida ottamalla 8 päivän jakso ja laskemalla $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"missä $I_t$ on päivänä $t$ uusien tartunnan saaneiden määrä.\n",
"\n",
"Lasketaan $R_t$ pandemiadataamme varten. Tätä varten otamme liukuvaa 8 arvon ikkuna `ninfected`-arvoista, ja sovellamme yllä olevaa suhteen laskemiseen tarkoitettua funktiota:\n"
"Lasketaan $R_t$ meidän pandemiatiedoistamme. Tätä varten otamme liukuvan ikkunan, jossa on 8 `ninfected`-arvoa, ja sovellamme funktiota yllä mainitun suhdeluvun laskemiseksi:\n"
]
},
{
@ -2298,9 +2299,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Näet, että kaaviossa on joitakin aukkoja. Ne voivat johtua joko `NaN`:sta, jos datasetissä esiintyy `inf`-arvoja. `inf` voi johtua jakamisesta nollalla, ja `NaN` voi tarkoittaa puuttuvia tietoja tai sitä, ettei tulosta voida laskea (kuten aivan kehyksen alussa, jossa leijuva ikkuna leveydeltä 8 ei ole vielä käytettävissä). Jotta kaaviosta tulisi siistimpi, meidän täytyy täyttää nuo arvot käyttämällä `replace`- ja `fillna`-funktioita.\n",
"Näet, että kaaviossa on joitakin aukkoja. Ne voivat johtua joko `NaN`-arvoista tai siitä, että `inf`-arvoja esiintyy aineistossa. `inf` voi johtua nollalla jakamisesta, ja `NaN` voi osoittaa puuttuvia tietoja tai sitä, ettei tuloksen laskentaan ole saatavilla tietoja (kuten kehyksen aivan alussa, jossa leveys 8:n liukuvaa ikkunaa ei vielä ole saatavilla). Tehdäksemme kaaviosta siistimmän, meidän täytyy täyttää nämä arvot käyttämällä `replace`- ja `fillna`-funktioita.\n",
"\n",
"Katsotaanpa tarkemmin pandemian alkua. Rajoitamme myös y-akselin arvot näyttämään vain alle 6 olevat arvot, jotta nähdään paremmin, ja piirrämme vaakaviivan kohdalle 1.\n"
"Tarkastellaanpa vielä pandemian alkua. Rajoitamme myös y-akselin arvot näyttämään vain alle 6 olevat arvot, jotta näemme paremmin, ja piirretään vaakasuora viiva kohtaan 1.\n"
]
},
{
@ -2331,7 +2332,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Toinen mielenkiintoinen indikaattori pandemiasta on **derivaatta**, eli **päivittäinen muutos** uusissa tapauksissa. Sen avulla voimme selvästi nähdä, milloin pandemia kasvaa tai vähenee.\n"
"Toinen mielenkiintoinen pandemian indikaattori on **derivaatta**, eli **päivittäinen muutos** uusissa tapauksissa. Sen avulla voimme selvästi nähdä, milloin pandemia kiihtyy tai hiipuu. \n"
]
},
{
@ -2360,7 +2361,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Ottaen huomioon, että raportoinnista johtuen tiedoissa on paljon vaihtelua, on järkevää tasoittaa käyrää käyttämällä liukuvaa keskiarvoa saadakseen kokonaiskuvan. Keskitytään jälleen pandemian ensimmäisiin kuukausiin:\n"
"Ottaen huomioon, että raportoinnin aiheuttamia vaihteluita datassa on paljon, on järkevää tasoittaa käyrää ajamalla liukuvaa keskiarvoa saadakseen kokonaiskuvan. Keskitytään jälleen pandemian ensimmäisiin kuukausiin:\n"
]
},
{
@ -2390,14 +2391,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## Haaste\n",
"\n",
"Nyt on aika leikkiä lisää koodin ja datan kanssa! Tässä on muutamia ehdotuksia, joita voit kokeilla:\n",
"* Tarkastele pandemian leviämistä eri maissa.\n",
"* Piirrä $R_t$ -käyriä useille maille yhdelle kuvaajalle vertailua varten, tai tee useita kuvaajia vierekkäin.\n",
"* Katso, miten kuolemien ja toipuneiden määrä korreloi tartuntatapojen määrän kanssa.\n",
"* Yritä selvittää, kuinka pitkä tyypillinen tauti kestää visuaalisesti korreloimalla tartuntanopeutta ja kuolleisuusastetta sekä etsimällä poikkeamia. Saattaa olla tarpeen tarkastella eri maita tämän selvittämiseksi.\n",
"* Laske kuolleisuusaste ja miten se muuttuu ajan myötä. Saatat haluta huomioida taudin kesto päivinä siirtämällä yhtä aikasarjaa ennen laskelmien tekemistä.\n"
"Nyt on aika pelata enemmän koodin ja datan kanssa! Tässä muutamia ehdotuksia, joita voit kokeilla:\n",
"* Katso pandemian leviämistä eri maissa.\n",
"* Piirrä $R_t$-kuvaajat useille maille samaan kuvaajaan vertailua varten, tai tee useita kuvaajia vierekkäin\n",
"* Katso, miten kuolemien ja toipumisten määrä korreloi tartunnan saaneiden tapausten määrän kanssa.\n",
"* Yritä selvittää, kuinka kauan tyypillinen tauti kestää visuaalisesti korreloimalla tartuntanopeus ja kuolleisuus ja etsimällä poikkeamia. Saatat joutua tarkastelemaan eri maita löytääksesi sen.\n",
"* Laske kuolleisuusprosentti ja miten se muuttuu ajan myötä. Saatat haluta ottaa huomioon taudin keston päivinä siirtääksesi yhtä aikasarjaa ennen laskelmien tekemistä\n"
]
},
{
@ -2407,9 +2409,9 @@
"## Viitteet\n",
"\n",
"Voit tutustua COVID-epidemian leviämisen lisätutkimuksiin seuraavissa julkaisuissa:\n",
"* [Liukuva SIR-malli Rt-arvion tekemiseen COVID-pandemian aikana](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/), blogikirjoitus tekijältä [Dmitry Soshnikov](http://soshnikov.com)\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [Aikariippuvaisen lisääntymisluvun arviointi globaalissa COVID-19 -epidemiassa](https://www.preprints.org/manuscript/202006.0289/v1). *Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"* [Edellä mainittua julkaisua vastaava koodi GitHubissa](https://github.com/shwars/SlidingSIR)\n"
"* [Liukuva SIR-malli Rt:n arviointiin COVID-pandemian aikana](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/), blogikirjoitus kirjoittanut [Dmitry Soshnikov](http://soshnikov.com)\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [Aika-riippuvan jälkeläisluvun arviointi maailmanlaajuisessa COVID-19 -epidemian puhkeamisessa](https://www.preprints.org/manuscript/202006.0289/v1). *Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"* [Yllä mainitun tutkimuksen koodi GitHubissa](https://github.com/shwars/SlidingSIR)\n"
]
},
{
@ -2423,7 +2425,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Vastuuvapauslauseke**: \nTämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Pyrimme tarkkuuteen, mutta huomioithan, että automaattiset käännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäisellä kielellä tulee pitää ensisijaisena ja luotettavana lähteenä. Tärkeissä asioissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä johtuvista väärinymmärryksistä tai harhatulkinnoista.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Vastuuvapauslauseke**:\nTämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, otathan huomioon, että automaattiset käännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäiskielellä on virallinen lähde. Tärkeissä asioissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],

@ -1,23 +1,23 @@
# Dangerous Liaisons -datavisualisointiprojekti
Aloittaaksesi varmista, että sinulla on NPM ja Node asennettuna koneellesi. Asenna riippuvuudet (npm install) ja aja projekti paikallisesti (npm run serve):
Aloittaaksesi sinun tulee varmistaa, että NPM ja Node **>=20.0.0** ovat käytössä koneellasi. Asenna riippuvuudet (npm install) ja aja sitten projekti paikallisesti (npm run serve):
## Projektin asennus
```
npm install
```
### Kääntää ja päivittää automaattisesti kehitystä varten
### Kääntää ja latautuu uudelleen kehitystä varten
```
npm run serve
```
### Kääntää ja minimoi tuotantokäyttöä varten
### Kääntää ja pienentää tuotantoa varten
```
npm run build
```
### Tarkistaa ja korjaa tiedostot
### Linttaa ja korjaa tiedostot
```
npm run lint
```
@ -27,5 +27,7 @@ Katso [Configuration Reference](https://cli.vuejs.org/config/).
---
**Vastuuvapauslauseke**:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, huomioithan, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäisellä kielellä tulee pitää ensisijaisena lähteenä. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskääntämistä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinkäsityksistä tai virhetulkinnoista.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Vastuuvapauslauseke**:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, otathan huomioon, että automaattiset käännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäiskielellä on virallinen lähde. Tärkeissä asioissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,8 +1,8 @@
# Dangerous Liaisons - datavisualisointiprojekti
# Dangerous Liaisons -datojen visualisointiprojekti
Aloittaaksesi varmista, että sinulla on NPM ja Node asennettuna koneellesi. Asenna riippuvuudet (npm install) ja aja projekti paikallisesti (npm run serve):
Aloittaaksesi sinun tulee varmistaa, että koneellasi on käynnissä NPM ja Node **>=20.0.0**. Asenna riippuvuudet (npm install) ja käynnistä projekti paikallisesti (npm run serve):
## Projektin asennus
## Projektin alustus
```
npm install
```
@ -12,7 +12,7 @@ npm install
npm run serve
```
### Kääntää ja minimoi tuotantokäyttöä varten
### Kääntää ja minifioi tuotantoa varten
```
npm run build
```
@ -27,5 +27,7 @@ Katso [Configuration Reference](https://cli.vuejs.org/config/).
---
**Vastuuvapauslauseke**:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Pyrimme tarkkuuteen, mutta huomioithan, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäisellä kielellä tulee pitää ensisijaisena lähteenä. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskääntämistä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinkäsityksistä tai virhetulkinnoista.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Vastuuvapauslauseke**:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, otathan huomioon, että automaattiset käännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäiskielellä on virallinen lähde. Tärkeissä asioissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -12,8 +12,8 @@
"language_code": "no"
},
"1-Introduction/01-defining-data-science/notebook.ipynb": {
"original_hash": "8f5eb7b3f7cc89e6d98fb32e1de65dec",
"translation_date": "2026-02-27T09:47:49+00:00",
"original_hash": "8eb07e3d899aaba7ea9c9ec9b5aa2850",
"translation_date": "2026-07-17T23:01:40+00:00",
"source_file": "1-Introduction/01-defining-data-science/notebook.ipynb",
"language_code": "no"
},
@ -42,8 +42,8 @@
"language_code": "no"
},
"1-Introduction/03-defining-data/README.md": {
"original_hash": "12339119c0165da569a93ddba05f9339",
"translation_date": "2025-09-05T22:29:39+00:00",
"original_hash": "7217c6f9eb464d4ff4bae6c036ab53cb",
"translation_date": "2026-07-17T23:06:18+00:00",
"source_file": "1-Introduction/03-defining-data/README.md",
"language_code": "no"
},
@ -65,6 +65,12 @@
"source_file": "1-Introduction/04-stats-and-probability/assignment.md",
"language_code": "no"
},
"1-Introduction/04-stats-and-probability/notebook.ipynb": {
"original_hash": "0c77e104b29c723287bf11b773fcc5d5",
"translation_date": "2026-07-17T23:02:37+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "no"
},
"1-Introduction/README.md": {
"original_hash": "696a8474a01054281704cbfb09148949",
"translation_date": "2025-08-26T21:14:08+00:00",
@ -108,8 +114,8 @@
"language_code": "no"
},
"2-Working-With-Data/07-python/notebook-covidspread.ipynb": {
"original_hash": "6335cccba01dc6ad7b15aba7a8c73f38",
"translation_date": "2026-02-27T09:49:15+00:00",
"original_hash": "da97f98781c7cd271063f605fe8d71d0",
"translation_date": "2026-07-17T23:01:13+00:00",
"source_file": "2-Working-With-Data/07-python/notebook-covidspread.ipynb",
"language_code": "no"
},
@ -192,14 +198,14 @@
"language_code": "no"
},
"3-Data-Visualization/13-meaningful-visualizations/solution/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-26T22:47:17+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T23:06:25+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/solution/README.md",
"language_code": "no"
},
"3-Data-Visualization/13-meaningful-visualizations/starter/README.md": {
"original_hash": "5c51a54dd89075a7a362890117b7ed9e",
"translation_date": "2025-08-26T22:46:41+00:00",
"original_hash": "2b3b2632bb02af608ca60be828e8097d",
"translation_date": "2026-07-17T23:06:22+00:00",
"source_file": "3-Data-Visualization/13-meaningful-visualizations/starter/README.md",
"language_code": "no"
},

File diff suppressed because one or more lines are too long

@ -4,45 +4,44 @@
|:---:|
|Definere Data - _Sketchnote av [@nitya](https://twitter.com/nitya)_ |
Data er fakta, informasjon, observasjoner og målinger som brukes til å gjøre oppdagelser og støtte informerte beslutninger. Et datapunkt er en enkelt enhet av data innenfor et datasett, som er en samling av datapunkter. Datasett kan komme i ulike formater og strukturer, og vil vanligvis være basert på kilden, eller hvor dataene kommer fra. For eksempel kan en bedrifts månedlige inntekter være i et regneark, mens timebaserte pulsdata fra en smartklokke kan være i [JSON](https://stackoverflow.com/a/383699)-format. Det er vanlig for dataforskere å jobbe med ulike typer data innenfor et datasett.
Data er fakta, informasjon, observasjoner og målinger som brukes til å gjøre oppdagelser og støtte velinformerte beslutninger. Et datapunkt er en enkelt enhet med data innenfor et datasett, som er en samling av datapunkter. Dataset kan komme i forskjellige formater og strukturer, og vil vanligvis være basert på sin kilde, eller hvor dataene kom fra. For eksempel kan et selskaps månedlige inntjening være i et regneark, men timebaserte pulsmålinger fra en smartklokke kan være i [JSON](https://stackoverflow.com/a/383699) format. Det er vanlig at dataforskere jobber med ulike typer data innenfor et datasett.
Denne leksjonen fokuserer på å identifisere og klassifisere data basert på deres egenskaper og kilder.
## [Quiz før forelesning](https://ff-quizzes.netlify.app/en/ds/quiz/4)
Denne leksjonen fokuserer på å identifisere og klassifisere data etter deres egenskaper og kilder.
## [Pre-forelesningsquiz](https://ff-quizzes.netlify.app/en/ds/quiz/4)
## Hvordan Data Beskrives
### Rådata
data er data som kommer fra kilden i sin opprinnelige tilstand og som ikke har blitt analysert eller organisert. For å forstå hva som skjer med et datasett, må det organiseres i et format som kan forstås av mennesker så vel som av teknologien de bruker for videre analyse. Strukturen til et datasett beskriver hvordan det er organisert og kan klassifiseres som strukturert, ustrukturert og semi-strukturert. Disse strukturtypene vil variere avhengig av kilden, men vil til slutt passe inn i disse tre kategoriene.
### Rå Data
data er data som har kommet fra sin kilde i sin opprinnelige tilstand og som ikke er analysert eller organisert. For å forstå hva som skjer med et datasett, må det organiseres i et format som kan forstås av mennesker så vel som teknologien de kan bruke til å analysere det videre. Strukturen til et datasett beskriver hvordan det er organisert og kan klassifiseres som strukturert, ustrukturert og semi-strukturert. Disse typene strukturer vil variere, avhengig av kilden, men vil til slutt passe inn i disse tre kategoriene.
### Kvantitative Data
Kvantitative data er numeriske observasjoner innenfor et datasett og kan vanligvis analyseres, måles og brukes matematisk. Noen eksempler på kvantitative data er: et lands befolkning, en persons høyde eller en bedrifts kvartalsvise inntekter. Med litt ekstra analyse kan kvantitative data brukes til å oppdage sesongtrender i luftkvalitetsindeksen (AQI) eller estimere sannsynligheten for rushtidstrafikk på en typisk arbeidsdag.
### Kvantitativ Data
Kvantitativ data er numeriske observasjoner innenfor et datasett og kan vanligvis analyseres, måles og brukes matematisk. Noen eksempler på kvantitativ data er: et lands befolkning, en persons høyde eller et selskaps kvartalsvise inntekter. Med noe ekstra analyse kan kvantitativ data brukes til å oppdage sesongtrender i luftkvalitetsindeksen (AQI) eller estimere sannsynligheten for rushtrafikk på en vanlig arbeidsdag.
### Kvalitative Data
Kvalitative data, også kjent som kategoriske data, er data som ikke kan måles objektivt som observasjoner av kvantitative data. Det er generelt ulike formater av subjektive data som fanger kvaliteten på noe, som et produkt eller en prosess. Noen ganger er kvalitative data numeriske, men brukes vanligvis ikke matematisk, som telefonnumre eller tidsstempler. Noen eksempler på kvalitative data er: videokommentarer, merke og modell på en bil eller din nærmeste venns favorittfarge. Kvalitative data kan brukes til å forstå hvilke produkter forbrukere liker best eller identifisere populære nøkkelord i jobbsøknader.
### Kvalitativ Data
Kvalitativ data, også kjent som kategorisk data, er data som ikke kan måles objektivt som observasjoner av kvantitativ data. Det er generelt ulike former av subjektiv data som fanger kvaliteten på noe, som et produkt eller en prosess. Noen ganger er kvalitativ data numerisk og brukes vanligvis ikke matematisk, for eksempel telefonnumre eller tidsstempler. Noen eksempler på kvalitativ data er: videokommentarer, merke og modell av en bil, eller favorittfargen til dine nærmeste venner. Kvalitativ data kan brukes for å forstå hvilke produkter forbrukerne liker best eller for å identifisere populære nøkkelord i jobbsøknader.
### Strukturert Data
Strukturert data er data som er organisert i rader og kolonner, hvor hver rad har det samme settet med kolonner. Kolonner representerer en verdi av en bestemt type og identifiseres med et navn som beskriver hva verdien representerer, mens rader inneholder de faktiske verdiene. Kolonner vil ofte ha et spesifikt sett med regler eller begrensninger på verdiene for å sikre at verdiene nøyaktig representerer kolonnen. For eksempel, tenk deg et regneark med kunder der hver rad må ha et telefonnummer, og telefonnumrene aldri inneholder alfabetiske tegn. Det kan være regler som sikrer at telefonnummerkolonnen aldri er tom og kun inneholder tall.
Strukturert data er data som er organisert i rader og kolonner, hvor hver rad har samme sett med kolonner. Kolonner representerer en verdi av en bestemt type og vil bli identifisert med et navn som beskriver hva verdien representerer, mens rader inneholder de faktiske verdiene. Kolonner har ofte et spesifikt sett med regler eller begrensninger på verdiene, for å sikre at verdiene nøyaktig representerer kolonnen. For eksempel, forestill deg et regneark med kunder hvor hver rad må ha et telefonnummer og telefonnumrene aldri inneholder bokstaver. Det kan være regler for telefonnummer-kolonnen for å sørge for at den aldri er tom og bare inneholder tall.
En fordel med strukturert data er at det kan organiseres på en måte som gjør det mulig å relatere det til andre strukturerte data. Men fordi dataene er designet for å være organisert på en spesifikk måte, kan det være tidkrevende å gjøre endringer i den overordnede strukturen. For eksempel, hvis du legger til en e-postkolonne i kunderegnearket som ikke kan være tom, må du finne ut hvordan du skal legge til disse verdiene i de eksisterende radene i datasettet.
En fordel med strukturert data er at den kan organiseres på en måte som gjør at det kan relateres til andre strukturerte data. Men fordi dataene er designet for å organiseres på en spesifikk måte, kan det være mye arbeid å endre den overordnede strukturen. For eksempel, hvis du legger til en e-postkolonne til kunderegnearket som ikke kan være tom, må du finne ut hvordan disse verdiene skal legges til i de eksisterende kunderradene i datasettet.
Eksempler på strukturert data: regneark, relasjonsdatabaser, telefonnumre, kontoutskrifter.
Eksempler på strukturert data: regneark, relasjonsdatabaser, telefonnumre, kontoutskrifter
### Ustrukturert Data
Ustrukturert data kan vanligvis ikke kategoriseres i rader eller kolonner og inneholder ikke et format eller sett med regler å følge. Fordi ustrukturert data har færre begrensninger på strukturen, er det enklere å legge til ny informasjon sammenlignet med et strukturert datasett. Hvis en sensor som registrerer data om barometrisk trykk hvert 2. minutt får en oppdatering som nå lar den måle og registrere temperatur, krever det ikke endring av eksisterende data hvis det er ustrukturert. Men dette kan gjøre analyser eller undersøkelser av denne typen data mer tidkrevende. For eksempel, en forsker som ønsker å finne gjennomsnittstemperaturen for forrige måned fra sensorens data, men oppdager at sensoren har registrert en "e" i noen av sine data for å indikere at den var ødelagt, i stedet for et typisk tall, noe som betyr at dataene er ufullstendige.
Ustrukturert data kan vanligvis ikke kategoriseres i rader eller kolonner og inneholder ikke et format eller sett med regler å følge. Fordi ustrukturert data har færre begrensninger på sin struktur, er det enklere å legge til ny informasjon sammenlignet med et strukturert datasett. Hvis en sensor som fanger data om barometertrykk hvert annet minutt har fått en oppdatering som nå lar den måle og registrere temperatur, kreves det ikke endringer i den eksisterende dataen hvis den er ustrukturert. Dette kan imidlertid gjøre det vanskeligere å analysere eller undersøke denne typen data. For eksempel, en forsker som vil finne gjennomsnittstemperaturen fra forrige måned basert på sensors data, men oppdager at sensoren har registrert en "e" i noen av dataene for å indikere at den var ødelagt i stedet for et typisk tall, noe som betyr at dataene er ufullstendige.
Eksempler på ustrukturert data: tekstfiler, tekstmeldinger, videofiler.
Eksempler på ustrukturert data: tekstfiler, tekstmeldinger, videofiler
### Semi-strukturert Data
Semi-strukturert data har egenskaper som gjør det til en kombinasjon av strukturert og ustrukturert data. Det følger vanligvis ikke et format med rader og kolonner, men er organisert på en måte som anses som strukturert og kan følge et fast format eller sett med regler. Strukturen vil variere mellom kilder, fra en veldefinert hierarki til noe mer fleksibelt som tillater enkel integrering av ny informasjon. Metadata er indikatorer som hjelper til med å bestemme hvordan dataene er organisert og lagret, og vil ha ulike navn basert på typen data. Noen vanlige navn for metadata er tagger, elementer, enheter og attributter. For eksempel vil en typisk e-postmelding ha et emne, en tekst og et sett med mottakere og kan organiseres etter hvem eller når den ble sendt.
### Semi-strukturert
Semi-strukturert data har egenskaper som gjør at det er en kombinasjon av strukturert og ustrukturert data. Det følger vanligvis ikke et format av rader og kolonner, men er organisert på en måte som anses som strukturert og kan følge et fast format eller sett med regler. Strukturen vil variere mellom kilder, fra en veldefinert hierarki til noe mer fleksibelt som tillater enkel integrering av ny informasjon. Metadata er indikatorer som hjelper med å avgjøre hvordan data er organisert og lagret, og vil ha ulike navn basert på hvilken type data det er. Noen vanlige navn for metadata er tagger, elementer, enheter og attributter. For eksempel har en vanlig e-postmelding et emne, innhold og et sett mottakere, og kan organiseres etter hvem som sendte den eller når.
Eksempler på semi-strukturert data: HTML, CSV-filer, JavaScript Object Notation (JSON).
Eksempler på semi-strukturert data: HTML, CSV-filer, JavaScript Object Notation (JSON)
## Datakilder
En datakilde er det opprinnelige stedet hvor dataene ble generert, eller hvor de "bor", og vil variere basert på hvordan og når de ble samlet inn. Data generert av brukeren(e) kalles primærdata, mens sekundærdata kommer fra en kilde som har samlet inn data for generell bruk. For eksempel, en gruppe forskere som samler observasjoner i en regnskog vil bli betraktet som primærdata, og hvis de deler det med andre forskere, vil det bli betraktet som sekundærdata for de som bruker det.
En datakilde er det opprinnelige stedet hvor dataene ble generert, eller hvor de "bor", og vil variere basert på hvordan og når de ble samlet inn. Data som genereres av bruker(e) kalles primærdata, mens sekundærdata kommer fra en kilde som har samlet data for generell bruk. For eksempel vil en gruppe forskere som samler observasjoner i en regnskog betraktes som primær, og hvis de bestemmer seg for å dele det med andre forskere, vil det betraktes som sekundært for de som bruker det.
Databaser er en vanlig kilde og er avhengige av et databaseadministrasjonssystem for å være vert for og vedlikeholde dataene, hvor brukere bruker kommandoer kalt spørringer for å utforske dataene. Filer som datakilder kan være lyd-, bilde- og videofiler, samt regneark som Excel. Internettkilder er et vanlig sted for hosting av data, hvor databaser så vel som filer kan finnes. Application programming interfaces, også kjent som API-er, lar programmerere lage måter å dele data med eksterne brukere via internett, mens prosessen med webskraping trekker ut data fra en nettside. [Leksjonene i Arbeide med Data](../../../../../../../../../2-Working-With-Data) fokuserer på hvordan man bruker ulike datakilder.
Databaser er en vanlig kilde og bruker et databasesystem for å være vert og opprettholde dataene hvor brukere bruker kommandoer kalt spørringer for å utforske dataene. Filer som datakilder kan være lyd-, bilde- og videofiler samt regneark som Excel. Internettkilder er et vanlig sted for hosting av data hvor både databaser og filer kan finnes. Programmeringsgrensesnitt, også kjent som API-er, gjør det mulig for programmerere å lage måter å dele data med eksterne brukere gjennom internett, mens prosessen med webskraping henter data fra en nettside. [Leksjonene i Working with Data](../../../../../../../../../2-Working-With-Data) fokuserer på hvordan bruke ulike datakilder.
## Konklusjon
@ -55,22 +54,26 @@ I denne leksjonen har vi lært:
## 🚀 Utfordring
Kaggle er en utmerket kilde til åpne datasett. Bruk [verktøyet for datasett-søk](https://www.kaggle.com/datasets) for å finne noen interessante datasett og klassifiser 3-5 datasett med følgende kriterier:
Kaggle er en utmerket kilde til åpne datasett. Bruk [datasett-søkverktøyet](https://www.kaggle.com/datasets) for å finne noen interessante datasett og klassifiser 3-5 datasett med dette kriteriet:
- Er dataene kvantitative eller kvalitative?
- Er dataene strukturerte, ustrukturerte eller semi-strukturerte?
- Er dataene strukturerte, ustrukturerte, eller semi-strukturerte?
## [Quiz etter forelesningen](https://ff-quizzes.netlify.app/en/ds/quiz/5)
## [Quiz etter forelesning](https://ff-quizzes.netlify.app/en/ds/quiz/5)
## Gjennomgang & Selvstudium
- Denne Microsoft Learn-enheten, kalt [Classify your Data](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data), har en detaljert oversikt over strukturert, semi-strukturert og ustrukturert data.
- Denne Microsoft Learn-enheten, med tittelen [Identify data formats](https://learn.microsoft.com/en-us/training/modules/explore-core-data-concepts/2-data-formats?pivots=text) har en detaljert gjennomgang av strukturert, semi-strukturert og ustrukturert data.
## Oppgave
[Classifying Datasets](assignment.md)
[Klassifisering av Datasett](assignment.md)
---
**Ansvarsfraskrivelse**:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi tilstreber nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfraskrivelse**:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -5,7 +5,7 @@
"metadata": {},
"source": [
"# Introduksjon til sannsynlighet og statistikk\n",
"I denne notatboken skal vi leke med noen av begrepene vi tidligere har diskutert. Mange begreper fra sannsynlighet og statistikk er godt representert i store biblioteker for databehandling i Python, som `numpy` og `pandas`.\n"
"I denne notatboken skal vi leke med noen av konseptene vi tidligere har diskutert. Mange konsepter fra sannsynlighet og statistikk er godt representert i store biblioteker for databehandling i Python, som `numpy` og `pandas`.\n"
]
},
{
@ -24,8 +24,8 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tilfeldige variable og fordelinger\n",
"La oss begynne med å trekke et utvalg på 30 verdier fra en uniform fordeling fra 0 til 9. Vi vil også beregne gjennomsnitt og varians.\n"
"## Tilfeldige variabler og fordelinger\n",
"La oss starte med å trekke et utvalg på 30 verdier fra en uniform fordeling fra 0 til 9. Vi vil også beregne gjennomsnitt og varians.\n"
]
},
{
@ -44,7 +44,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"For å visuelt anslå hvor mange forskjellige verdier det er i prøven, kan vi plotte **histogrammet**:\n"
"For å visuelt anslå hvor mange forskjellige verdier det er i utvalget, kan vi tegne **histogrammet**:\n"
]
},
{
@ -61,9 +61,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Analyserer ekte data\n",
"## Analyserer virkelige data\n",
"\n",
"Gjennomsnitt og varians er veldig viktige når man analyserer virkelige data. La oss laste inn data om baseballspillere fra [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)\n"
"Gjennomsnitt og varians er veldig viktig når man analyserer data fra den virkelige verden. La oss laste data om baseballspillere fra [SOCR MLB Height/Weight Data](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)\n"
]
},
{
@ -80,7 +80,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> Vi bruker en pakke kalt [**Pandas**](https://pandas.pydata.org/) her for dataanalyse. Vi vil snakke mer om Pandas og å jobbe med data i Python senere i dette kurset.\n",
"> Vi bruker en pakke som heter [**Pandas**](https://pandas.pydata.org/) her for dataanalyse. Vi vil snakke mer om Pandas og arbeid med data i Python senere i dette kurset.\n",
"\n",
"La oss beregne gjennomsnittsverdier for alder, høyde og vekt:\n"
]
@ -98,7 +98,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"La oss nå fokusere på høyde, og beregne standardavvik og varians:\n"
"La oss nå fokusere på høyde, og beregne standardavvik og varians: \n"
]
},
{
@ -126,7 +126,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"I tillegg til gjennomsnittet gir det mening å se på medianverdien og kvartilene. De kan visualiseres ved hjelp av en **boksplott**:\n"
"I tillegg til gjennomsnitt, gir det mening å se på medianverdien og kvartilene. Disse kan visualiseres ved bruk av et **boksplott**:\n"
]
},
{
@ -136,7 +136,7 @@
"outputs": [],
"source": [
"plt.figure(figsize=(10,2))\n",
"plt.boxplot(df['Height'].ffill(), vert=False, showmeans=True)\n",
"plt.boxplot(df['Height'].ffill(), orientation='horizontal', showmeans=True)\n",
"plt.grid(color='gray', linestyle='dotted')\n",
"plt.tight_layout()\n",
"plt.show()"
@ -165,9 +165,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **Merk**: Dette diagrammet antyder at gjennomsnittlig høyde for førstebaser er høyere enn høyden til andrebaser. Senere skal vi lære hvordan vi kan teste denne hypotesen mer formelt, og hvordan vi kan vise at dataene våre er statistisk signifikante for å vise dette. \n",
"> **Merk**: Dette diagrammet antyder at gjennomsnittshøyden til førstebasene er høyere enn høyden til andrebasser. Senere vil vi lære hvordan vi kan teste denne hypotesen mer formelt, og hvordan vi kan demonstrere at dataene våre er statistisk signifikante for å vise dette. \n",
"\n",
"Alder, høyde og vekt er alle kontinuerlige stokastiske variabler. Hva tror du fordelingen deres er? En god måte å finne det ut på er å tegne histogrammet av verdiene: \n"
"Alder, høyde og vekt er alle kontinuerlige stokastiske variabler. Hva tror du fordelingen deres er? En god måte å finne ut av dette på er å plotte histogrammet av verdiene: \n"
]
},
{
@ -190,7 +190,7 @@
"source": [
"## Normalfordeling\n",
"\n",
"La oss lage et kunstig utvalg av vekter som følger en normalfordeling med samme gjennomsnitt og varians som våre virkelige data:\n"
"La oss lage et kunstig utvalg av vekter som følger en normalfordeling med samme gjennomsnitt og varians som våre ekte data:\n"
]
},
{
@ -231,7 +231,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Siden de fleste verdier i det virkelige liv er normalfordelte, bør vi ikke bruke en uniform tilfeldig tallgenerator til å generere prøve-data. Her er hva som skjer hvis vi prøver å generere vekter med en uniform fordeling (generert av `np.random.rand`):\n"
"Siden de fleste verdier i virkeligheten er normalfordelte, bør vi ikke bruke en uniform tilfeldig tallgenerator for å generere eksemplardata. Her er hva som skjer hvis vi prøver å generere vekter med en uniform fordeling (generert av `np.random.rand`):\n"
]
},
{
@ -253,7 +253,7 @@
"source": [
"## Konfidensintervaller\n",
"\n",
"La oss nå beregne konfidensintervaller for vektene og høydene til baseballspillere. Vi vil bruke koden [fra denne stackoverflow-diskusjonen](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data):\n"
"La oss nå beregne konfidensintervaller for vekten og høyden til baseballspillere. Vi vil bruke koden [fra denne stackoverflow-diskusjonen](https://stackoverflow.com/questions/15033511/compute-a-confidence-interval-from-sample-data):\n"
]
},
{
@ -272,7 +272,7 @@
" return m, h\n",
"\n",
"for p in [0.85, 0.9, 0.95]:\n",
" m, h = mean_confidence_interval(df['Weight'].fillna(method='pad'),p)\n",
" m, h = mean_confidence_interval(df['Weight'].ffill(),p)\n",
" print(f\"p={p:.2f}, mean = {m:.2f} ± {h:.2f}\")"
]
},
@ -282,7 +282,7 @@
"source": [
"## Hypotesetesting\n",
"\n",
"La oss utforske forskjellige roller i vårt baseballspiller-datasett:\n"
"La oss utforske forskjellige roller i vårt baseball-spillerdatasett:\n"
]
},
{
@ -298,7 +298,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"La oss teste hypotesen om at førstebaser er høyere enn andrebaser. Den enkleste måten å gjøre dette på er å teste konfidensintervallene:\n"
"La oss teste hypotesen om at førstemann på base er høyere enn andremann på base. Den enkleste måten å gjøre dette på er å teste konfidensintervallene:\n"
]
},
{
@ -338,18 +338,18 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"De to verdiene som returneres av `ttest_ind`-funksjonen er:\n",
"* p-verdien kan betraktes som sannsynligheten for at to fordelinger har samme gjennomsnitt. I vårt tilfelle er den veldig lav, noe som betyr at det er sterkt bevis som understøtter at førstebaserne er høyere.\n",
"* t-verdien er den mellomliggende verdien av normalisert gjennomsnittsforskjell som brukes i t-testen, og den blir sammenlignet med en terskelverdi for en gitt konfidensverdi.\n"
"De to verdiene som returneres av funksjonen `ttest_ind` er:\n",
"* p-verdi kan betraktes som sannsynligheten for at to fordelingene har samme gjennomsnitt. I vårt tilfelle er den veldig lav, noe som betyr at det finnes sterke bevis for at førstebaser er høyere.\n",
"* t-verdi er den mellomliggende verdien for normalisert gjennomsnittsforskjell som brukes i t-testen, og den sammenlignes med en terskelverdi for en gitt konfidensverdi.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Simulering av en normalfordeling med sentralgrenseteoremet\n",
"## Simulere en normalfordeling med sentralgrenseteoremet\n",
"\n",
"Den pseudo-tilfeldige generatoren i Python er designet for å gi oss en jevn fordeling. Hvis vi ønsker å lage en generator for normalfordeling, kan vi bruke sentralgrenseteoremet. For å få en normalt fordelt verdi vil vi bare beregne gjennomsnittet av et utvalg som er generert jevnt.\n"
"Pseudo-tilfeldiggeneratoren i Python er designet for å gi oss en uniform fordeling. Hvis vi ønsker å lage en generator for normalfordeling, kan vi bruke sentralgrenseteoremet. For å få en normalt fordelt verdi beregner vi bare gjennomsnittet av et uniformt generert utvalg.\n"
]
},
{
@ -373,9 +373,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Korrelasjon og Evil Baseball Corp\n",
"## Korrelasjon og Ond Baseball Corp\n",
"\n",
"Korrelasjon gjør det mulig for oss å finne relasjoner mellom dataserier. I vårt lekeksempel later vi som om det finnes et ondsinnet baseball-selskap som betaler spillerne sine etter høyden deres jo høyere spilleren er, desto mer penger får han/hun. Anta at det er en grunnlønn på $1000, og en ekstra bonus fra $0 til $100, avhengig av høyde. Vi vil ta de ekte spillerne fra MLB, og beregne deres tenkte lønninger:\n"
"Korrelasjon lar oss finne sammenhenger mellom dataserier. I vårt lekeeksempel, la oss late som det finnes et ond baseballselskap som betaler spillerne sine etter høyden deres jo høyere spilleren er, desto mer penger får han/hun. Anta at det finnes en grunnlønn på $1000, og en ekstra bonus på mellom $0 og $100, avhengig av høyde. Vi vil ta de virkelige spillerne fra MLB, og beregne deres imaginære lønninger:\n"
]
},
{
@ -384,7 +384,7 @@
"metadata": {},
"outputs": [],
"source": [
"heights = df['Height'].fillna(method='pad')\n",
"heights = df['Height'].ffill()\n",
"salaries = 1000+(heights-heights.min())/(heights.max()-heights.mean())*100\n",
"print(list(zip(heights, salaries))[:10])"
]
@ -393,7 +393,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"La oss nå beregne kovarians og korrelasjon for disse sekvensene. `np.cov` vil gi oss en såkalt **kovariansmatrise**, som er en utvidelse av kovarians til flere variabler. Elementet $M_{ij}$ i kovariansmatrisen $M$ er en korrelasjon mellom inngangsvariablene $X_i$ og $X_j$, og diagonale verdier $M_{ii}$ er variansen til $X_{i}$. På samme måte vil `np.corrcoef` gi oss **korrelasjonsmatrisen**.\n"
"La oss nå beregne kovarians og korrelasjon for disse sekvensene. `np.cov` vil gi oss en såkalt **kovariansmatrise**, som er en utvidelse av kovarians til flere variabler. Elementet $M_{ij}$ i kovariansmatrisen $M$ er en korrelasjon mellom inndata-variablene $X_i$ og $X_j$, og diagonale verdier $M_{ii}$ er variansen til $X_{i}$. På samme måte vil `np.corrcoef` gi oss **korrelasjonsmatrisen**.\n"
]
},
{
@ -411,7 +411,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"En korrelasjon lik 1 betyr at det er en sterk **lineær sammenheng** mellom to variabler. Vi kan visuelt se den lineære sammenhengen ved å plotte én verdi mot den andre:\n"
"En korrelasjon lik 1 betyr at det er en sterk **lineær sammenheng** mellom to variabler. Vi kan visuelt se den lineære sammenhengen ved å plotte den ene verdien mot den andre:\n"
]
},
{
@ -430,7 +430,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"La oss se hva som skjer hvis relasjonen ikke er lineær. Anta at selskapet vårt bestemte seg for å skjule den åpenbare lineære avhengigheten mellom høyder og lønninger, og introduserte noe ikke-lineær i formelen, som for eksempel `sin`:\n"
"La oss se hva som skjer hvis relasjonen ikke er lineær. Anta at vårt selskap bestemte seg for å skjule den åpenbare lineære avhengigheten mellom høyder og lønninger, og introduserte litt ikke-linearitet i formelen, som for eksempel `sin`:\n"
]
},
{
@ -476,7 +476,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> Kan du gjette hvorfor prikkene stiller seg opp i vertikale linjer slik? \n",
"> Kan du gjette hvorfor prikkene danner vertikale linjer slik?\n",
"\n",
"Vi har observert korrelasjonen mellom et kunstig konstruert konsept som lønn og den observerte variabelen *høyde*. La oss også se om de to observerte variablene, som høyde og vekt, korrelerer:\n"
]
@ -494,11 +494,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Dessverre fikk vi ingen resultater bare noen merkelige `nan`-verdier. Dette skyldes at noen av verdiene i serien vår er udefinerte, representert som `nan`, noe som gjør at resultatet av operasjonen også blir udefinert. Ved å se på matrisen kan vi se at `Weight` er den problematiske kolonnen, fordi selvkorrelasjonen mellom `Height`-verdiene er blitt beregnet.\n",
"Dessverre fikk vi ingen resultater - bare noen rare `nan`-verdier. Dette skyldes at noen av verdiene i serien vår er udefinerte, representert som `nan`, noe som gjør at resultatet av operasjonen også blir udefinert. Ved å se på matrisen kan vi se at `Weight` er den problematiske kolonnen, fordi selvkorrelasjon mellom `Height`-verdier er blitt beregnet.\n",
"\n",
"> Dette eksemplet viser viktigheten av **datapreparering** og **rensing**. Uten riktige data kan vi ikke beregne noe.\n",
"\n",
"La oss bruke `fillna`-metoden for å fylle inn de manglende verdiene, og beregne korrelasjonen:\n"
"La oss bruke metoden `fillna` for å fylle inn manglende verdier, og beregne korrelasjonen:\n"
]
},
{
@ -507,14 +507,14 @@
"metadata": {},
"outputs": [],
"source": [
"np.corrcoef(df['Height'].fillna(method='pad'), df['Weight'])"
"np.corrcoef(df['Height'].ffill(), df['Weight'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Det er faktisk en korrelasjon, men ikke en så sterk en som i vårt kunstige eksempel. Hvis vi ser på spredningsdiagrammet av en verdi mot den andre, ville sammenhengen være mye mindre åpenbar:\n"
"Det er faktisk en korrelasjon, men ikke en så sterk en som i vårt kunstige eksempel. Faktisk, hvis vi ser på spredningsplottet av en verdi mot den andre, ville forholdet være mye mindre åpenbart:\n"
]
},
{
@ -537,14 +537,14 @@
"source": [
"## Konklusjon\n",
"\n",
"I denne notatboken har vi lært hvordan man utfører grunnleggende operasjoner på data for å beregne statistiske funksjoner. Vi vet nå hvordan vi kan bruke et solid apparat av matematikk og statistikk for å bevise noen hypoteser, og hvordan vi kan beregne konfidensintervaller for tilfeldige variabler gitt et datasett.\n"
"I denne notatblokken har vi lært hvordan man utfører grunnleggende operasjoner på data for å beregne statistiske funksjoner. Vi vet nå hvordan vi kan bruke et solid apparat av matematikk og statistikk for å bevise noen hypoteser, og hvordan vi kan beregne konfidensintervaller for vilkårlige variabler gitt en datasample.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Ansvarsfraskrivelse**:\nDette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi jobber for nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår som følge av bruk av denne oversettelsen.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Ansvarsfraskrivelse**:\nDette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -568,12 +568,6 @@
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.6"
},
"coopTranslator": {
"original_hash": "0f899e3c5019f948e7c787b22f3b2304",
"translation_date": "2026-01-16T15:48:06+00:00",
"source_file": "1-Introduction/04-stats-and-probability/notebook.ipynb",
"language_code": "no"
}
},
"nbformat": 4,

@ -6,9 +6,9 @@
"source": [
"# Estimering av COVID-19-pandemien\n",
"\n",
"## Laster inn data\n",
"## Laste inn data\n",
"\n",
"Vi vil bruke data om COVID-19-infiserte personer, levert av [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) ved [Johns Hopkins University](https://jhu.edu/). Datasettet er tilgjengelig i [dette GitHub-repositoriet](https://github.com/CSSEGISandData/COVID-19).\n"
"Vi vil bruke data om COVID-19 smittede individer, levert av [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) ved [Johns Hopkins University](https://jhu.edu/). Datasettet er tilgjengelig i [denne GitHub-repositorien](https://github.com/CSSEGISandData/COVID-19).\n"
]
},
{
@ -27,7 +27,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Vi kan laste inn de nyeste dataene direkte fra GitHub ved å bruke `pd.read_csv`. Hvis dataene av en eller annen grunn ikke er tilgjengelige, kan du alltid bruke kopien som er tilgjengelig lokalt i `data`-mappen - bare fjern kommentaren linjen nedenfor som definerer `base_url`:\n"
"Vi kan laste inn de nyeste dataene direkte fra GitHub ved å bruke `pd.read_csv`. Hvis dataene av en eller annen grunn ikke er tilgjengelige, kan du alltid bruke kopien som er tilgjengelig lokalt i `data`-mappen - bare fjern kommentaren fra linjen nedenfor som definerer `base_url`:\n"
]
},
{
@ -265,7 +265,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Vi kan se at hver rad i tabellen definerer antall smittede individer for hvert land og/eller provins, og kolonnene tilsvarer datoer. Lignende tabeller kan lastes inn for andre data, som antall gjenopprettede og antall dødsfall.\n"
"Vi kan se at hver rad i tabellen definerer antallet smittede individer for hvert land og/eller provins, og kolonnene tilsvarer datoer. Lignende tabeller kan lastes for andre data, slik som antall friske og antall dødsfall.\n"
]
},
{
@ -282,9 +282,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Forstå dataene\n",
"## Å forstå dataene\n",
"\n",
"Fra tabellen ovenfor er ikke rollen til provinskolonnen klar. La oss se på de forskjellige verdiene som finnes i `Province/State`-kolonnen:\n"
"Fra tabellen ovenfor er ikke rollen til fylkekolonnen klar. La oss se på de forskjellige verdiene som er til stede i `Province/State`-kolonnen:\n"
]
},
{
@ -322,7 +322,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Fra navnene kan vi slutte at land som Australia og Kina har mer detaljert inndeling etter provinser. La oss se etter informasjon om Kina for å se eksempelet:\n"
"Fra navnene kan vi utlede at land som Australia og Kina har mer detaljert inndeling etter provinser. La oss se etter informasjon om Kina for å se eksempelet:\n"
]
},
{
@ -1321,9 +1321,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Forbehandling av dataene\n",
"## Forbehandling av dataene \n",
"\n",
"Vi er ikke interessert i å bryte ned land til ytterligere territorier, derfor vil vi først fjerne denne oppdelingen og legge til informasjon om alle territorier samlet, for å få informasjon for hele landet. Dette kan gjøres ved å bruke `groupby`:\n"
"Vi er ikke interessert i å dele opp land i ytterligere territorier, derfor vil vi først fjerne denne oppdelingen og legge sammen informasjon om alle territorier, for å få info for hele landet. Dette kan gjøres ved å bruke `groupby`:\n"
]
},
{
@ -1607,7 +1607,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> **Merk** hvordan vi bruker `[3:]` for å fjerne de første tre elementene i en sekvens som inneholder ikke-dato metadata (Provinsen/Stat og geolokasjonskolonnene). Vi kan også droppe de tre kolonnene helt:\n"
"> **Merk** hvordan vi bruker `[3:]` for å fjerne de første tre elementene i en sekvens som inneholder ikke-dato metadata (Provins/Stat og geolokasjonskolonnene). Vi kan også fjerne de tre kolonnene helt:\n"
]
},
{
@ -1627,7 +1627,7 @@
"source": [
"## Undersøke dataene\n",
"\n",
"La oss nå bytte til å undersøke et bestemt land. La oss lage en ramme som inneholder dataene om infeksjoner indeksert etter dato:\n"
"La oss nå bytte til å undersøke et spesifikt land. La oss lage en ramme som inneholder data om infeksjoner indeksert etter dato:\n"
]
},
{
@ -1793,7 +1793,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"La oss nå beregne antall nye smittede hver dag. Dette vil la oss se hastigheten som pandemien utvikler seg med. Den enkleste måten å gjøre dette på er å bruke `diff`:\n"
"Nå skal vi regne ut antall nye smittede hver dag. Dette vil la oss se hvor raskt pandemien utvikler seg. Den enkleste måten å gjøre det på er å bruke `diff`:\n"
]
},
{
@ -1852,7 +1852,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Det ser tydelig ut som det er ukentlige svingninger i dataene. Fordi vi ønsker å kunne se trendene, gir det mening å jevne ut kurven ved å beregne løpende gjennomsnitt (dvs. for hver dag vil vi beregne gjennomsnittsverdien for de foregående dagene):\n"
"Det ser tydelig ut som det er ukentlige svingninger i dataene. Fordi vi ønsker å kunne se trendene, gir det mening å jevne ut kurven ved å beregne glidende gjennomsnitt (dvs. for hver dag vil vi beregne gjennomsnittsverdien for de foregående dagene):\n"
]
},
{
@ -1882,7 +1882,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"For å kunne sammenligne flere land, kan det være hensiktsmessig å ta landets befolkning i betraktning, og sammenligne prosentandelen av smittede i forhold til landets befolkning. For å få landets befolkning, la oss laste inn datasettet over land:\n"
"For å kunne sammenligne flere land, kan vi ønske å ta landets befolkning i betraktning, og sammenligne prosentandelen smittede med hensyn til landets befolkning. For å få tak i landets befolkning, la oss laste inn datasettet over land:\n"
]
},
{
@ -2153,7 +2153,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Fordi dette datasettet inneholder informasjon om både land og provinser, må vi være litt smarte for å få befolkningen for hele landet:\n"
"Fordi dette datasettet inneholder informasjon om både land og provinser, må vi være litt smarte for å få befolkningen i hele landet: \n"
]
},
{
@ -2261,14 +2261,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## Beregning av $R_t$\n",
"\n",
"For å se hvor smittsom sykdommen er, ser vi på **det grunnleggende reproduksjonstallet** $R_0$, som angir antall personer en smittet person videre vil smitte. Når $R_0$ er mer enn 1, er det sannsynlig at epidemien sprer seg.\n",
"For å se hvor smittsom sykdommen er, ser vi på **grunnleggende reproduksjonstall** $R_0$, som angir antall personer en smittet person videre vil smitte. Når $R_0$ er større enn 1, er det sannsynlig at epidemien sprer seg.\n",
"\n",
"$R_0$ er en egenskap ved sykdommen selv, og tar ikke hensyn til noen beskyttelsestiltak folk kan ta for å bremse pandemien. Under pandemiens forløp kan vi estimere reproduksjonstallet $R_t$ på et gitt tidspunkt $t$. Det har blitt vist at dette tallet grovt kan estimeres ved å ta et vindu på 8 dager og beregne $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"hvor $I_t$ er antall nyinfiserte individer på dag $t$.\n",
"$R_0$ er en egenskap ved selve sykdommen, og tar ikke hensyn til noen beskyttelsestiltak som folk kan ta for å bremse pandemien. Under pandemiens forløp kan vi estimere reproduksjonstallet $R_t$ på et gitt tidspunkt $t$. Det har blitt vist at dette tallet omtrent kan estimeres ved å ta et vindu på 8 dager, og beregne $$R_t=\\frac{I_{t-7}+I_{t-6}+I_{t-5}+I_{t-4}}{I_{t-3}+I_{t-2}+I_{t-1}+I_t}$$\n",
"hvor $I_t$ er antall nylig smittede individer på dag $t$.\n",
"\n",
"La oss beregne $R_t$ for våre pandemidata. For å gjøre dette vil vi ta et rullende vindu med 8 `ninfected`-verdier, og bruke funksjonen for å beregne forholdet over:\n"
"La oss beregne $R_t$ for våre pandemidata. For å gjøre dette, vil vi bruke et rullende vindu på 8 `ninfected`-verdier, og anvende funksjonen for å beregne forholdet ovenfor:\n"
]
},
{
@ -2298,9 +2299,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Du kan se at det er noen hull i grafen. Disse kan skyldes enten `NaN`, eller hvis `inf`-verdier er til stede i datasettet. `inf` kan være forårsaket av divisjon med 0, og `NaN` kan indikere manglende data, eller ingen data tilgjengelig for å beregne resultatet (som i starten av rammen vår, der rullende vindu med bredde 8 ennå ikke er tilgjengelig). For å gjøre grafen finere, må vi fylle disse verdiene ved å bruke `replace`- og `fillna`-funksjonen.\n",
"Du kan se at det er noen hull i grafen. De kan skyldes enten `NaN`, eller at `inf` verdier er til stede i datasettet. `inf` kan oppstå ved divisjon på 0, og `NaN` kan indikere manglende data, eller at det ikke finnes data tilgjengelig for å regne ut resultatet (som i begynnelsen av rammen vår, der et rullende vindu med bredde 8 ennå ikke er tilgjengelig). For å gjøre grafen penere, må vi fylle disse verdiene ved hjelp av `replace` og `fillna` funksjonen.\n",
"\n",
"La oss se nærmere på starten av pandemien. Vi vil også begrense y-akseverdiene til å vise kun verdier under 6, for å se bedre, og tegne en horisontal linje ved 1.\n"
"La oss se nærmere på begynnelsen av pandemien. Vi vil også begrense verdiene på y-aksen til å vise bare verdier under 6, for å få et bedre overblikk, og tegne en horisontal linje på 1.\n"
]
},
{
@ -2331,7 +2332,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"En annen interessant indikator på pandemien er **derivatet**, eller **daglig forskjell** i nye tilfeller. Det lar oss se tydelig når pandemien øker eller avtar.\n"
"En annen interessant indikator på pandemien er **derivaten**, eller **daglig forskjell** i nye tilfeller. Den lar oss tydelig se når pandemien øker eller avtar. \n"
]
},
{
@ -2360,7 +2361,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Gitt at det er mange svingninger i dataene forårsaket av rapportering, gir det mening å jevne ut kurven ved å kjøre et glidende gjennomsnitt for å få et helhetlig bilde. La oss igjen fokusere på de første månedene av pandemien:\n"
"Gitt at det er mange svingninger i data forårsaket av rapportering, gir det mening å jevne ut kurven ved å kjøre glidende gjennomsnitt for å få det overordnede bildet. La oss igjen fokusere på de første månedene av pandemien:\n"
]
},
{
@ -2390,14 +2391,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Challenge\n",
"\n",
"Nå er det tid for at du skal leke mer med koden og dataene! Her er noen forslag du kan eksperimentere med:\n",
"* Se spredningen av pandemien i forskjellige land.\n",
"* Plott $R_t$-grafer for flere land på én graf for sammenligning, eller lag flere grafer side ved side.\n",
"* Se hvordan antall dødsfall og antall som er kommet seg korrelerer med antall smittede.\n",
"* Prøv å finne ut hvor lenge en typisk sykdom varer ved visuelt å korrelere infeksjonsrate og dødsrate, og lete etter noen avvik. Du må kanskje se på forskjellige land for å finne det ut.\n",
"* Beregn dødelighetsraten og hvordan den endrer seg over tid. Du vil kanskje ta hensyn til sykdommens varighet i dager for å forskyve en tidsserie før du gjør beregninger.\n"
"## Utfordring\n",
"\n",
"Nå er det på tide at du leker mer med koden og dataene! Her er noen forslag du kan eksperimentere med:\n",
"* Se hvordan pandemien sprer seg i ulike land.\n",
"* Plott $R_t$ grafer for flere land på én graf for sammenligning, eller lag flere grafer ved siden av hverandre.\n",
"* Se hvordan antall dødsfall og antall som har blitt friske korrelerer med antall smittede.\n",
"* Prøv å finne ut hvor lenge en vanlig sykdom varer ved visuelt å korrelere infeksjonsraten og dødsraten og se etter noen anomalier. Du kan måtte se på forskjellige land for å finne det ut.\n",
"* Beregn dødelighetsraten og hvordan den endrer seg over tid. Du vil kanskje ta hensyn til lengden på sykdomsforløpet i dager for å forskyve den ene tidsserien før du gjør beregningene.\n"
]
},
{
@ -2406,7 +2408,7 @@
"source": [
"## Referanser\n",
"\n",
"Du kan se på videre studier av COVID-epidemiens spredning i følgende publikasjoner:\n",
"Du kan se på ytterligere studier av COVID-epidemiens spredning i følgende publikasjoner:\n",
"* [Sliding SIR Model for Rt Estimation during COVID Pandemic](https://soshnikov.com/science/sliding-sir-model-for-rt-estimation/), blogginnlegg av [Dmitry Soshnikov](http://soshnikov.com)\n",
"* T.Petrova, D.Soshnikov, A.Grunin. [Estimation of Time-Dependent Reproduction Number for Global COVID-19 Outbreak](https://www.preprints.org/manuscript/202006.0289/v1). *Preprints* **2020**, 2020060289 (doi: 10.20944/preprints202006.0289.v1)\n",
"* [Kode for ovennevnte artikkel på GitHub](https://github.com/shwars/SlidingSIR)\n"
@ -2423,7 +2425,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Ansvarsfraskrivelse**:\nDette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på dets opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Ansvarsfraskrivelse**:\nDette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],

@ -1,13 +1,13 @@
# Dangerous Liaisons datavisualiseringsprosjekt
For å komme i gang må du sørge for at du har NPM og Node installert og kjører på maskinen din. Installer avhengighetene (npm install) og kjør deretter prosjektet lokalt (npm run serve):
For å komme i gang må du sørge for at du har NPM og Node **>=20.0.0** som kjører på maskinen din. Installer avhengighetene (npm install) og kjør deretter prosjektet lokalt (npm run serve):
## Prosjektoppsett
## Oppsett av prosjekt
```
npm install
```
### Kompilerer og oppdaterer automatisk for utvikling
### Kompilerer og hot-laster for utvikling
```
npm run serve
```
@ -17,7 +17,7 @@ npm run serve
npm run build
```
### Utfører linting og fikser filer
### Linter og fikser filer
```
npm run lint
```
@ -27,5 +27,7 @@ Se [Configuration Reference](https://cli.vuejs.org/config/).
---
**Ansvarsfraskrivelse**:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi tilstreber nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfraskrivelse**:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,31 +1,33 @@
# Dangerous Liaisons datavisualiseringsprosjekt
For å komme i gang, må du sørge for at du har NPM og Node installert på maskinen din. Installer avhengighetene (npm install) og kjør deretter prosjektet lokalt (npm run serve):
For å komme i gang må du sørge for at du har NPM og Node **>=20.0.0** kjørende på din maskin. Installer avhengighetene (npm install) og kjør deretter prosjektet lokalt (npm run serve):
## Prosjektoppsett
## Oppsett av prosjekt
```
npm install
```
### Kompilerer og oppdaterer automatisk for utvikling
### Kompilerer og gjør hot-reload for utvikling
```
npm run serve
```
### Kompilerer og minimerer for produksjon
### Kompilerer og minifiserer for produksjon
```
npm run build
```
### Utfører linting og fikser filer
### Linter og fikser filer
```
npm run lint
```
### Tilpass konfigurasjonen
### Tilpass konfigurasjon
Se [Configuration Reference](https://cli.vuejs.org/config/).
---
**Ansvarsfraskrivelse**:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi tilstreber nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfraskrivelse**:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save