Springen naar inhoud

Help statistiek met r


  • Log in om te kunnen reageren

#1

nhl

    nhl


  • >100 berichten
  • 111 berichten
  • Ervaren gebruiker

Geplaatst op 31 mei 2011 - 18:17

Hallo allen,

Kunnen jullie mij helpen met het beantwoorden van de volgende vragen s.v.p. Ik heb nog zeer weinig tijd hiervoor en ik kom er totaal niet uit!.

==================================================
In this exercise we illustrate with simulated samples the concepts ‘probability of a type I
error’ and ‘power’. For this we consider samples from two different normal distributions:
an N(0, 1) distribution, and an N(m, 1) distribution, for some m 6= 0.


Vraag (1)
We first investigate the case m = 1. Generate a sample x of size 10 from N(0, 1)
and a sample y of size 10 from N(1, 1). Test, as if you know that the underlying
distribution is normal but do not know its location and standard deviation, with
a t-test the null hypothesis that the expectation of the underlying distribution of
x is equal to 0 against the alternative that this is not the case. Take significance
level 5%. Do the same for the sample y. Do all this 100 times. How many of the
100 times was the null hypothesis rejected for x and how many times for y?


Vraag (2)
How many of the 100 times would you have expected based on the theory that the
null hypothesis should have been rejected for x and for y?

Vraag (3)
Repeat part 1 with samples of size 50, 100, 500.

Vraag (4)
Now investigate different values for m, for example m = 0.1, 0.5, 2, 5.

Vraag (5)
Do you see a global pattern in the results of the parts b,d,e? Is this what you
would expect based on the theory?

Vraag (6)
From all the above, what could you say in general for this t-test about the relationship
between
- sample size and ‘probability of a type I error’,
- sample size and ‘power’,
- m and ‘probability of a type I error’,
- m and ‘power’?



Mocht iemand idee hebben graag laat me weten zo snel mogelijk a.u.b.

Zeer dank en mvg,
Rob

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Drieske

    Drieske


  • >5k berichten
  • 10217 berichten
  • Moderator

Geplaatst op 31 mei 2011 - 20:15

Ik wil je wel helpen, maar wat heb je zelf al gedaan? Hoe maak je bijv een steekproef van grootte 10 uit de standaardnormale verdeling? Dat is in R een vrij simpel commando lijkt me. Eens je dit weet: hoe test je dan of deze steekproef een gemiddelde van 0 heeft? Beantwoord eerst deze vragen en dan kunnen we gaan kijken naar de rest...

Eens je het antwoord op deze vragen hebt, is het niet meer zo heel moeilijk om de rest te doen. Twee heeft zelfs niets met R te maken en kun je normaal ook zo beredeneren/beantwoorden ;).

Veranderd door Drieske, 31 mei 2011 - 20:18

Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.

#3

TD

    TD


  • >5k berichten
  • 24052 berichten
  • VIP

Geplaatst op 01 juni 2011 - 09:15

Verplaatst naar statistiek.
"Malgré moi, l'infini me tourmente." (Alfred de Musset)

#4

nhl

    nhl


  • >100 berichten
  • 111 berichten
  • Ervaren gebruiker

Geplaatst op 01 juni 2011 - 09:21

Ik wil je wel helpen, maar wat heb je zelf al gedaan? Hoe maak je bijv een steekproef van grootte 10 uit de standaardnormale verdeling? Dat is in R een vrij simpel commando lijkt me. Eens je dit weet: hoe test je dan of deze steekproef een gemiddelde van 0 heeft? Beantwoord eerst deze vragen en dan kunnen we gaan kijken naar de rest...

Eens je het antwoord op deze vragen hebt, is het niet meer zo heel moeilijk om de rest te doen. Twee heeft zelfs niets met R te maken en kun je normaal ook zo beredeneren/beantwoorden ;).



Beste Drieske,

Dank je voor het uitleg.

Een steekproef van grootte 10:

> x <- c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.10)
> length(x)
[1] 10

> mean(x)
[1] 0.46

Het heeft een 0.46 average. Is dit goed of toch niet?

Als je mij wilt helpen dan ben ik je eeuwig dankbaar :P, want ik heb nog een weekje te gaan om deze opdracht en nog een paar in te leveren.

Mvg,

Veranderd door nhl, 01 juni 2011 - 09:27


#5

Drieske

    Drieske


  • >5k berichten
  • 10217 berichten
  • Moderator

Geplaatst op 01 juni 2011 - 10:08

Beste Drieske,

Dank je voor het uitleg.

Een steekproef van grootte 10:

> x <- c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.10)
> length(x)
[1] 10

> mean(x)
[1] 0.46

Het heeft een 0.46 average. Is dit goed of toch niet?

Als je mij wilt helpen dan ben ik je eeuwig dankbaar ;), want ik heb nog een weekje te gaan om deze opdracht en nog een paar in te leveren.

Mvg,

Dit is een steekproef inderdaad. Maar niet uit de standaardnormale verdeling hè... Hiervoor heeft R het commando rnorm. Dit commando moet je gebruiken om iets uit de normale verdeling te genereren. Bijv
rnorm(5, 1, 3)
genereert 5 getallen uit N(1, 9) (want R werkt met standaarddeviatie). Indien je trekking nu idd uit deze verdeling komt, zou je willen dat het gemiddelde van deze 5 getallen ongeveer 1 is... Maar dit wil je wel formeler kunnen testen uiteraard... Enig idee hoe? Een hint staat reeds in je opgave :P.
Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.

#6

nhl

    nhl


  • >100 berichten
  • 111 berichten
  • Ervaren gebruiker

Geplaatst op 01 juni 2011 - 15:54

Dit is een steekproef inderdaad. Maar niet uit de standaardnormale verdeling hè... Hiervoor heeft R het commando rnorm. Dit commando moet je gebruiken om iets uit de normale verdeling te genereren. Bijv
rnorm(5, 1, 3)
genereert 5 getallen uit N(1, 9) (want R werkt met standaarddeviatie). Indien je trekking nu idd uit deze verdeling komt, zou je willen dat het gemiddelde van deze 5 getallen ongeveer 1 is... Maar dit wil je wel formeler kunnen testen uiteraard... Enig idee hoe? Een hint staat reeds in je opgave :P.



Hi ;),

Wordt met de significance-level de confidence-level bedoeld?

Ik ben beetje bekend met de for loops meer in Java, maar zoiets moet het gebeuren denk ik?:
for (i in 1:100)
{
t.test(x, conf.level=0.1)
}


Maar hoe voer je deze uit in R?.

groetjes,

#7

Drieske

    Drieske


  • >5k berichten
  • 10217 berichten
  • Moderator

Geplaatst op 01 juni 2011 - 16:13

Hi ;),

Wordt met de significance-level de confidence-level bedoeld?

Ik ben beetje bekend met de for loops meer in Java, maar zoiets moet het gebeuren denk ik?:
for (i in 1:100)
{
t.test(x, conf.level=0.1)
}


Maar hoe voer je deze uit in R?.

groetjes,


Het significantieniveau is 1 - aanvaardingsniveau (of hoe da ook in het nederlands is). Stel dat je een 95% betrouwbaarheidsinterval wilt opstellen, dan is het significantieniveau 5%...

Dan ivm je foor-lop...

in het geval van 1 steekproef heb je iets à la:

x <- rnorm(10, 0, 1)

t.test(x)

Nu zou je graag uw p-waarde hieruit halen. Dit doe je via het commando

t.test(x)$p.value

Nu moet je die waarde vergelijken met jouw niveau. Wanneer verwerp je dan H0?

Indien we het geval van 1 steekproef goed snappen, zullen we overgaan op 2 of meer.

Veranderd door Drieske, 01 juni 2011 - 16:14

Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.

