>>>>>

Scheda 2 - Misure di probabilità, variabili casuali e leggi di distribuzione

8. Suggerimenti e risposte ai quesiti

2

  (A) Si ottiene (vedi uscite a lato) che la percentuale di ventenni nel 1990 con altezza minore di 183 è compresa tra 86.9 e 86.95, cioè è arrotondabile a 86.9. La probabilità cercata è quindi 86.9%. Per il calcolo dei percentili vedi commenti al ques. 10 di Sch. 1

  86.9% :   182.9877
  86.95% :  183.004

 (B) A questo punto possiamo tener conto che l'intervallo [183,∞) è il complementare dell'intervallo [0,183), di cui abbiamo appena calcolato le frequenze relative, rispetto a [0,∞), cioè rispetto all'insieme dei numeri non negativi, con cui vengono rappresentate le lunghezze. Facendo la differenza delle frequenze da 1 (=100%) otteniamo le probabilità cercate: Pr(H1>183) = 1 – 98.7% = 1.3%, Pr(H2>183) = 1 – 86.9% = 13.1%. Come si vede, nell'arco di 40 anni, la probabilità che arrivi un cliente giovane con altezza maggiore o uguale a 183 cm si è all'incirca moltiplicata per 10; prima circa 1 cliente su 100 era così alto, ora circa 13 clienti su 100 sono così alti. A questo punto il mobilificio deve valutare, anche sulla base di considerazioni economiche, tecniche, …, se e come modificare il formato dei suoi letti matrimoniali.

Torna al punto 2

3
 

(1)  Puoi aprire QBasic dalla finestra a sinistra di questa (clicca su Software e poi su QBasic), in cui trovi anche istruzioni per una eventuale installazione del QBasic.

Se hai scaricato sul computer la cartella AGPR puoi aprire TabVer.bas dalla sottocartella BAS: aziona Apri/Open (a seconda della versione, Italiana/Inglese) dal menu File (con il mouse o con i tasti Alt+F e A/O).
    Altrimenti puoi aprire il file cliccando sul link presente nel testo dell'esercizio, selezionarne-copiarne il contenuto e incollarlo nella finestra di lista del QBasic nel modo illustrato a fianco (controlla che tutto si sia incollato bene); se sulla finestra di lista fosse visualizzato un programma precedente, usa prima New dal menu File.
    Per eseguire il programma aziono Avvia/Start dal menu Esegui/Run.
    Per altre informazioni sul QBasic rinviamo a Gli Oggetti Matematici; comunque è facile districarsi da soli (basta, usando il Qbasic, osservare sempre la barra di riferimento e tener conto delle indicazioni ivi fornite, e, se lo si è installato sul proprio computer, usare l'help).

Nota. Nel caso dei programmi considerati in questo materiale, il copia/incolla nella finestra del QBasic nel modo sopra illustrato funziona sempre. Ma si tenga presente che se il documento incollato contiene dei punti questi potrebbero non essere copiati, mentre se contiene degli spazi all'inizio di una riga questi verrebbero riprodotti anche nelle righe successive (questo è il motivo per cui nei programmi qui presenti abbiamo evitato di inserire spazi bianchi all'inizio di righe di programma; al posto dei punti decimali abbiamo usato la notazione esponenziale o delle frazioni; al posto del carattere punto all'interno di stringhe abbiamo usato la funzione chr$ con la codifica ascii di ".").

(2)  Il testo del programma è: 

[1]    PRINT " vero = "; 0=0  
[2]    PRINT "falso = "; 0=1
[3]    PRINT
[4]    PRINT "A B   A OR B"
[5]    FOR A=-1 TO 0
[6]    FOR B=-1 TO 0
[7]    PRINT A; B, A OR B
[8]    NEXT : NEXT
[9]    PRINT
[10]   PRINT "A B   A XOR B"
[11]   FOR A=-1 TO 0
[12]   FOR B=-1 TO 0
[13]   PRINT A; B, A XOR B
[14]   NEXT : NEXT
[15]  

(abbiamo indicato tra parentesi quadre il n° d'ordine delle righe per facilitare il commento)

 Come si vede confrontando le righe [1] e [2] con le uscite del programma, questo linguaggio codifica con –1/0 rispettivamente la verità/falsità di una condizione: 0=0 per il Qbasic vale –1, 0=1 vale 0.

    Le condizioni (o relazioni o termini booleani o …) vengono interpretate numericamente e i connettivi OR, AND, … (o operatori logici o op. booleani) operano come particolari operazioni aritmetiche (vedi Gli Oggetti Matematici).

    Il primo doppio ciclo FOR-NEXT visualizza la tabella di verità del connettivo OR (condizione1 OR condizione2 è falsa unicamente nel caso in cui sia condizione1 che condizione2 sono false). Il secondo doppio ciclo FOR-NEXT visualizza la tabella del connettivo XOR (condizione1 XOR condizione2 è vera unicamente nel caso in cui una sola tra condizione1 e condizione2 sia vera).

    Devo aggiungere un doppio ciclo uguale al precedente, con AND al posto di XOR. Posiziono il mouse all'inizio della riga [9] e lo trascino con il pulsante (sinistro) premuto fino all'inizio di [14]; le righe da [9] a [14] appaiono "selezionate", cioè evidenziate in negativo. Senza mouse posso selezionare le stesse righe posizionando con i tasti-freccia il cursore all'inizio di [9] e, tenendo premuto il tasto Shift (o Maius), azionare il tasto-freccia-in-giù fino all'inizio di [14].

    Dal menu Edit (Modifica, nella versione italiana) aziono Copia. Quindi posiziono il cursore all'inizio di [15] (con i tasti-freccia o spostandovi il "puntatore" del mouse e "cliccando" il pulsante); quindi aziono Paste/Incolla dal menu Edit/Modifica. Infine (con il mouse o con le frecce direzionali) mi sposto a destra di XOR, con il tasto ritorno-unitario [|<——] cancello XOR e al suo posto batto AND.

[15]  PRINT
[16]  PRINT " A B A AND B"
[17]  FOR A=-1 TO 0
[18]  FOR B=-1 TO 0
[19]   PRINT A;B,A AND B
[20]  NEXT : NEXT
[21]  PRINT
[22]  PRINT " A NOT A"
[23]  FOR A=-1 TO 0
[24]   PRINT A, NOT A
[25]  NEXT

  Per il NOT basta posizionarsi nella riga seguente (21), riazionare Incolla, cancellare (selzionandola e poi premendo il tasto ritorno-unitario) la riga "FOR B= …", modificare (spostandosi con le frecce direzionali, cancellando con ritorno-unitario e ribattendo) le altre righe (22-25) nel modo illustrato a lato.

Nota:  • se, quando uscirai da QBasic, comparirà la domanda se vuoi registrare ("save" in inglese) le modifiche, rispondi "no" (a meno che non voglia memorizzare con qualche nome il programma da te modificato); se vuoi scrivere o incollare un nuovo programma, ti conviene scegliere New dal menu File piuttosto che cancellare tutto il contenuto della finestra di lista.

(3)  Nella frase "se prendi l'ascensore e sali al 5° piano trovi subito l'ufficio 54" "e", a differenza di AND, non è commutativo: la frase "se sali al 5° piano e prendi l'ascensore trovi subito l'ufficio 54" ha un diverso significato. Nel linguaggio comune è il contesto che, in genere, fa comprendere il significato che assumono i connettivi; per un altro esempio si pensi alla frasi "se x è minore di 1 e positivo, allora 1/x è maggiore di 1" e "se la maglia è gialla e rossa, allora la squadra è la Roma"; l'ipotesi nella prima frase equivale a "x<1 and x>0", mentre nella seconda non equivale a "la maglia è gialla and la maglia è rossa".

    Per un esempio relativo a "o" si pensi a "se sei italiano o sei europeo è sufficiente la carta d'identità" e a "se noleggi una Tipo o noleggi una Golf spendi 150 mila lire"; nel primo caso l'"o" viene inteso come OR, nel secondo come XOR. I due connettivi or e xor vengono chiamati anche "o inclusivo" e "o esclusivo".

    Ricordiamo che una condizione del tipo A and B viene chiamata "congiunzione", una condizione del tipo A or B viene chiamata "disgiunzione inclusiva" (o, a volte, solo "disgiunzione"), una del tipo A xor B viene chiamata "disgiunzione esclusiva".

    Nei linguaggi di programmazione sono presenti anche altri connettivi. Ad es. in QBasic abbiamo anche IMP (implicazione: "se A allora B", da intendersi falsa solamente nel caso in cui A sia vera e B falsa) e EQV (equivalenza: "A se e solo se B", da intendersi vera solamente nel caso in cui A e B siano entrambe vere o entrambe false). Nel directory Bas è presente il programma TabVer2.bas che esemplifica l'uso di EQV per verificare l'equivalenza di alcune condizioni:

' Verifica di equivalenze logiche
PRINT
PRINT
TAB(2) "A" TAB(5) "B";
PRINT TAB(20) "(A OR B) EQV (B OR (A AND NOT B))"
FOR A = -1 TO 0
FOR B = -1 TO 0
PRINT A TAB(4) B;
PRINT TAB(25) (A OR B) EQV (B OR (A AND NOT B))
NEXT: NEXT
PRINT
PRINT
TAB(2) "A" TAB(5) "B" TAB(8) "C";
PRINT TAB(20) "A AND (B OR C) EQV ((A AND B) OR (A AND C))"
FOR A = -1 TO 0
FOR B = -1 TO 0
FOR C = -1 TO 0
PRINT A TAB(4) B TAB(7) C;
PRINT TAB(25) A AND (B OR C) EQV ((A AND B) OR (A AND C))
NEXT: NEXT: NEXT

Uscite:  
 A  B            (A OR B)  EQV  (B OR (A AND NOT B))
-1 -1                   -1
-1  0                   -1
 0 -1                   -1
 0  0                   -1

 A  B  C     A AND (B OR C)  EQV  ((A AND B) OR (A AND C))
-1 -1 -1                -1
-1 -1  0                -1
-1  0 -1                -1
-1  0  0                -1
 0 -1 -1                -1
 0 -1  0                -1
 0  0 -1                -1
 0  0  0                -1
Torna al punto 3

4

    Si ottiene un istogramma orizzontale animato, le cui colonne crescono più o meno con la stessa velocità e che si stabilizza su una configurazione simile a quella seguente:

1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Programma che simula 40 mila lanci di un particolare dado: ogni crocetta
rappresenta cento uscite
    Sulla base di questo esito (la differenza relativa tra la lunghezza delle righe tende ad annullarsi), posso ipotizzare che il dado abbia forma cubica praticamente perfetta e sia di materiale pressoché perfettamente omogeneo, per cui non ci sia motivo di ritenere che una faccia abbia più probabilità di uscire rispetto a un'altra.
Torna al punto 4 

5

    Riproduciamo, come esempio, solo alcune dimostrazioni.

3) è deducibile da 2) e 6): [idea: passo da un evento con and a uno con or in modo da usare 6)]
i) A and not A equivale a not (not A or A)verificabile con le tavole di verità
ii) Pr(not (not A or A)) = 1 – Pr(not A or A)per 6)
iii) Pr(not A or A) = 1per 2)
iv) Pr(not (not A or A)) = 1 – 1 = 0per ii) e iii)
v) Pr(A and not A) = 0per i) e iv)
7) è deducibile da 4) (indichiamo con C la condizione A and B, come si era fatto nel caso della situazione (D) del §1: vedi il diagramma che la illustra):
i) A equivale a C or (A and not B)verificabile con le tavole di verità [o col diagramma citato]
ii) Pr(C or (A and not B)) = Pr(C) + Pr(A and not B)per 4) 
iii) Pr(A) = Pr(C) + Pr(A and not B)per i) e ii)
iv) A or B equivale a B or (A and not B)verificabile con le tavole di verità
v) Pr(B or (A and not B)) = Pr(B) + Pr(A and not B)per 4)
vi) Pr(A or B) = Pr(B) + Pr(A and not B)per iv) e v)
vii) Pr(A or B) = Pr(A) + Pr(B) – Pr(C)per iii) e vi)
6) è deducibile da 2) e 4):
i) Pr(A or not A) = Pr(A) + Pr(not A)per 4)
ii) Pr(A or not A) = 1per 2)
iii) Pr(not A) = 1 – Pr(A)per i) e ii)
Torna al punto 5

6

    Esercizio a)1). Così come è scritta, la frase non è un evento riferito a un fenomeno casuale, ma è l'enunciazione di una legge della natura, relativa a tutti i pioppi (passati, presenti e futuri), la quale può essere vera o falsa (e è falsa: una foglia di pioppo può cadere anche in altre stagioni!). Potrebbero essere eventi "le foglie del pioppo vicino a casa mia cadranno tutte entro il prossimo dicembre", "quest'anno le foglie dei pioppi di tutta la terra cadranno in autunno", … , e di essi si potrebbe valutare la probabilità (ma non sono eventi certi neanche questi).

Esercizio a)2). Stando alla formulazione, avulsa da contesti, la frase deve essere interpretata come "esiste un malato [di una certa malattia] che guarirà [da quella malattia] entro tre giorni". La presenza di un verbo al futuro permette di considerare la frase come l'espressione di un evento (per "un malato guarisce entro tre giorni" ci sarebbero difficoltà analoghe a quelle viste per l'es. precedente). Ma quest'evento, ora, non possiamo ritenerlo incerto: è certo (su scala umana) che vi sono malattie in corso che termineranno entro tre giorni. È plausibile anche che gli autori tentassero di formulare un esercizio da interpretare così: "Supponi che una persona affermi che un certo malato guarirà entro tre giorni. Come puoi considerare l'evento che si avveri questa affermazione?"; ma la valutazione di questo evento non può essere fatta senza precisarne le condizioni (se la malattia è incurabile abbiamo un evento "impossibile", se la malattia è alla fine del decorso abbiamo un evento "praticamente certo").

Esercizio b). La frase "lanciando …" non descrive un evento: il fenomeno "lancio di un dado" ha come uscite possibili singoli numeri, non coppie di numeri! Ovvero, se indico con U la variabile casuale che rappresenta l'uscita, non ha senso scrivere "esistono m e n pari tali che U=(m,n)" in quanto U rappresenta un valore numerico, non una coppia. Analogamente non possiamo dire che l'equazione x/0=3 è "impossibile", cioè che ha 0 soluzioni; infatti non possiamo neanche porre il problema "per quali valori di x l'equazione è vera": è un'equazione "indefinita" (comunque prenda x non posso attribuirle un valore di verità) essendo tale il termine x/0 (non posso attribuirgli un valore numerico).

Torna al punto 6

7

    Dalle uscite e dall'help si deduce che RND può essere usato per costruire termini numerici ma non è una costante: ogni volta che, durante l'esecuzione del programma, viene calcolato un termine che contiene RND a RND viene assegnato automaticamente un nuovo valore, scelto in [0,1). Un comportamento per vari aspetti simile lo ha la parola chiave TIMER: può essere impiegata per costruire un termine numerico ma non è una costante: a Timer, quando viene incontrato durante l'esecuzione, viene assegnato automaticamente il numero che esprime la misura in sec del tempo trascorso dall'accensione del computer. Si tratta di funzioni a 0 argomenti: l'utente non deve specificare un input, ma è il computer che, automaticamente, in funzione del suo stato interno, dell'evolvere dell'esecuzione, … , assegna ad esse ogni volta un output. Simile è il caso di TIME$: ad essa il computer assegna automaticamente la stringa (del tipo: "14:05:36") che esprime l'ora segnata dall'orologio interno.

Torna al punto 7

8

    Analizzando il file con STAT otteniamo rappresentazioni come le seguenti. Con NumeroDati=10000 otterremmo degli istogrammi ancora più "piatti".

 Da questi esiti possiamo supporre che i numeri generati da RND si distribuiscano uniformemente in [0,1), cioè che, comunque prenda I e J sottointervalli di [0,1) di uguale ampiezza, si abbia: Pr(RND∈I) = Pr(RND∈J).

Torna al punto 8

9

    La nuova versione equivale a U=(INT(RND*6)+1)*2, in quanto: ogni prova del fenomeno che si vuole simulare corrisponde all'esecuzione di un ciclo del FOR-NEXT del programma FA_RND, ad ogni ciclo il valore di RND viene generato una sola volta e assegnato a X, U1 e U2 sono espresse in funzione di X mediante la stessa relazione e, quindi, U1 e U2 rappresentano la stessa variabile casuale. Ciò che è rappresentato è, quindi, una distribuzione uniforme in {2,4,6,8,10,12}.

    Nelle altre versioni (proposte nei commenti di FA_RND) ad ogni ciclo viene generato due volte il valore di RND, per cui è come se si considerassero due variabili casuali X1 e X2 con distribuzione uniforme in [0,1) e da queste si ottenessero due distinte variabili casuali con distribuzione uniforme in {1,2,3,4,5,6}:

     X1 = RND : X2 = RND
     U1 = INT(X1*6)+1 : U2 = INT(X2*6)+1
     U = U1+U2

    Per completare FA_RND nel modo corretto posso evitare di battere le istruzioni: seleziono e copio le righe [8] e [9] (o la riga [11]) dal programma principale e le incollo all'interno del sottoprogramma Prova, cancellando gli apostrofi iniziali.

    Ecco l'analisi del file ottenuto (la forma dell'istogramma e i valori indicati possono essere leggermente diversi da quelli da te ottenuti: questo è stato ottenuto togliendo l'apice dalla riga [15] in modo da attivare RANDOMIZE TIMER; all'aumentare del numero delle prove le differenze tendono a scomparire):

     
       

    STAT è un programma che consente di analizzare dati che rappresentino misure di grandezze, cioè dati espressi con numeri reali (o loro approssimazioni). Quando si deve tracciare l'istogramma, se i dati non sono già classificati e registrati sotto forma di intervalli e relative frequenze, occorre scegliere l'intervallo [a,b) e il numero dei suoi sottointervalli (di uguale ampiezza) in cui classificare i dati.

    Nel caso in cui si voglia usare STAT per analizzare i dati relativi a un fenomeno descritto con una variabile casuale a valori interi, come nel caso in questione, si devono scegliere a e b con differenza b a intera e considerare una partizione in b - a sottointervalli, in modo da ottenere intervallini ampi 1.

    Nel nostro caso si può prendere l'intervallo [2,13) e classificare i dati negli 11 intervallini [2,3), [3,4), …, [12,13): l'uscita 2 viene classificata in [2,3), l'uscita 3 in [3,4), …

    In alternativa (come è stato fatto per l'elaborazione grafica raffigurata sopra) si può considerare l'intervallo [1.5,12.5) e suddividerlo negli 11 intervallini aventi come centri 2, 3, …, 12: l'uscita 2 è classificata in [1.5,2.5), l'uscita 3 in [2.5,3.5), …, l'uscita n nell'intervallo ampio 1 e centrato in n.

    Nel caso di variabili casuali a valori interi STAT fa automaticamente quest'ultima scelta se si mette solo il numero n degli intervallini. Nel nostro caso basterebbe specificare che n è 11 per ottenere l'istogramma sopra raffigurato.  

Nota. Per analizzare dati relativi a una variabile casuale che può assumere una quantità finita (o numerabile) di valori non di tipo numerico, ad esempio le stringhe "1", "2" o "X" o le stringhe "quartiere A", "quartiere B", … , si possono registrare i dati sostituendo a questi valori dei numeri interi, ad esempio usando 1, 2 e 3 al posto di "1", "2" e "X", usando 1, 2, … al posto di "quartiere A", "quartiere B", … In questi casi in genere non ha senso considerare la media, i percentili, lo scarto quadratico medio.

    Vi sono tuttavia casi in cui si è di fronte a modalità di tipo non numerico ma ordinabili per le quali può aver senso calcolare media e percentili. Ad es. si pensi a informazioni relative a regioni geografiche ordinate per latitudine del loro baricentro o a informazioni come le seguenti, relative alla composizione dei dipendenti di due aziende P e Q, in cui sono presenti i livelli: operai 1, operai 2, operai 3, impiegati 1, impiegati 2, dirigenti 1, dirigenti 2.

  O1 O2 O3 I1 I2 D1 D2
 P  10 21 28 26 18 9 3
 Q  35 78 52  31   21  10 2
  P:  Q:

    Numerando le classi ed elaborando i dati si ottengono informazioni come quelle riportate sopra: in entrambi i casi il livello medio (I1 in un caso, O3 nell'altro) è maggiore del livello mediano (O3, O2), a indicare una maggiore concentrazione nei livelli più bassi. La differenza delle medie (o delle mediane) evidenzia che ciò accade soprattutto nell'azienda B. Volendo si può obiettare all'utilizzo della media nel caso di modalità solamente ordinabili. Non si possono, invece, fare obiezioni all'utilizzo della mediana e dei percentili.

    Per le variabili qualitative STAT prevede anche la possibilità di introdurle in un formato specifico (vedi l'help). Ad esempio nel caso della azienda P avremmo potuto inserire i dati nella finestra-dati nel modo raffigurato a destra (usando le lettere dell'alfabeto per le modalità, seguite da virgola e corrispondente frequenza). Il programma fornisce automaticamente le classi media e mediana, sceglie automaticamente classi e scala per l'istogramma e calcola la distribuzione percentuale.  

Torna al punto 9

<<<     Paragrafo precedente INDICE Scheda successiva     >>>