Forelesning 6: Hypothesis testing

Sok-2009 h24

Author

Eirik Eriksen Heen & ChatGPT

Published

September 19, 2024

Introduksjon til hypotesetesting

Hypotesetesting er en fundamental komponent i statistisk analyse, som spiller en avgjørende rolle i forskning innen samfunnsøkonomi og datavitenskap. Denne metoden brukes for å gjøre inferenser om populasjoner basert på prøvedata, og hjelper forskere og analytikere med å ta informerte beslutninger om gyldigheten av deres hypoteser.

Hva er hypotesetesting?

Hypotesetesting er prosessen med å bruke statistiske tester for å avgjøre om det er tilstrekkelig bevis i et datasett til å “forkaste” en nullhypotese. Nullhypotesen, ofte notert som ( \(H_0\) ), representerer en generell påstand eller en standardposisjon at det ikke er noen forskjell eller effekt. For eksempel, i samfunnsøkonomi kan en nullhypotese være at det ikke er noen forskjell i inntektsnivå mellom to økonomiske grupper.

  • Nullhypotese ( \(H_0\) ): “Alt som vanlig ingen endring”
  • Alternativ hypotesen (\(H_1\)): Detter er den hypotesen vi ønsker å teste, og den krever bevis

Viktigheten av hypotesetesting

Hypotesetesting tillater oss å teste antakelser og teorier ved å analysere empiriske data. Dette er særlig viktig i felt som samfunnsøkonomi og datavitenskap, hvor avgjørelser ofte må baseres på komplekse datasett og analyser. Ved å anvende hypotesetester kan forskere:

  • Bestemme om funnene i et datasett kan generaliseres til en større populasjon.
  • Kontrollere for tilfeldige variasjoner i data.
  • Gi støtte til forskning og teorier med empirisk bevis.

Eksempler på hypoteser

  1. Samfunnsøkonomi: En forsker kan være interessert i å teste om økonomisk politikk har påvirket arbeidsledigheten i ulike demografier.
    • Nullhypotese ( \(H_0\) ): Politikken hadde ingen effekt på arbeidsledigheten.
    • Alternativ hypotese ( \(H_1\) ): Politikken reduserte arbeidsledigheten.
  2. Datavitenskap: En dataanalytiker kan teste effekten av en ny algoritme på forbedring av brukerengasjement på en nettplattform.
    • Nullhypotese (\(H_0\)): Algoritmen hadde ingen effekt på brukerengasjement.
    • Alternativ hypotese (\(H_1\)): Algoritmen forbedret brukerengasjementet.

Statistisk Inferens

Statistisk inferens er prosessen med å trekke konklusjoner om en populasjons karakteristikker basert på en prøve tatt fra populasjonen. Den omfatter estimasjon av parametere (som gjennomsnitt eller proporsjoner) og testing av statistiske hypoteser. Inferens hjelper forskere å forstå større trender fra et begrenset datasett og anvende disse funnene til en bredere kontekst.

Vi skal nå bruke sannynlighetst regning til å si noe om populasjonen.

Oppsummering

Å forstå og anvende hypotesetesting er essensielt for å tolke data korrekt og ta velinformerte beslutninger i samfunnsøkonomi og datavitenskap. I de kommende seksjonene vil vi utforske ulike typer hypotesetester og hvordan disse kan implementeres i R, sammen med praktiske eksempler og øvelser for å styrke din forståelse og ferdigheter.

Tanke eksempel

I denne case-studien skal vi se nærmere på en hypotetisk situasjon med David og hans familie for å illustrere hvordan hypotesetesting kan brukes i praksis for å ta stilling til en påstand om juks.

Tenk deg:

  • 4 søsken

  • 4 lapper, men vert sitt navn i en urne

David og hans tre søsken har en familietradisjon hvor de trekker lapper for å bestemme hvem som skal ta oppvasken hver dag. Navnet som trekkes må ta oppvasken den dagen. David, som er den eldste, har ansvar for å trekke lappene. Mistanken oppstår når det ser ut som om David sjeldnere tar oppvasken sammenlignet med hans søsken.

Sannsynlighet for at Daniel trekker seg selv er en av fire. Eller \(P(Daniel)=\frac{1}{4}\).

Sannsynlighet for at Daniel ikke trekker seg selv er 3 av 4. Eller \(P(Ikke Daniel)=\frac{3}{4}\).

Hva er sannsynlighet for at Daniel ikke må ta oppvaseken - 3 dager på rad? \(P(D-ikke-3-dager)= \frac{3}{4} \cdot \frac{3}{4} \cdot \frac{3}{4} =0.42\)

Etter 3 dager er den NOEN som ikke har tatt oppvasken så at det er 42% sannsynlighet for at Danile ikke har tatt oppvasken ikke virker veldig unsannsynlig.

Men hva hvis Daniel ikke har tatt Daniel ikke tatt oppvasen på 12 dager?

\(P(D-ikke-12-dager)= (\frac{3}{4})^{12} =0.03\)

Nå er det bare 3% sannsynlig for dette utfallet. Har Daniel jukset for unngå å ta oppvasken? Hvor sikker burde vi være for å kunne påstå at dette ikke bare er tilfeldighet?

Dette er en Binominal fordeling siden vi kun ser på Daniel, er det suksess hvis han tar oppvasken og en ikke suksess hvor han ikke tar den.

La oss se på tre dager. Vi sier at \(X\) en binomisk fordeling med 3 utrekk med 25% sannsynlighet for suksess. Så hva er \(P(X=0)=?\).

# koden for å finne punkt sannsynliheten  4 er antall sukesser vi ser etter
xpbinom(0 , 
       # Antall mynter vi kaster er 10
       size = 3, 
       # Sannsynligheten for sukkess er 50/50 eller 0.5
       prob = 0.25)

[1] 0.421875

La oss se på tre dager. Vi sier at \(X\) en binomisk fordeling med 12 utrekk med 25% sannsynlighet for suksess. Så hva er \(P(X=0)=?\).

# koden for å finne punkt sannsynliheten  4 er antall sukesser vi ser etter
xpbinom(0 , 
       # Antall mynter vi kaster er 10
       size = 12, 
       # Sannsynligheten for sukkess er 50/50 eller 0.5
       prob = 0.25)

[1] 0.03167635202

Søsken starter å blir misteksom å bestemer seg for å finne ut om Daniel har jukset eller ikke. Det foreslår et lite eksperiment! De starter med å sette opp sine hypoteser.

Hypoteser

  • Nullhypotese (\(H_0\)): David jukser ikke, og sannsynligheten for at han trekker sitt eget navn er like stor som for hans søsken (\(p = 0.25\)).
    • \(H_0: p_D \geq 0.25\)
  • Alternativ hypotese (\(H_1\)): David jukser, og sannsynligheten for at han trekker sitt eget navn er mindre enn (\(p = 0.25\)).
    • \(H_1: p_D < 0.25\)

Datainnsamling

Over en periode på 100 dager tar familien notater om hvem som tar oppvasken. Det viser seg at David kun tok oppvasken 22 ganger. Vi forventet (teoretisk) at Daniel skulle blir trukket 25 ganger, men vi forventer også at det skal være litt variasjon i dataen. Men hvor sannsynelig er det at noen bare blir trukket ut 22 av 100 ganger når det skal være 25% skjanse for å bli trukket ut?

Statistisk Test

For å vurdere denne situasjonen, kan vi anvende en binomisk test for å bestemme sannsynligheten for at David ville trekke sitt eget navn 22 eller færre ganger ut av 100, gitt at sannsynligheten for å trekke sitt eget navn hver gang er 0.25.

# Binomisk test i R
 xpbinom(22,
         # trekker 100 gang
         size=100,
         # sannsynlighet for sukess (eller at Daniel må ta oppvasekn)
         prob=0.25, 
         # Vi teste større eller lik
         lower.tail = FALSE)

[1] 0.7136298856

De finner \(P(X≤22)=0.286\), Ikke en usansynlig hendelse. Hvis vi kjører dette eksperimentet «uendelig» mange ganger så forventer vi at 27% av eksperimentene vil Daniel ta oppvasken 22 eller mindre antall ganger. Kan ikke sende han til hard straffarbeid ved å rense takrenne.

Men det er mulig Daniel jukser, men bare litt….

Datainnsamling, alternativ histoire

Igjen over 100 dager, men nå tok Daniel oppvasken kun 14 av 100 dager!!!

Statistisk Test

For å vurdere denne situasjonen, kan vi anvende en binomisk test for å bestemme sannsynligheten for at David ville trekke sitt eget navn 14 eller færre ganger ut av 100, gitt at sannsynligheten for å trekke sitt eget navn hver gang er 0.25.

# Binomisk test i R
 xpbinom(14,
         # trekker 100 gang
         size=100,
         # sannsynlighet for sukess (eller at Daniel må ta oppvasekn)
         prob=0.25, 
         # Vi teste større eller lik
         lower.tail = FALSE)

[1] 0.9945792383

De finner \(P(X≤14)=0.005\), at det er en veldig liten sannsynlighet for at at det er trukket rettferdig. Her forkaster vi nullhypotesen av at Daniel ikke har jukset og aksepterer alternativs hyppotesn og sier at Daniel har jukset.

Men hva hvis Daniel ikke har jukset, da har vi gjort en feil. Denne feile er kun 0.5% sannynlig, men noen vinner lotto (nesten) hver uke.

Type I og Type II Feil

I sammenheng med vår case-studie om David og familien hans, er det viktig å forstå konseptene av Type I og Type II feil, da disse feiltypene har direkte implikasjoner på tolkningen av hypotesetestens resultater.

Det er viktig å vite at vi kan aldri vite om David er skyldig eller ikke (vi antar at han ikke tilstår). Vi kan “dømme” eller frikjenne han for å ha jukset. Vi har dermed fire mulige situasjoner.

David er uskyldig David er skyldig
Vi frikjenner David

Korrekt beslutning

Sann negativ

Falskt negativ

Type 2 feil

Vi dømmer David

Falskt positiv

Type 1 feil

Korrekt beslutning

Sann positiv

Type I Feil (Falskt Positiv)

En Type I feil oppstår når nullhypotesen ( \(H_0\) ) blir forkastet selv om den faktisk er sann. I vårt tilfelle ville dette bety at vi konkluderer med at David jukser (forkaster ( \(H_0\) ), når han faktisk ikke jukser. Sannsynligheten for å gjøre en Type I feil kalles alfa ( \(\alpha\) ), og er ofte satt til 5%. Dette betyr at vi aksepterer en 5% risiko for feilaktig å anklage David for juks.

Ofte tenker vi på en Type I feil som at en uskyldig blir dømmen. Derfor kreves det oftes mye bevis for å forkaste null hypotesen.

Type II Feil (Falskt Negativ)

En Type II feil skjer når vi ikke klarer å forkaste nullhypotesen ( \(H_0\) ) selv om den alternative hypotesen ( \(H_1\) ) (at David jukser) er sann. Dette ville i praksis bety at selv om David faktisk jukser, konkluderer vår test med at han ikke jukser. Sannsynligheten for å gjøre en Type II feil kalles beta ( \(\beta\) ), og påvirkes av testens styrke.

Ofte tenker vi på en Type II feil som at en skyldig blir sluppet fri. Det heter at det er bedre at ti skyldige går fri enn at én uskyldig blir dømt.

Vi kan beregen en type I feil, mens en Type II er ofte umulig å beregne.

Balansering av Feilene

Det er ofte et kompromiss mellom risikoen for Type I og Type II feil. Øker vi testens styrke for å redusere ( \(\beta\) ) (og dermed redusere risikoen for en Type II feil), kan det føre til en økning i ( \(\alpha\) ) (og dermed en økt risiko for en Type I feil). Det er derfor viktig å velge et balansepunkt som er passende for konteksten av problemstillingen.

Implikasjoner for David

Hvis vi konkluderer med at David jukser basert på våre tester, og han faktisk ikke gjør det, kan det ha negative konsekvenser for hans omdømme og forholdet i familien. Omvendt, hvis vi konkluderer med at han ikke jukser, men han faktisk gjør det, kunne dette urettferdig fordele husholdningsoppgaver blant de andre søsknene.

Oppsummering

Forståelsen av Type I og Type II feil er kritisk for korrekt tolkning av statistiske resultater og deres konsekvenser i virkelige scenarioer som dette. Beslutningstakere må vurdere både risikoen for og konsekvensene av disse feilene når de tolker resultater fra hypotesetester.

Beregning av Testobservatorer og p-verdi

For å evaluere hypoteser statistisk, benytter vi ulike typer tester basert på dataens natur og analysebehov. I David-eksempelet anvendte vi binomisk fordeling for å bestemme sannsynligheten for at han utfører oppvasken et bestemt antall ganger. Vi vil nå se nærmere på hvordan vi beregner testobservatorer for å utføre disse testene.

z-verdi og t-verdi

Z-verdi er nyttig når vi har store prøvestørrelser og kjente populasjonsvarianser. Dette gjør det mulig å normalisere våre resultat og sammenligne dem mot en standard normalfordeling. Så vi må normalisere dataen på en eller annen måte. Dette gjør vi med å regne ut en test observator.

t-verdi er det sammen som en z-verdi men vi kjenner ikke til det sanne standaravvike eller fordeling. Siden vi ofte ikke kjenner den sanne stadnardavvike eller fordelingen så bruker vi t verdi.

Beregning av t-verdi

t-verdien beregnes ved å ta differansen mellom prøvegjennomsnittet og nullhypotesens gjennomsnitt, delt på standardavviket av prøven, justert for prøvestørrelsen:

\[ t=\frac{\text{oversvert gjennomsnitt} - \text{null hypotese} }{\text{standard feil}}=\frac{\text{oversvert gjennomsnitt} - \text{null hypotese} }{\frac{\text{standard avvik}}{\sqrt{n} } } \] La oss ta et raskt eksempel. I datasettet for priser på boliger, kan vi si at gjennomsnitts prisen på hus i området er over 535’000 dollar? Hva er det egentlig prisen?

  • \(H_0: p \geq 535'000\)

  • \(H_1: p_D < 535'000\)

# finner gjennomsnittspris
gjenn_pris <- house_prices %>%
  summarise(gjenn_pris = mean(price, na.rm = TRUE)) %>%
  pull(gjenn_pris)
gjenn_pris
[1] 540088.1418

La oss regne ut hvor mange standardfeil fra gjennomsnittet 535’000 er fra gjennomsnittet

# finner stnadardavvik
sd_pris <- house_prices %>%
  summarise(sd_pris = sd(price, na.rm = TRUE)) %>%
  pull(sd_pris)

# finner altallet i pris
antall <- house_prices %>%
  summarise(antall = sum(!is.na(price) )) %>%
  pull(antall)


# Beregning av Z-verdi i 
t_value <- ( gjenn_pris- 535000) / (sd_pris / sqrt(antall))

t_value
[1] 2.037511985

t verdien forteller oss, hvor mange standard feil er vi unna null hypotesen. Men denne testen gir oss ikke så mye informasjon. Hva er sannsynligheten for at prisen er over 535’000?

Beregene p-verdi

Når si skal beregne en p-verdi skal vi anta at null hypotesen er korrekt. Så vi antar at gjennomsnittet vi har i null hypotese er korrekt og dataen er sentrert rundt den. Vi stiller så spørsmålet, gitt at null hypotesen er korrekt, hva er sannsynligheten til å få det gjennomsnittet vi observerte.

Gitt at nullhypotesen er korrekt og gjennomsnittet faktisk er 535’000 hva er sannsynligheten av å få en pris på 540’088 på over 21’613.

# regner ut sannsynlighetn for å finne 540'088
xpnorm(gjenn_pris, 
       # antar at prisen er 535000
       mean=535000, 
       # setter standardavvike lik standardfeilen til gjennomsnittet 
       sd = sd_pris/sqrt(antall) 
       ) 

[1] 0.9792006189

Det vi finner er sannsynligheten for å finne en gjennomsnitts pris på 540’088 eller høyereunder forutsetningen at den sanne gjennomsnittsprisen er 535’000. Her fant vi at sannsynligheten er 0.0208.

Det vi har funnet her er en p-verdi. Dette tallet er en viktig del av beslutningsprosessen for å bestemme om man skal forkaste nullhypotesen. En lav p-verdi, som er mindre enn et valgt signifikansnivå (vanligvis 0.05 eller 5%), antyder at den observerte forskjellen er statistisk signifikant, og at nullhypotesen kanskje bør forkastes.

R pakke

R er et statistikk program så den har selfølge innebygget pakke til å gjøre alt dette for oss. Dette vi foretar oss nå heter en t-test

Test <- t.test(house_prices$price, # Data
               mu=535000,                  # Null hypotese
               alternativ= "greater" ) # alternativst hypotese: "two.sided", "less", "greater"
Test$p.value
[1] 0.02080545849

Vi kan også skrive ut alt om testen.

# Vi kan plotte resultatene om vi ønsker 
Test

    One Sample t-test

data:  house_prices$price
t = 2.037512, df = 21612, p-value = 0.02080546
alternative hypothesis: true mean is greater than 535000
95 percent confidence interval:
 535980.3833         Inf
sample estimates:
  mean of x 
540088.1418 

Vi kan også plotte dette resultatet.

# Vi kan plotte resultatene om vi ønsker 
NTplot(Test)

Vi forkaster null hypotesen \(H_0\) av at gjennosnittsprisen er 535’000 eller lavere og sier at det må være høyere enn dette.

Hale test?

Når vi skal utføre en hyppotese test må vi også bedømme hvordan side av distribusjone vi er intereserte. Er vi kun inntresert om vårt fun er større enn hypotesen, kun mindre eller at den bare er forskjellig? Stort sette er vi interesert om vår hyppotese er forskellig far null. Men som over var vi kun interesert i om prisen faktisk var høyere.

Test Hale Null hypotese \(H_0\) Alternativ hypotese \(H_1\)
Alternativet er forskjellig fra null To hale test \(\mu_0 = \mu_1\) \(\mu_0 \neq \mu_1\)
Alternative er større enn null Høyre hale test \(\mu_0 \geq \mu_1\) \(\mu_0 < \mu_1\)
Alternative er mindre enn null Venstre hale test \(\mu_0 \leq \mu_1\) \(\mu_0 > \mu_1\)

Diskusjons oppgaver

  1. Jeg ønsker å vite om studentene in Sok-2009 har fått bedre karakterer i år enn i fjord? Sett opp null hypotesene og bedøm om dette er en to hale, høre hale eller venstre hale test.
  2. Når det kommer til type I og type II feil.
    1. Hva er verst når det kommer til testeing etter syktdommer?
    2. Hva er verst når det kommer til “testing” om noen skyldig for noe kriminelt?
    3. Hva er verst når det kommer til å finne terrorister?

Oppgave

Når vi gjennomførte en t-test for gjennomsnitlig hus pris var større enn 535’000. Hva skjer med p-verdien til vår test, om vi nå sier er gjennomsnittsprisen er forskjellig fra 535’000? Bytt, alternativ= “greater” til alternativ= “two.sided” og finn ut.

Typer hypotesetester

Når vi utfører hypotesetester, er det flere forskjellige statistiske tester vi kan anvende avhengig av datatypen og formålet med analysen. I dette kapittelet vil vi utforske de mest vanlige typene av hypotesetester brukt i samfunnsøkonomi og datavitenskap.

Når vi skal bedømme hviken test vi skal bruke så er de viktigste kriteriene om vi tester en gruppe mot et gitt nivå, en gruppe mot en annen gruppe eller flere grupper samtidig. Det er også viktig å vite hvordan type data vi har, vi skal hovedsakelig se på forholdstall (Kontinuerlig tall) og nominal nivå (kategorier).

T-tester

T-tester er blant de mest brukte statistiske testene for å sammenligne gjennomsnittene av to grupper. Det finnes flere varianter av t-tester, avhengig av dataenes natur og designet av studien.

Enkel sample t-test

Brukes når du vil sammenligne gjennomsnittet av en enkelt gruppe mot en kjent standard eller forventet verdi.

# Eksempel på en enkel sample t-test
Test <- t.test(house_prices$price, # Data
               mu=535000,                  # Null hypotese
               alternativ= "greater" ) # alternativst hypotese: "two.sided", "less", "greater"
Test

    One Sample t-test

data:  house_prices$price
t = 2.037512, df = 21612, p-value = 0.02080546
alternative hypothesis: true mean is greater than 535000
95 percent confidence interval:
 535980.3833         Inf
sample estimates:
  mean of x 
540088.1418 
NTplot(Test)

t-test mellom to grupper

Ofte ønsker vi å vite om det er forskjell mellom grupper. Da er nullhypotesen at det ikke er noe forskjell mellom gruppene. Alternativs hyppotesen kan være at de er forskjellig, større eller mindre.

T-test mellom to grupper bruker vi når vi har en nummerisk variabel og en kategoris variabler med to kategorier.

La oss nå se om det forskjell i pris på boliger som er nært vannet eller ikke. Vi setter opp hyppotesene.

  • $H_0: _w = _i $

  • $H_1: _w _i $

Vi sammenliker prise i de to gruppene.

house_prices %>%
  group_by(waterfront) %>%
  summarise(bolig_pris = round(
    mean(price),
    digits= 0
    ) ) %>%
  gt()
waterfront bolig_pris
FALSE 531564
TRUE 1661876
ggplot(house_prices, aes(x=waterfront, y=price))+
  geom_boxplot() +
  ggtitle("Sammenlikner pris for bolit med vannet og ikke")+
  xlab("Med vannet")+
  ylab("Pris")

Prise er over 3 gang så høy… så vi burde finne noe forsjell.

Test <- t.test(price ~ waterfront,
       data = house_prices, 
       alternativ= "two.sided" ) # alternativst hypotese: "two.sided", "less", "greater"
Test

    Welch Two Sample t-test

data:  price by waterfront
t = -12.875877, df = 162.22896, p-value < 2.2204e-16
alternative hypothesis: true difference in means between group FALSE and group TRUE is not equal to 0
95 percent confidence interval:
 -1303661.5566  -956963.2928
sample estimates:
mean in group FALSE  mean in group TRUE 
        531563.5998        1661876.0245 

Her er p-verdien så lav at r ikke gir men det er mindre enn 0.00000000000000002. Så da kan vi forkaste null hypotesen om at gjennomsnitsprise er lik for boliger med vannet og innlands, og bruke alternativs hyppotesen og si at prisen er forskjellig. I dette tilfellet er prisen for en boilg med vannet høyere enn innlands.

NTplot(Test)

Parret t-test

Brukes for å sammenligne to relaterte grupper, som før-og-etter målinger på samme subjekter.

Det er en fordel å parre data gitt at det er mulig. Dette kan for eksemeple, som under. Har det vert endring i antall personer som stemte på demokratene på county nivå. Siden vi har countiene før og etter, trenger ikke hive dem inn i en uorganisert gruppe.

load(url("https://github.com/uit-sok-2009-h22/uit-sok-2009-h22.github.io/blob/main/filer/dem_county_pres_joined.Rdata?raw=true"))
temp <- dem_presidental %>%
  mutate(diff = dem_cand_votes_12-dem_cand_votes_08)

hist(temp$diff)

t.test(dem_presidental$dem_cand_votes_08,
       dem_presidental$dem_cand_votes_12 , 
       paired = TRUE )

    Paired t-test

data:  dem_presidental$dem_cand_votes_08 and dem_presidental$dem_cand_votes_12
t = 5.7229408, df = 499, p-value = 0.00000001808104
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
  869.7391047 1779.1088953
sample estimates:
mean difference 
       1324.424 

ANOVA (Analysis of Variance)

ANOVA tester forskjeller i gjennomsnitt over mer enn to grupper. Dette er spesielt nyttig når du analyserer data med flere kategorier. Hvis det er kun to kategorier så blir den like en t-test med to grupper. Condition er en variabel som har mange grupper og sier noe om huset hvordan stand huset er i.

Anova analsyer bruker når vi har en nummerisk variabel og en kategoris variabler med mer enn to kategorier.

Igjen la oss lage et boxplot og se om det ser ut til å være forskjeller.

house_prices %>%
  group_by(condition) %>%
  summarise(bolig_pris = round(
    mean(price),
    digits= 0
    ) ) %>%
  gt()
condition bolig_pris
1 334432
2 327287
3 542013
4 521200
5 612418
ggplot(house_prices, aes(x=condition, y=price))+
  geom_boxplot() +
  ggtitle("Sammenlikner pris for bolit med vannet og ikke")+
  xlab("Med vannet")+
  ylab("Pris")+
  scale_y_log10()

Vi setter opp hypotesene vår

  • $H_0: _1 = _2 = _3 = _4 = _5 $

  • $H_1: _1 _2 _3 _4 _5 $

Fra denne testen er det hovedsakelig p-verdien vi er ute etter. Og v

# Eksempel på ANOVA
anova_resultat <- aov(house_prices$price ~ house_prices$condition )
summary(anova_resultat)
                          Df           Sum Sq       Mean Sq  F value     Pr(>F)
house_prices$condition     4   20034649192449 5008662298112 37.41154 < 2.22e-16
Residuals              21608 2892882112728850  133880142203                    
                          
house_prices$condition ***
Residuals                 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Chi-kvadrattest

Chi-kvadrattesten brukes for å undersøke om det er en signifikant forskjell i frekvensfordelingen av kategoriske variabler mellom grupper.

Chi-kvadrattesten bruker vi når vi har en eller to kategoriske variabel.

Disse testen brukes på kryss tabeller. Er det noe sammen heng mellom de to varirablene. Eller den ene.

tabell <- table(house_prices$condition, house_prices$waterfront)

tabell 
   
    FALSE  TRUE
  1    29     1
  2   171     1
  3 13940    91
  4  5629    50
  5  1681    20

Det er litt vanskelig å se om det burde være en forsjell eller ikke. La oss prøve en bar chart!

# Kaller objektet NHANES
house_prices %>%
  # Vi lager et ggplot, når vi bruker pipes trenger vi ikke spesifisere datasettet vi bruker
  ggplot(aes(x=condition, fill=waterfront)) +
  # legger til bars
  geom_bar(position = "fill") +
  # Lager en tittle til plottet
  ggtitle("Antall persjoner i forsjellige sivilstatus grupper i NHANES datasettet") +
  # Legger til navn på x-aksen
  xlab("Sivil status") +
  # Legger til navn på y-aksen
  ylab("Frekvens")

# Lager en tabell hvor kollonne summer seg til 1
round(
  prop.table(tabell,2 ),
  digits = 2
)
   
    FALSE TRUE
  1  0.00 0.01
  2  0.01 0.01
  3  0.65 0.56
  4  0.26 0.31
  5  0.08 0.12

Det ser relativ likt ut.

# Eksempel på Chi-kvadrattest
test <- chisq.test(tabell)

test

    Pearson's Chi-squared test

data:  tabell
X-squared = 10.07473, df = 4, p-value = 0.03918751

Vi kan også finne hvordan fordelingen av husen burde ha sett ut om det ikke var noe forskjell mellom gruppene.

test$expected
   
             FALSE           TRUE
  1    29.77374728   0.2262527183
  2   170.70281775   1.2971822514
  3 13925.18160366 105.8183963355
  4  5636.17036043  42.8296395688
  5  1688.17147087  12.8285291260
prop.table(test$expected,2 )
   
             FALSE           TRUE
  1 0.001388053486 0.001388053486
  2 0.007958173322 0.007958173322
  3 0.649192615555 0.649192615555
  4 0.262758524962 0.262758524962
  5 0.078702632675 0.078702632675

Hvilken test skal jeg bruke?

  1. Er det ingen kategorisk variabler og en eller to kategoriske

    1. Chi-kvadrat test
  2. Er det en nummerisk variabel

    1. Enkel sample t-test
  3. Er det en nummersik og en kategorisk?

    1. Har den kategoriske variablen kun to kategoriere?

      1. Er gruppene uavhengig?

        1. t-test mellom to grupper
      2. Er gruppen avhengig

        1. Parret t-test
    2. Har den kategoriske variaben flere enn to kattegorierer?

      1. Anova test
  4. Har du flere en to variabler du ønsker å se på?

    1. Regresjon

Oppgaver

I datasettet om hus priser. Er det noe forskjell mellom, condition på husene og antall soverom? Lag en krysstabell og gjøre en Chi-kvadrat test

#View(house_prices)

I datasettet om hus priser. Er det noe forskjell i pris på hus av condition 3 og condition 5?

I datasettet om hus priser. Kan vi si at gjennomsnittsprisen er forskjellig fra 537’000?