#8

nhl

    nhl


  • >100 berichten
  • 111 berichten
  • Ervaren gebruiker

Geplaatst op 01 juni 2011 - 17:10

Het significantieniveau is 1 - aanvaardingsniveau (of hoe da ook in het nederlands is). Stel dat je een 95% betrouwbaarheidsinterval wilt opstellen, dan is het significantieniveau 5%...

Dan ivm je foor-lop...

in het geval van 1 steekproef heb je iets à la:

x <- rnorm(10, 0, 1)

t.test(x)

Nu zou je graag uw p-waarde hieruit halen. Dit doe je via het commando

t.test(x)$p.value

Nu moet je die waarde vergelijken met jouw niveau. Wanneer verwerp je dan H0?

Indien we het geval van 1 steekproef goed snappen, zullen we overgaan op 2 of meer.


Hello ;),

Yup. Ik snap het heel goed. Dank daarvoor!.
Je verwerpt H0 als de P kleiner is dan de significantie-niveau.

P = 0.6852904
Significantie-niveau = 0.10

0.6852904 < 0.10

Dus we verwerpen we de H0 en we accepteren de Ha.

Is dit correct?

#9

Drieske

    Drieske


  • >5k berichten
  • 10217 berichten
  • Moderator

Geplaatst op 01 juni 2011 - 17:18

Hello ;),

Yup. Ik snap het heel goed. Dank daarvoor!.
Je verwerpt H0 als de P kleiner is dan de significantie-niveau.

P = 0.6852904
Significantie-niveau = 0.10

0.6852904 < 0.10

Dus we verwerpen we de H0 en we accepteren de Ha.

Is dit correct?

Als je een typfout hebt gemaakt en je bedoelt P = 0,068... wel :P. Anders is P uiteraard groter dan 0,1 hè... Maar je begrijpt het wel denk ik.

Okee. Dit is nu indien je leest wat er op je scherm staat. Uiteraard kan een computer niet "lezen wat er staat". Hij kan wel, met wat hulp van ons, interpreteren. Dus bijv door 2 integers aan te maken, bijv,
aanvaard_x <- 0
verwerp_x <- 0
Het idee is nu om indien je een hypothese aanvaardt, de teller aanvaard_x met 1 verhoogt. Anders verwerp_x. Iets analoogs doe je voor de y-trekking... Dit kun je met een if-else constructie. Ken je deze? Zoja, geef dan nu eens de volledige code voor 1 steekproef.

Zie je nu de veralgemening naar 2 of meer trekkingen komen?

PS: Deze manier van werken is maar één mogelijke manier. Zeker niet (of niet per se) de beste, maar wel goed begrijpbaar denk ik...
Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.

#10

nhl

    nhl


  • >100 berichten
  • 111 berichten
  • Ervaren gebruiker

Geplaatst op 01 juni 2011 - 17:30

Als je een typfout hebt gemaakt en je bedoelt P = 0,068... wel ;). Anders is P uiteraard groter dan 0,1 hè... Maar je begrijpt het wel denk ik.

Okee. Dit is nu indien je leest wat er op je scherm staat. Uiteraard kan een computer niet "lezen wat er staat". Hij kan wel, met wat hulp van ons, interpreteren. Dus bijv door 2 integers aan te maken, bijv,
aanvaard_x <- 0
verwerp_x <- 0
Het idee is nu om indien je een hypothese aanvaardt, de teller aanvaard_x met 1 verhoogt. Anders verwerp_x. Iets analoogs doe je voor de y-trekking... Dit kun je met een if-else constructie. Ken je deze? Zoja, geef dan nu eens de volledige code voor 1 steekproef.

Zie je nu de veralgemening naar 2 of meer trekkingen komen?

PS: Deze manier van werken is maar één mogelijke manier. Zeker niet (of niet per se) de beste, maar wel goed begrijpbaar denk ik...


Heel erg duidelijk hoor!, dank jewel. Mijn code ziet er zo uit.

/* Variabelen */
aanvaard_x <- 0;
verwerp_x <- 0;
sigma = 0.1;

/* Uitvoer */
if (t.test(x)$p.value < sigma) {
verwerp_x = verwerp_x + 1;
} else {
aanvaard_x = aanvaard_x - 1;
}

zit ik op het goeie pad?

#11

Drieske

    Drieske


  • >5k berichten
  • 10217 berichten
  • Moderator

Geplaatst op 01 juni 2011 - 18:05

Je zit op het goeie pad ja, maar paar kleine opmerkingen aan je code:

/* Variabelen */
aanvaard_x <- 0;
verwerp_x <- 0;
alpha <- 0.1;
sigma <- 1;
mu <- 0
n <- 10

x <- rnorm(n, mu, sigma)
pwaarde <- t.test(x)$p.value

/* Uitvoer */
if (pwaarde< alpha) {
verwerp_x = verwerp_x + 1;
} else {
aanvaard_x = aanvaard_x + 1;
}

Zo is ze makkelijker aanpasbaar voor straks :P. Zie je nu een mogelijkheid tot veralgemening? Ook vond ik dat je je niveau met sigma aanduidde vrij verwarrend werken ;). Heb daar alpha van gemaakt nu...

En ik veronderstel dat "aanvaard_x = aanvaard_x MIN 1" een typfout was?

PS nu ik erover denk is eigelijk het tellen van verwerpen én aanvaarden overbodig. Immers: eens je weet hoe vaak je verwerpt, weet je ook hoe vaak je aanvaardt. Dit is niet meteen essentieel maar toch...

PPS je weet dat in de opgave staat dat je moet testen op niveau 5%?

Veranderd door Drieske, 01 juni 2011 - 18:19

Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.

#12

nhl

    nhl


  • >100 berichten
  • 111 berichten
  • Ervaren gebruiker

Geplaatst op 01 juni 2011 - 18:21

Je zit op het goeie pad ja, maar paar kleine opmerkingen aan je code:

/* Variabelen */
aanvaard_x <- 0;
verwerp_x <- 0;
alpha <- 0.1;
sigma <- 1;
mu <- 0
n <- 10

x <- rnorm(n, mu sigma)
pwaarde <- t.test(x)$p.value

/* Uitvoer */
if (pwaarde< alpha) {
verwerp_x = verwerp_x + 1;
} else {
aanvaard_x = aanvaard_x + 1;
}

Zo is ze makkelijker aanpasbaar voor straks ;). Zie je nu een mogelijkheid tot veralgemening? Ook vond ik dat je je niveau met sigma aanduidde vrij verwarrend werken :P. Heb daar alpha van gemaakt nu...

En ik veronderstel dat "aanvaard_x = aanvaard_x MIN 1" een typfout was?

PS nu ik erover denk is eigelijk het tellen van verwerpen én aanvaarden overbodig. Immers: eens je weet hoe vaak je verwerpt, weet je ook hoe vaak je aanvaardt. Dit is niet meteen essentieel maar toch...


Thnx :P.

Je was nog een comma-tje achter de mu in de functie rnorm vergeten te plaatsten :P, maar het tellen van verwerpen en aanvaarden is toch nodig indien je gaat werken met de for loopje of zie ik het verkeerd?

Werken met een steekproef en een keer checken is dan wel overbodig, maar werken met een steekproef en meerdere malen loop-en is toch wel handig vind ik?, of zie ik het verkeerd?

#13

Drieske

    Drieske


  • >5k berichten
  • 10217 berichten
  • Moderator

Geplaatst op 01 juni 2011 - 18:25

Thnx ;).

Je was nog een comma-tje achter de mu in de functie rnorm vergeten te plaatsten :P, maar het tellen van verwerpen en aanvaarden is toch nodig indien je gaat werken met de for loopje of zie ik het verkeerd?

Werken met een steekproef en een keer checken is dan wel overbodig, maar werken met een steekproef en meerdere malen loop-en is toch wel handig vind ik?, of zie ik het verkeerd?

Ik bedoel niet dat je niet moet checken... Ik bedoel dat én verwerpen én aanvaarden checken overbodig is...

De code wordt dan:

verwerp_x <- 0;
alpha <- 0.1;
sigma <- 1;
mu <- 0
n <- 10

x <- rnorm(n, mu, sigma)
pwaarde <- t.test(x)$p.value

/* Uitvoer */
if (pwaarde< alpha) {
verwerp_x = verwerp_x + 1;
}


Zelfs met meerdere steekproeven zal dit nog genoeg blijken :P. Maar als je u beter voelt het aanvaard_x erbij, laat je dat er maar bij hoor! Kun je nu een aanzet geven tot hoe je code eruit moet zien voor meerdere steekproeven?

Veranderd door Drieske, 01 juni 2011 - 18:29

Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.

#14

nhl

    nhl


  • >100 berichten
  • 111 berichten
  • Ervaren gebruiker

Geplaatst op 02 juni 2011 - 10:20

Ik bedoel niet dat je niet moet checken... Ik bedoel dat én verwerpen én aanvaarden checken overbodig is...

De code wordt dan:

verwerp_x <- 0;
alpha <- 0.1;
sigma <- 1;
mu <- 0
n <- 10

x <- rnorm(n, mu, sigma)
pwaarde <- t.test(x)$p.value

/* Uitvoer */
if (pwaarde< alpha) {
verwerp_x = verwerp_x + 1;
}


Zelfs met meerdere steekproeven zal dit nog genoeg blijken ;). Maar als je u beter voelt het aanvaard_x erbij, laat je dat er maar bij hoor! Kun je nu een aanzet geven tot hoe je code eruit moet zien voor meerdere steekproeven?



Hi :P.

Helemaal duidelijk!. Ik denk dat de code om twee steekproeven X en Y te laten calculeren is als volgt????

verwerp_x <- 0;
verwerp_y <- 0;
alpha <- 0.1;
sigma <- 1;
mu <- 0;
n <- 10;

x <- rnorm(n, mu, sigma);
pwaarde_x <- t.test(x)$p.value;

y <- rnorm(n, mu+1, sigma);
pwaarde_y <- t.test(y)$p.value;

if (pwaarde_x < alpha)
{
verwerp_x = verwerp_x + 1;
}

if (pwaarde_y < alpha)
{
verwerp_y = verwerp_y + 1;
}


Het kan beter toch, want ik weet er weinig van.

groetjes,

#15

Drieske

    Drieske


  • >5k berichten
  • 10217 berichten
  • Moderator

Geplaatst op 02 juni 2011 - 10:37

Dat is je code voor één steekproef uit de X-verdeling en één steekproef uit de Y-verdeling. Al kan die nog net dat mooier... Daarom zet ik ze hieronder nog es met een paar aanpassingen:
verwerp_x <- 0;
verwerp_y <- 0;
alpha <- 0.1;
sigma_x <- 1;
sigma_y <- 1;
mu_x <- 0;
mu_y <- 1
n <- 10;

x <- rnorm(n, mu_x, sigma_x);
pwaarde_x <- t.test(x)$p.value;

y <- rnorm(n, mu_y, sigma_y);
pwaarde_y <- t.test(y)$p.value;

if (pwaarde_x < alpha) 
{
 verwerp_x = verwerp_x + 1;
}

if (pwaarde_y < alpha) 
{
 verwerp_y = verwerp_y + 1;
}

Maar dit is dus nog steeds geen code voor meerdere steekproeven. Dit zul je moeten doen met een for-loop. Om het simpel te houden: probeer iets te schrijven om 2 keer een steekproef te trekken uit de X-verdeling. Nog geen test ofzo. Gewoon 2x een random steekproef genereren.
Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures