Tutorial di programmazione - pagina 18

 

Test della bontà di adattamento del chi quadrato in R


Test della bontà di adattamento del chi quadrato in R

Salve a tutti, nella sessione di oggi ci immergeremo nei test di bontà di adattamento utilizzando R. Lavoreremo su un paio di problemi per comprendere meglio il concetto. Se non hai familiarità con i test di bontà di adattamento, ti consiglio di guardare prima il mio video introduttivo sull'argomento (link fornito sopra).

Partiamo dal primo problema. Un college afferma che il 50% degli studenti nelle sue classi di statistica sono matricole, il 30% sono studenti del secondo anno, il 10% sono junior e il 10% sono senior. Abbiamo ottenuto un semplice campione casuale di 65 studenti e la distribuzione nel nostro campione è leggermente diversa dalle proporzioni dichiarate. Vogliamo determinare se queste differenze forniscono una forte evidenza contro l'affermazione del college o se potrebbero essere dovute a variabilità casuale.

Per eseguire il test della bontà di adattamento in R, utilizzeremo il test del chi-quadrato. Ho richiamato il file della guida per la funzione chi-quadro.test, ma per ora ci concentreremo esclusivamente sui test di adattamento.

Per prima cosa, inseriamo i nostri dati. Creeremo un vettore chiamato anni per memorizzare i conteggi osservati: 28 matricole, 24 studenti del secondo anno, 9 junior e 4 anziani.

years <- c ( 28 , 24 , 9 , 4 )

Successivamente, dobbiamo creare un vettore di proporzioni attese sotto l'ipotesi nulla. In questo caso, l'ipotesi nulla presuppone che le proporzioni dichiarate siano vere. Chiamiamo questo vettore oggetti di scena e assegniamo le proporzioni: 0,5 per le matricole, 0,3 per le seconde, 0,1 per le junior e 0,1 per le senior.

props <- c ( 0.5 , 0.3 , 0.1 , 0.1 )

Ora possiamo eseguire il test chi-quadrato utilizzando la funzione chi-quadro.test. La sintassi di base è semplice: chi.square.test(dati, p = proporzioni_previste). Ricorda di includere p = props per specificare le proporzioni previste.

result <- chi.square.test ( years , p = props )

Il test produrrà i gradi di libertà, la statistica del test chi-quadrato e il valore p. Per questo problema, abbiamo tre gradi di libertà, una statistica test chi-quadro di 3,58 e un p-value di 0,31. Questi risultati corrispondono a quanto ottenuto nel video introduttivo.

Con un valore p di 0,31, non abbiamo prove sufficienti per rifiutare l'ipotesi nulla. Pertanto, non possiamo concludere che le differenze tra la nostra distribuzione campionaria e le proporzioni dichiarate siano statisticamente significative. I dati sono compatibili con l'affermazione del collegio.

Passiamo ora al secondo problema. Abbiamo eseguito 200 lanci di un dado e la distribuzione risultante è la seguente: 28 uno, 32 due e così via. Vogliamo determinare se questa distribuzione fornisce la prova che il dado è ingiusto.

Seguiremo lo stesso processo di prima. Creiamo un vettore chiamato counts per memorizzare i conteggi osservati: 28 uno, 30 due, 22 tre, 31 quattro, 38 cinque e 51 sei.

counts <- c ( 28 , 30 , 22 , 31 , 38 , 51 )

Ora possiamo applicare direttamente il test del chi-quadrato a questi conteggi.

result <- chi.square.test ( counts )

Il test produrrà i gradi di libertà, la statistica del test chi-quadrato e il valore p. In questo caso, abbiamo cinque gradi di libertà, una statistica test chi-quadro di 15,22 e un p-value di 0,009463.

Con un valore p molto piccolo di 0,009463, abbiamo prove sufficienti per rifiutare l'ipotesi nulla. Pertanto, possiamo concludere che il dado sembra essere ponderato e non equo in base alla distribuzione osservata.

Questo conclude la nostra discussione e l'applicazione del test di bontà di adattamento del chi-quadrato utilizzando R. Ricorda, questo test ci consente di valutare la compatibilità dei dati osservati con una distribuzione prevista e di fare inferenze statistiche basate sul valore p.

 

Test del chi quadrato per l'indipendenza in R


Test del chi quadrato per l'indipendenza in R

Ciao a tutti, nel video di oggi useremo R per eseguire il test del chi quadrato per l'indipendenza delle variabili categoriali. Utilizzeremo la funzione chi-squared.test per questo scopo. Tieni presente che in questo video non tratteremo il test della bontà di adattamento, che impiega anche la stessa funzione sottostante in R. Se sei interessato a conoscere il test della bontà di adattamento, ho un video separato su quell'argomento (link fornito sopra).

Esaminiamo un problema tratto dal libro di testo OpenStax sulle statistiche introduttive. Il problema coinvolge un gruppo di volontari in cui adulti di età pari o superiore a 21 anni fanno volontariato da una a nove ore alla settimana per trascorrere del tempo con un anziano disabile. Il programma recluta volontari di tre categorie: studenti universitari della comunità, studenti universitari quadriennali e non studenti. Abbiamo una tabella di contingenza, o tabella a due vie, che mostra la distribuzione dei volontari in base a due variabili categoriche: il tipo di volontario e il numero di ore di volontariato, categorizzate da una a tre ore, da quattro a sei ore e sette a nove ore.

Ora, passiamo a R e inseriamo i dati ed eseguiamo un test del chi quadrato per determinare se queste variabili categoriali sono associate tra loro o meno.

Per inserire i dati, creeremo una matrice chiamata volontari utilizzando la funzione matrice. Inseriremo i dati per riga, da sinistra a destra, dall'alto verso il basso.

volunteers <- matrix ( c ( 111 , 96 , 48 , 96 , 133 , 61 , 91 , 150 , 53 ) , nrow = 3 , byrow = TRUE )

Successivamente, aggiungiamo nomi di riga e nomi di colonna per rendere la matrice più interpretabile.

row.names ( volunteers ) <- c ( "Community College Students" , "Four-Year College Students" , "Non-Students" ) colnames ( volunteers ) <- c ( "1-3 hours" , "4-6 hours" , "7-9 hours" )

Ora abbiamo una tabella visivamente accattivante che mostra la distribuzione dei volontari tra le diverse categorie.

Per eseguire il test del chi quadrato, utilizzeremo la funzione chi.square.test. L'assegnazione del risultato a una variabile, come model, ci consente di accedere a informazioni aggiuntive se necessario.

model <- chi.square.test ( volunteers )

Per visualizzare i risultati del test, digitare semplicemente il nome della variabile, modello.

model

L'output del test includerà la statistica del test chi quadrato, i gradi di libertà e il valore p. Per questo esempio, otteniamo una statistica del test del chi quadrato di 12,991, 2 gradi di libertà e un valore p tipicamente molto piccolo.

È importante notare che l'oggetto del modello contiene informazioni aggiuntive, ad esempio i conteggi di celle previsti ei residui. Questi possono essere consultati per ulteriori analisi, se necessario.

Un altro modo per eseguire il test del chi quadrato è convertire la matrice in una tabella e utilizzare la funzione di riepilogo.

vol_table <- as.table ( volunteers )
summary ( vol_table )

Questo approccio fornirà anche la statistica del test del chi quadrato, i gradi di libertà e il valore p.

Questo copre il processo di esecuzione del test del chi quadrato per l'indipendenza delle variabili categoriali utilizzando R. Ricorda, il test del chi quadrato ci aiuta a determinare se esiste un'associazione significativa tra due variabili categoriali in base alle frequenze osservate e previste.

Chi-Squared Testing for Independence in R
Chi-Squared Testing for Independence in R
  • 2020.12.04
  • www.youtube.com
Let's learn how to use the chisq.test() function in R to check the independence of categorical variables. If this vid helps you, please help me a tiny bit by...
 

Test di bontà di adattamento con R: esempio


Test di bontà di adattamento con R: esempio

Oggi useremo R per affrontare un problema tipico dei test di bontà di adattamento. Ecco qui:

In un campione casuale di 10 famiglie con tre bambini, la distribuzione delle ragazze era la seguente:

  • 12 famiglie non avevano ragazze
  • 31 famiglie avevano una bambina
  • 42 famiglie avevano due bambine
  • 15 famiglie avevano tre ragazze

La domanda è: è plausibile che il numero di ragazze in tali famiglie segua una distribuzione binomiale con parametri n=3 ep=0.5?

Passiamo a R, dove ho già inserito i valori osservati. Per procedere, dobbiamo calcolare i valori attesi e confrontarli con i conteggi osservati. Inizieremo con le proporzioni previste, che possono essere ottenute utilizzando la funzione dbinom in R.

Ecco le proporzioni previste per avere 0, 1, 2 o 3 ragazze in una famiglia:

  • 12,5% per 0 ragazze
  • 37,5% per 1 ragazza
  • 37,5% per 2 ragazze
  • 12,5% per 3 ragazze

Successivamente, calcoleremo i conteggi previsti moltiplicando le proporzioni previste per 100 (poiché abbiamo 100 famiglie in totale).

Ora, procediamo con due diversi approcci per risolvere questo problema. Innanzitutto, utilizzeremo la funzione chisq.test in R, che fornisce una risposta diretta calcolando la statistica del test e il p-value. Quindi, esamineremo i calcoli passo dopo passo per ottenere una comprensione più approfondita del processo.

Usando chisq.test:

observed_counts <- c ( 12 , 31 , 42 , 15 )
expected_proportions <- dbinom ( 0 : 3 , size = 3 , prob = 0.5 )
expected_counts <- expected_proportions * 100
result <- chisq.test ( observed_counts , p = expected_proportions )
p_value <- result $ p.value print ( p_value )

Il valore p ottenuto indica la probabilità di ottenere dati estremi come quelli che abbiamo osservato, assumendo che l'ipotesi nulla sia vera. In questo caso, il valore p è di circa 0,07232.

Poiché il nostro livello di significatività è stato fissato a 0,05 e il valore p è maggiore di quello, non abbiamo prove sufficienti per rifiutare l'ipotesi nulla. Possiamo concludere che il dato è coerente con l'ipotesi che il numero di ragazze in queste famiglie segua una distribuzione binomiale con parametri n=3 ep=0.5.

Ora, calcoliamo manualmente la statistica del test del chi quadrato per comprendere meglio il processo:

chi_stat <- sum ( ( observed_counts - expected_counts ) ^ 2 / expected_counts )
degrees_of_freedom <- length ( observed_counts ) - 1
p_value_manual <- 1 - pchisq ( chi_stat , df = degrees_of_freedom )
print ( p_value_manual )

Il valore p calcolato manualmente corrisponde al risultato ottenuto utilizzando chisq.test, confermando la nostra precedente scoperta di circa 0,07232.

In sintesi, entrambi gli approcci portano alla stessa conclusione: i dati sono coerenti con l'ipotesi nulla che il numero di ragazze in queste famiglie segua una distribuzione binomiale con parametri n=3 ep=0.5.

Goodness of fit testing with R: example
Goodness of fit testing with R: example
  • 2023.01.04
  • www.youtube.com
Is it plausible that a categorical variable was sampled from a particular distribution?If this vid helps you, please help me a tiny bit by mashing that 'like...
 

Test di correlazione in R


Test di correlazione in R

Ciao a tutti! Oggi parleremo dei test di correlazione. Userò R per questa dimostrazione, ma i concetti che tratteremo sono applicabili universalmente, indipendentemente dal tuo ambiente di lavoro. Quindi, resta anche se stai usando un software diverso.

Per questo esempio, userò il set di dati del college dal pacchetto islr2. Ho già caricato il set di dati e impostato il tema al minimo utilizzando il pacchetto titiverse. Se sei interessato a un'analisi dettagliata del set di dati del college, ho un collegamento video nella descrizione.

Il set di dati del college è composto da 777 osservazioni, ciascuna delle quali rappresenta un college dal 1995. Contiene varie variabili come la designazione pubblica o privata, l'iscrizione universitaria a tempo pieno e il tasso di laurea.

Il nostro obiettivo sarà determinare se esiste una correlazione statisticamente significativa tra il logaritmo delle iscrizioni universitarie a tempo pieno e il tasso di laurea nelle università pubbliche. Vogliamo sapere se questa apparente relazione è probabilmente dovuta al caso o se si tratta di una tendenza significativa a cui dovremmo prestare attenzione.

Per iniziare, ho creato un grafico a dispersione utilizzando ggplot, con il tasso di laurea sull'asse y e il logaritmo dell'iscrizione universitaria a tempo pieno sull'asse x. Ho anche filtrato le scuole private, quindi analizziamo solo i college pubblici.

Ora, affrontiamo il logaritmo. Non lasciarti intimidire da esso; ci aiuta semplicemente a interpretare la scala dei dati. In questo caso, stiamo usando un logaritmo in base 10, che ci dice il numero di zeri alla fine di un valore. Ad esempio, 3.0 su una scala logaritmica è 10^3, che è 1.000. Prendendo il logaritmo, otteniamo una diffusione più uniforme e una relazione approssimativamente lineare tra le variabili.

La correlazione misura la forza di una relazione generalmente lineare tra due variabili quantitative. In questo caso, abbiamo una correlazione positiva di circa 0,22, che indica che all'aumentare delle iscrizioni agli studenti universitari a tempo pieno, anche il tasso di laurea tende ad aumentare. Questa relazione positiva tra le dimensioni del college e il tasso di conseguimento dei diplomi può sembrare sorprendente, ma vale la pena approfondire ulteriormente.

La correlazione è relativamente debole, poiché le correlazioni vanno da -1 a 1. Una correlazione di -1 rappresenta una perfetta relazione negativa, mentre una correlazione di 1 rappresenta una perfetta relazione positiva.

Ora, conduciamo un test di correlazione in R per determinare se questa correlazione è statisticamente significativa. La sintassi per l'esecuzione di un test di correlazione è simile al calcolo della correlazione. Utilizzando la funzione cor.test con le due variabili di interesse, otteniamo la correlazione e informazioni aggiuntive.

In questo caso, i risultati del test forniscono un valore p di 0,001, il che suggerisce che se non ci fosse alcuna correlazione tra queste variabili nella popolazione, la correlazione osservata si verificherebbe per caso solo circa lo 0,1% delle volte. Una probabilità così bassa indica che la correlazione che abbiamo osservato è statisticamente significativa e possiamo concludere che esiste una correlazione tra il logaritmo dell'iscrizione universitaria a tempo pieno e il tasso di laurea nelle università pubbliche.

Ora, approfondiamo un po' il test stesso. Esamina se la correlazione osservata nei dati del campione possa essere ragionevolmente attribuita al caso casuale. Il test presuppone una relazione lineare tra le variabili e l'indipendenza delle osservazioni, rendendolo inadatto per i dati delle serie temporali. Inoltre, presuppone che i dati seguano una distribuzione normale bivariata, ma le deviazioni dalla perfetta normalità sono generalmente accettabili.

È importante notare che questo test di correlazione verifica specificamente l'ipotesi nulla che la correlazione della popolazione sia zero. Non può essere utilizzato per testare correlazioni diverse da zero.

Sotto il cofano, il test utilizza una statistica di test chiamata R, calcolata come correlazione campionaria osservata. Questa statistica segue una distribuzione t di Student con n-2 gradi di libertà, assumendo l'ipotesi nulla di correlazione zero. I gradi di libertà, indicati come n-2, dipendono dalla dimensione del campione (n) e sono determinati dal numero di osservazioni indipendenti disponibili per la stima.

Il test fornisce anche un intervallo di confidenza per la correlazione della popolazione. In questo caso, l'intervallo di confidenza al 95% va da 0,087 a 0,354. Questo intervallo ci fornisce un intervallo di valori plausibili per la correlazione della popolazione in base ai nostri dati campione. Poiché l'intervallo non include lo zero, possiamo dedurre che è probabile che la correlazione della popolazione sia positiva.

Vale la pena notare che la correlazione non implica causalità. Solo perché osserviamo una correlazione tra due variabili non significa che una variabile stia causando il cambiamento dell'altra. La correlazione indica semplicemente una relazione tra le variabili, ma sono necessarie ulteriori ricerche e analisi per stabilire la causalità.

Per visualizzare la correlazione, possiamo aggiungere una linea di regressione al nostro grafico a dispersione. La linea di regressione rappresenta la linea più adatta attraverso i punti dati, indicando la tendenza generale della relazione. Usando la funzione geom_smooth in ggplot con l'argomento method = "lm", possiamo aggiungere una linea di regressione al nostro grafico.

Ora possiamo vedere la linea di regressione adattata ai punti dati. Fornisce una rappresentazione visiva della relazione positiva tra il logaritmo delle iscrizioni universitarie a tempo pieno e il tasso di laureati nelle università pubbliche.

In sintesi, abbiamo condotto un test di correlazione per determinare se esiste una relazione statisticamente significativa tra il logaritmo delle iscrizioni universitarie a tempo pieno e il tasso di laurea nelle università pubbliche. I risultati del test hanno indicato una correlazione positiva con un valore p di 0,001, suggerendo una relazione significativa. Tuttavia, ricorda che la correlazione non implica causalità e sono necessarie ulteriori analisi per stabilire relazioni causali.

Il test di correlazione è uno strumento prezioso nell'analisi statistica, che ci consente di esplorare le relazioni tra variabili e identificare potenziali tendenze o associazioni. Ci aiuta a prendere decisioni informate e a trarre conclusioni significative sulla base dei dati.

Correlation testing in R
Correlation testing in R
  • 2023.03.29
  • www.youtube.com
Does a sample correlation imply a population correlation, or could the observed data just be due to random chance? Let's get into it!If this vid helps you, p...
Motivazione: