CONFLITTI ANCHE NELLA DIDATTICA SCIENTIFICA del dott. prof. Antonino Drago, Università di Pisa

INSERISCO L’ART. IN PDF CON UN LINK ESTERNO:

DRAGO_ConflittilDidattSci

IN .ODT:

DRAGO_ConflittilDidattSci

ALTRIMENTI LEGGERE DIRETTAMENTE L’ART. UN PO’ MENO ORDINATO:

L’INTRODUZIONE DEL CONFLITTO ANCHE NELLA DIDATTICA SCIENTIFICA 
di Antonino Drago, Università di Pisa
  1. La nascita e lo sviluppo del conflitto intellettuale

La nostra cultura didattica è interna alla cultura occidentale, che a sua volta, è figlia della cultura greca, quella che anche nella scultura rappresentava idee fissate di cose astrattizzate. Il conflitto delle idee era estraneo ad essa, non tanto perché non l’avesse mai pensato (ricordiamo che per Eraclito tutto era conflitto), ma perché la prima esperienza di conflitto intellettuale che aveva subito (la crisi dei sofisti che dimostravano il vero e poi il falso) li ha spinti a restaurare la sicurezza nella razionalità. Ciò ha portato a costruire o un mondo di idee assicurate dalla metafisica (le idee platoniche) o un sistema sicuro perché onnicomprensivo (quello di Aristotele), tanto da includere anche la teoria delle leggi con cui la mente ragiona (logica) e la teoria della teoria, che deve avere la forma deduttiva.

Il conflitto intellettuale perciò nasce dopo il mondo intellettuale greco. In particolare nasce nella scienza quando nel sec. 17° la matematica introduce il concetto di infinito nella Fisica in una maniera molto robusta (analisi degli infinitesimi). Si crea il conflitto tra il nuovo mondo (scientifico) e il vecchio mondo della antica Grecia, che volontariamente si era chiuso all’idea dell’infinito; e si crea il conflitto tra cultura scientifica e cultura umanistica, perché questa cerca di restare nel finito tipico dell’umano soggettivo.1

Poi la rivoluzione francese ha generalizzato il conflitto dentro la cultura (oltre che nella società); e non a caso poi questo movimento fu represso per un intero periodo dalla politica della restaurazione di quella pace intellettuale che c’era prima. Infine è stato Marx che nella teoria della società ha introdotto il conflitto tra gruppi sociali. Questo processo storico dell’intellettualità occidentale poi si è ribaltato sul soggetto; Freud, (mettendo da parte l’anima umana della scolastica, divisa nei tre elementi armonici: memoria, intelligenza e volontà) ha introdotto il conflitto di tre componenti della personalità umana, irriducibili e incompatibili tra loro Es, Io e Super-io. Infine, anche nel luogo privato dei potenti industriali, la fabbrica, è entrato ufficialmente il conflitto: è dall’inizio del sec. XX che si ammettono legalmente i sindacati, preposti a interpretare e risolvere i conflitti collettivi degli operai col padronato.

Possiamo concludere che la cultura moderna, in opposizione a quella antica, è caratterizzata essenzialmente dal conflitto.

  1. L’introduzione del conflitto nella didattica in generale

Quanto di questo travaglio millenario della cultura (occidentale) è stato recepito dalla didattica scolastica?

Sembra poco o niente. Anzi si può sostenere che la scuola, in corrispondenza ad un disegno autoritario che vuole tutto “in pace”, giunge a mutilare anche la cultura scientifica quando questa include dei conflitti. Infatti, perché a scuola non si insegna logica? Forse non è una scienza? Eppure lo era già nel medio evo, quando veniva insegnata nel famoso “trivio” (grammatica, retorica e logica). Poi dal 1848 la logica è diventata addirittura una scienza matematizzata. Così pure, non è forse una scienza l’economia? Lo afferma autorevolmente l’Università, che ci ha istituito una Facoltà (Scienze economiche). Come pure ha istituito Scienze Politiche. Ma allora perché tuttora non si insegnano queste materie nei licei italiani? Può essere discutibile che si insegnino le scienze politiche, ma non che si elimini la logica.

La risposta alla domanda precedente è: perché quelle sono materie conflittuali: perciò non possono essere insegnate ex-cathedra con affermazioni tali che, se lo studente le ripete allo stesso modo, viene approvato, altrimenti viene bocciato. Infatti la scienza logica è essenzialmente conflittuale: dopo la nascita della logica matematica (1848) alla fine del secolo XIX è nata prima la logica matematica modale, poi quella intuizionista, poi quella minimale, ecc. Questo conflitto è evidente sin dalla operazione logica più importante nei ragionamenti, la implicazione. Nella logica classica la implicazione è chiamata “materiale”, perché permette che dal falso segua il vero, il che non corrisponde affatto al senso intuitivo che la nostra mente dà all’implicazione. La logica modale è nata proprio per cambiare questa formalizzazione. Se a scuola si insegnasse una sola logica, qualsiasi studente potrebbe trovare in libreria libri sulle logiche non classiche, impararle e poi in classe contestare l’insegnante sulla unicità della logica insegnatagli.

Quindi si insegna solo ciò che è sicuro e che preserva l’immagine di una scienza “in pace”, che dà solo risposte univoche e indiscutibili.

Ma ci sono stati dei fatti storici che hanno smosso dalla fissità statica secolare questa situazione della didattica scientifica, per accettare il conflitto almeno dentro la struttura didattica.

Il primo fatto è stato quello della riforma della scuola media inferiore nel 1963. Prima quella scuola era sì divisa da quella di avviamento, ma non per motivi culturali, ma di classe. Cioè nella struttura scolastica il conflitto c’era, ma come conseguenza del più ampio e forte conflitto sociale. Nella scuola di avviamento (al lavoro, il più presto possibile) non c’era cultura; l’unica cultura era quella delle persone benestanti; essa passava nella scuola media con il latino, in modo da preparare gli studenti alla cultura greco-romana insegnata al liceo classico, o al più, nel liceo scientifico (quel liceo che aveva creato una variante, ancora sub judice, includente la cultura scientifica,.

Ma quando c’è stata la riforma della scuola media unica, il conflitto è entrato nelle scuole medie, in ogni classe. Poiché il latino è diventato a scelta, il percorso precostituito della cultura greco-romana ha perso importanza e la cultura è diventava un fenomeno per la massa, nella quale si potevano incrociare tanti tipi di cultura; tanto per cominciare, quella classica e quella scientifica, che ora non poteva essere più tenuta sub judice. Di fatto, poi fu la cultura dei mass media a prendere il sopravvento su tutta la cultura della scuola media; e i mass media avevano una pluralità di culture (o subculture: quiz, sport, varietà, spettacoli, cultura tradizionale, ecc.).

(In quel tempo anche l’Università ha tolto quegli sbarramenti ai diplomati degli istituti tecnici e magistrali che prima imponevano la cultura greco-romana anche ai futuri medici e fisici. Anche i professori universitari hanno dovuto adattarsi ad una pluralità di formazioni di base).

Poi la struttura scolastica è stata sconvolta dai “decreti delegati” del 1974; essi hanno accettato il conflitto nell’organizzazione della vita scolastica: gli studenti sono stati riconosciuti come un soggetto collettivo che a pieno titolo partecipa alle decisioni scolastiche e può contestarle per legge. Uno studente che continuava a studiare leggi scientifiche, assicurate come indiscutibili, però nell’ambito scolastico poteva mettere in discussione tutta la organizzazione e tutte le dispozioni del preside. A mio giudizio, tuttora la scuola non si è ripresa da questa scossa destabilizzante i vecchi equilibri. Ma non si è ripresa anche perché non ha portato fino il fondo la accettazione del conflitto, cioè nella cultura scolastica.

  1. L’introduzione del conflitto nella didattica scientifica

La didattica scientifica è stata sconvolta proprio quando la cultura scientifica ha incominciato ad emanciparsi dalla posizione subordinata verso la cultura umanistica; allora è stato introdotto il conflitto almeno pedagogico. Questa è la storia dello Sputnik: curiosamente un oggetto missilistico è stato decisivo per la cultura scolastica.

Nel 1958 i russi, per primi, inviarono un satellite nello spazio; per di più lo Sputnik era grosso. Gli statunitensi stavano dormendo sonni tranquilli perché quando alla fine della guerra invasero la Germania sconfitta, si preoccuparono di catturare i massimi scienziati missilistici del tempo, in particolare von Braun, l’inventore delle famose V-1 e V-2 che avevano terrorizzato Londra. Grande fu quindi la loro sorpresa nel vedersi scavalcare nella gara spaziale. Dopo un anno dallo Sputnik, riuscirono ad inviare nello spazio a malapena un satellite di appena tre kg.

Il problema non era solo sportivo, ma era addirittura esistenziale. Infatti nei primi anni ’50 le due superpotenze avevano capito che, se in una guerra avessero usato le armi nucleari che esse possedevano, avrebbero creato un inferno sulla Terra, quindi anche per gli stessi vincitori. Perciò avevano concordato di sfidarsi piuttosto (o almeno, in prima battuta) su terreni meno disastrosi. La prospettiva della guerra militare fu sostituita dalla gara economica-tecnologica; i popoli si sarebbero convinti della giustezza del sistema o comunista o capitalista giudicando quale dei due sistemi avrebbe dato loro i benefici maggiori. Il comunismo era sicuro di vincere, perché la interpretazione (marxista) della storia dava il proletariato come la nuova classe destinata al potere mondiale.

Quindi la vittoria URSS dello Sputnik significava l’inizio della fine storica del capitalismo e del potere mondiale degli USA. Negli USA il momento fu drammatico; per reagire, essi cercarono di comprendere perché non aveva funzionato l’avere dalla loro von Braun. Allora notarono che sì, negli USA c’era un insuperato vertice di cervelli, ma la base di scienziati e tecnici era relativamente ristretta rispetto alla grande base di laureati nei corsi brevi dei Tecnicum russi; che quindi avevano sopperito alla qualità con la quantità.

Allora gli USA si posero il problema di aumentare il gettito del loro sistema scolastico nelle materie scientifiche. Il problema era grave, perché quello è un Paese estremamente liberista, che vede l’intervento statale come fumo negli occhi; figurarsi nel sistema educativo! Si risolse il problema convocando i migliori scienziati e facendoli applicare alla produzione di nuovi testi per le high school USA, testi da propagandare come i più avanzati possibile. Fu allora che nacquero i libri che poi sono restati classici: il PSSC (Physical Science Study Committee), il BSSC per la biologia, il MSP (Mathematics School Project)2 Dopo qualche anno anche l’Inghilterra intervenne, iniziando il progetto Nuffield. Questo progetto didattico sperimentò i nuovi testi per i vari rami scientifici in maniera collettiva, con riunioni annuali degli insegnanti che li adottavano. In Europa l’OCSE (organizzazione di cooperazione economica), in vista di una maggiore competitività economica, premette sui Ministeri dei vari Paesi affinché venisse adottata la cosiddetta “insiemistica”, cioè la ideologia matematica del Bourbaki nelle scuole.3 In Italia essa ebbe poco successo (portò a qualche modifica laterale dei testi scolastici); ma in Francia l’insegnamento della matematica fu stravolto, costringendo gli studenti delle elementari e medie a diventare incomprensibili ai loro genitori su questa materia.4

Come riassumere questa modificazione radicale della didattica scientifica? I vecchi metodi da insegnamento erano da catechismo: formule da imparare a memoria. In contrasto, la nuova didattica voleva rendere attraente la materia; non più matematica da inghiottire, non più formule dentro riquadri da saper applicare direttamente a primo colpo, non più solo figure geometriche e solo le essenziali. Invece, pistolotti motivazionali (“La fisica vale bene una vita”, “La fisica è bella”, “Se faccio, capisco”, ecc.), libri a colori, con figure in quantità e con fotografie (e magari fumetti e strisce di comics), proposta didattica la più possibile coinvolgente, insegnanti estroflessi e simpatici, svalutazione della esattezza dei risultati del lavoro dello studente per premiare invece il suo interessamento, ecc.. Tanto che il libro di testo non era più per lo studente, ma per l’insegnante; che così diventava il vero operaio della situazione, mentre lo studente viveva esperienze di gruppo (esperimenti) o intellettuali.

In sintesi, questa novità era la introduzione della pedagogia attiva nelle materie scientifiche; che finallora invece erano state funzionali ad una dura selezione per quelli che erano nati “piccoli scienziati”, o avevano il “pallino” della scienza. Di fatto, i contenuti erano rimasti quelli di prima, salvo aggiustamenti per facilitare l’apprendimento (nel PSSC fu anticipata la termodinamica-meccanica statistica perché si scoprì che così le ragazze imparavano meglio), o innovazioni per avvicinare lo studente alle notizie di giornale sulle nuove scoperte scientifiche (in Fisica si metteva qualcosa sull’atomo e magari sul nucleo; in biologia, si misero le prime novità del dopoguerra).

In breve, la nuova didattica scientifica voleva compiere una rivoluzione pedagogica nella didattica scientifica. Ci sarebbe riuscita se la riforma fosse stata obbligatoria. Ma, a cominciare dagli USA, il cui liberismo non poteva permettersi imposizioni didattiche, essa restò sempre compresente con la vecchia didattica; generando così, nell’insegnamento scientifico scolastico, un conflitto nei metodi educativi di insegnamento: il nuovo contro il vecchio (che all’Università è stato ancora più resistente).

Dopo circa cinquant’anni da questi avvenimenti, la situazione non è sostanzialmente mutata. Sempre c’è il conflitto tra pedagogie diverse; i programmi hanno sì introdotto molte innovazioni nei programmi didattici; ma sempre si sono mantenuto esclusi i conflitti esistenti all’interno dalle materie scientifiche. Per intendersi, talvolta si è anche introdotta la logica, ma solo per la parte più banale e senza far vedere quelle sue insufficienze che hanno fatto nascere le logiche matematiche alternative. In definitiva, il progetto autoritario della didattica scientifica ancora una volta non ha ammesso che lo studente, e neanche l’insegnante, discutessero sulla scienza, oltre che ripetere sempre la stessa la scienza.

In sintesi, il conflitto, che la didattica scientifica manteneva fuori dalla porta, è entrato dalla finestra della organizzazione scolastica e della pedagogia; ma è stato accuratamente lasciato all’esterno della “legge scientifica”, che è dura come prima.

  1. La matematica del conflitto

Eppure la scienza aveva già ammesso il conflitto al suo interno; lo si diceva prima riguardo la logica; nei primi anni del ‘900 c’erano stati i conflitti (almeno temporanei) durante le crisi della fisica e della matematica, crisi che avevano fatto sorgere teorie scientifiche del tutto in opposizione alle teorie scientifiche del passato glorioso e anche trionfalista.

Ma addirittura, dall’inizio del ‘900 è nata anche la matematica dei conflitti, benché a prima vista è una contraddizione in termini il mettere assieme la matematica, che è il mondo della precisione, con i conflitti, che è il regno della irrazionalità.5 Infatti così è sembrato per millenni, (benché già Pitagora avesse proclamato che “Tutto è numero”).

La contraddizione non è apparsa insuperabile ad un giovane quacchero, Lewis F. Richardson, il cui fratello era morto in guerra, e che, come obiettore di coscienza, lavorava in una infermeria della I guerra mondiale. Egli era un fisico, che si interessava professionalmente di meteorologia: un campo di fenomeni quanto mai complessi e apparentemente imprevedibili. Ma lui sapeva che anche la metereologia era soggetta ad una formalizzazione matematica. Con questa idea guida, Richardson propose per primo una formalizzazione della corsa agli armamenti e, in generale, dei fenomeni competitivi.

L’idea è semplice; invece di considerare una sola equazione differenziale alla volta, egli ha accoppiato due equazioni differenziali (o anche, due equazione a differenze finite); in modo che gli aumenti o le decrescite della variabile della prima equazione differenziale, dipendessero dagli aumenti o dalle decrescite dell’altra variabile, quella della seconda equazione differenziale.

dx/dt = ky – ax + g;……………dy/dt = lx – by + h

Che dicono queste equazioni? La prima dice che il primo Paese aumenta i suoi armamenti x a causa degli armamenti y del Paese confinante, salvo essere limitato dall’aver già raggiunto un livello molto alto e dall’avere stimoli o limiti (g) dovuti a ideali o a difficoltà (ad es. economiche).6 Analogamente per la seconda equazione.

Risolvere questo sistema è un po’ complicato; ma lo si semplifica se ci chiediamo quando avverrà che i due Paesi saranno soddisfatti della crescita già ottenuta e quindi non avranno più incrementi; cioè, se consideriamo nulle le variazioni dei primi membri. Così la matematica si riduce a quella delle equazioni di due rette; delle quali si può cercare il punto di incontro; quando esso c’è (comunque lontano), indica che la corsa agli armamenti dei due Paesi può trovare un punto d’incontro, quindi tutto il sistema è in equilibrio. Altrimenti i due Paesi sono condannati a correre all’infinito per accumulare spasmodicamente ulteriori quantità di armi distruttive.

Le pubblicazioni di Richardson (compreso un libro) ebbero un discreto successo; ma momentaneo. Lui stesso lasciò questo argomento di studio, per riprenderlo solo quando, negli ultimi anni ’30, un’altra guerra sembrò imminente.

E’ solo dopo la seconda guerra mondiale che questo settore di studi incominciò a svilupparsi, anche per la concomitante crescita della teoria dei giochi (competitivi). Questa era iniziata negli anni ’20 per opera di padri illustri: Emilio Borel e Janos Neumann. Dal 1944, data del famoso libro di Neumann e Morgenstein7, c’è stato un forte interesse degli economisti per questo nuovo argomento di studio; tanto che da un po’ di tempo è diventato materia corrente di studio universitario.

La teoria dei giochi include giochi a variabili anche continue (così è nata con Borel); ma i suoi problemi più interessanti concettualmente si hanno quando si usano variabili discrete. Nella sua forma più semplice un gioco è dato da otto numeri interi che vengono comparati tra loro per vedere qual è il più grande e il più piccolo; questa formalizzazione poteva nascere anche nella mente di Archimede. Eppure la sua capacità di sintesi è grande, perché, come ha sottolineato un altro quacchero famoso, A. Rapoport,8 la teoria dei giochi ha il concetto di strategia, il quale sintetizza un numero qualsiasi di mosse (le quali non vengono neanche prese in considerazioni dalla teoria). Quindi la teoria dei giochi è una teoria da capi o da generali, piuttosto che una teoria da subordinati o esecutori delle singole mosse (così come sono di solito le teorie matematiche).

Già la teoria dei giochi a due giocatori, ognuno dei quali ha solo due strategie possibili, può dare dei tremendi rompicapo, anche dal punto di vista filosofico, perché alcuni giochi danno luogo a veri e propri paradossi. I giochi più semplici sono i giochi a somma zero, là dove un giocatore vince tutto quello che perde l’avversario e solo quello. Per questi giochi Neumann ha dato un teorema (del minimax) che assicura sempre la strategia ottima.. Esso suggerisce ad ogni giocatore di scegliere il massimo delle sue vincite minime; quindi dà un criterio cautelativo, da mezzo bicchiere vuoto.

Ma i conflitti a somma zero sono poco interessanti, perché schiacciano la creatività di un gioco in un formalismo troppo schematico (tutto il mondo è racchiuso nel conflitto tra i due). Questa creatività riappare con i giochi a somma non zero, dove ambedue i giocatori possono anche vincere assieme o perdere assieme (ovviamente, grazie al coinvolgimento di terzi; che però nel gioco formale non fanno mosse e quindi, come giocatori, non esistono).

E’ da sottolineare che questa modifica rappresenta il cambiamento effettivo avvenuto nella storia delle guerre. Quando i Romani vincevano, le loro perdite erano trascurabili e i guadagni (il bottino) erano tutti a carico del perdente. Ora invece (seconda guerra mondiale, Jugoslavia) chi vince è costretto ad aiutare chi perde (per evitargli tracolli economici che trascinerebbero anche il vincitore); o addirittura chi vince, vince solo con il suo esercito, mentre la sua popolazione resta disastrata o distrutta (ad es. il Vietnam del Nord rispetto agli USA).

Per dare almeno un cenno di questo grande campo di ricerca, esaminiamo un suo gioco: il famosissimo dilemma del prigioniero, su cui c’è una ampia letteratura, sia matematica che filosofica.9 A causa di un delitto, la polizia arresta due delinquenti, che sa che quasi sicuramente l’hanno commesso; ma non ne ha le prove. Li pone in due celle separate, dove ognuno ha due strategie: confessare (C) o non confessare (NC). La matrice del gioco (ottenuta sovrapponendo le due matrici dei pagamenti per i due giocatori) è la seguente (i numeri contano solo come scala di preferenze).

Tab. 1: GIOCO DEL DILEMMA DEL PRIGIONIERO 

                    C                    NC

C                -5, -5              5, -10

NC            -10, 5               0, 0

Il caso (-5, -5) è il risultato della confessione di ambedue: indica la loro giusta condanna. Il caso (5, -10) significa che se il secondo non confessa e il primo sì, questi è premiato dalla polizia come “collaboratore”, mentre il tribunale raddoppia la giusta pena al secondo perché questi non ha confessato. Analogamente il caso (-10, 5). Ma se nessuno dei due confessa, la polizia, rimasta senza prove, li deve liberare: (0,0).

Ora, qualsiasi regola che scelga la strategia in modo cautelativo (e anche la regola matematica di Neumann) porta i due a scegliere C, cioè la coppia di strategie (C,C), che fa ottenere (-5, -5); quando invece è evidente che (NC,NC) è la coppia migliore, perché dà (0, 0). Ma quest’ultima strategia richiede la cooperazione tra i due, al di là di ogni dubbio o diffidenza. Da qui il conflitto di due razionalità opposte; quella cautelativa matematizzata, e quella cooperativa ma non basata su prove formali.

Questo gioco è eccezionale. Tutta la scienza tradizionale esclude i paradossi e le contraddizioni; cosicché non si ragiona mai su un conflitto di razionalità diverse. La teoria dei giochi invece lo può fare, mediante questo gioco particolare (e vari altri).10

Si noti che la stessa corsa agli armamenti, che Richardson aveva formalizzato con due equazioni differenziali, qui viene formalizzata con otto numeri; basta sostituire A (armarsi) a C, e NA (non armarsi) a NC. La struttura logica delle soluzioni di Richardson è la stessa di questo gioco: le nazioni si dissanguano per armarsi, a causa della diffidenza reciproca; benché sia evidente che, se cooperassero senza armarsi, ambedue ci guadagnerebbero molto.

Per di più, adesso il gioco rappresenta anche la strategia cooperativa ed il suo contrasto radicale con la strategia bellica. Come si vede, la semplificazione drastica del formalismo matematico non ha impoverito la rappresentazione della realtà, ma anzi l’ha arricchita. Ciò va contro l’aspettativa generale degli scienziati, e può essere elemento di riflessione per qualsiasi applicazione della matematica (ad es. la termodinamica e la chimica, la cui matematica è semplice, sono forse meno universali, nel loro campo di fenomeni, della meccanica, la cui matematica è sofisticata?).11

Ci sono poi altre formalizzazioni dei fenomeni conflittuali, ad es. la formalizzazione statistica dei conflitti mortali e guerre. Essa è molto istruttiva, perché mostra che le guerre si distribuiscono nella storia (e sotto tutti i parametri possibili) secondo una distribuzione che si chiama poissoniana, quella che è tipica dei fenomeni casuali: cioè (come sempre hanno detto i saggi) le guerre, viste sui tempi lunghi, sono fenomeni storici casuali!12 I professori di storia lo sanno?

Inoltre si può mostrare che anche la fisica ha la capacità di insegnare conflitti. Per brevità, su questo tema rimando ad altre pubblicazioni.13

  1. Il conflitto in logica: la sua didattica

Ma tutto ciò è forse difficile da insegnare? Forse richiede conoscenza tecniche superiori, o capacità intellettuali che solamente i più bravi della classe possono avere? La pubblicazione degli Insegnanti Nonviolenti dimostra che questo non è vero; tanto che riporta come E. Castelnuovo ha trovato una maniera di insegnare la poissoniana alle scuole elementari!

E se anche fosse vero che ciò che precede è difficile da insegnare, certamente non lo è il conflitto più interessante, quello che riguarda direttamente la nostra mente: il conflitto nella logica. Esso può essere insegnato appena si acquisti conoscenza della lingua che si usa; esso, anzi, favorisce quell’esercizio logico di sintassi che la scuola si sforza di insegnare attraverso una serie di regole specifiche.

Nel passato la logica classica ha dominato fino al punto da quasi escludere ogni altra logica. Ma, come si diceva dianzi, nel secolo XX la ricerca di logica matematica ha chiarito che esistono più logiche, che sono altrettanto importanti. Inoltre ha chiarito che la legge discriminante tra la logica classica e (quasi tutte) le altre logiche è quella della doppia negazione, piuttosto che quella del terzo escluso.14

Nel seguito sfrutteremo questo avanzamento. Basta notare che nei testi scientifici ci sono frasi doppiamente negate, le quali non sono equivalenti alle corrispondenti positive per mancanza di evidenza nella realtà (FDN); quindi appartengono alla logica non classica, perché per loro non vale la legge della doppia negazione. Ad esempio, la frase: “E’ impossibile il moto che non ha fine” (anche nel seguito le negazioni verranno sottolineate per facilitare il lettore nel riconoscerle nelle FDN) non è equivalente all’affermazione: “Ogni moto ha una fine”, perché questa seconda frase, essendo affermativa, è obbligata a dare a priori le prove operative del luogo e del momento finale della fine del moto; a causa dell’imprevedibile attrito ciò non è possibile.

Se un autore scientifico usa FDN, ciò significa che egli ragiona in logica non classica; la quale ovviamente introduce ad un mondo intellettuale del tutto differente da quello della logica classica.

Nei testi originali di Freud e di Marx si trovano molte FDN. In particolare si trovano in uno scritto molto breve e leggibile da chiunque, in cui Freud ha espresso il metodo della psicanalisi.15 Freud evoca la scena usuale della stanza dell’analista: il paziente, steso sul lettino, racconta i suoi sogni; egli dice ad es. che ha sognato di essere andato a trovare la madre; ma ad un certo punto dell’incontro, avvenuto in cucina, la madre l’ha fatto tanto arrabbiare che gli è venuta voglia di prendre un coltello sul tavolo e di ammazzarla; ma, aggiunge il paziente: “Però io non volevo ammazzare mia madre”. L’analista deve cogliere al volo questa negazione e, a sua volta, deve negare quella frase: “Non è vero che il paziente non voleva ammazzare la madre”. Infatti, dice Freud, la negazione linguistica è il segnale di un processo di negazione interiore (soppressione e rimozione) di un trauma, che ancora tormenta il paziente; e che, come tutte le cose inconsce, viene a galla solo quando il suo Io allenta la pressione oppressiva, in particolare nei sogni.

Quello che fa l’analista (negare la negazione del paziente) pone un inizio, un principio di quel metodo di indagine sul paziente che può risolvere il conflitto psichico; quindi un principio metodologico. (Oltre che sul lavoro del singolo analista sui sogni del singolo paziente, Freud ha teorizzato più in generale sui sogni di tutti i pazienti; allora il suo principio metodologico è espresso da un’altra FDN: Non è vero che i sogni non siano realtà).

Questa differenza tra logiche differenti è semplice, alla portata di tutti i livelli della didattica, anche della quinta elementare. Essa inoltre è utile per eliminare gli abusi di linguaggio (del tipo: “Non c’è nessuno”; che invece dovrebbe essere: “Non c’è alcuno”; oppure “Non mi hai dato niente!”; invece di “Non mi hai dato alcunché”), o a sottintendere pezzi importanti della frase. Ad es., Popper. “La scienza è fallibile [a causa di esperimenti negativi]”; Jonas: “L’etica della paura [del suicidio dell’umanità]”; in modo da avere una precisa corrispondenza tra pensiero e linguaggio, tale che la mente possa aver fiducia nelle parole che esprimono il suo pensiero.

Poi si può notare che in logica c’è un conflitto ancor più ramificato; ad esempio esaminare (nel liceo) la differenza tra implicazione materiale e implicazione intuitiva; e poi studiare i rimedi che si possono portare (secondo le diverse logiche). Allora finalmente lo studente potrebbe affrontare la logica non in quella maniera scorretta che viene suggerita dalla filosofia mediante qualche idea del sillogismo aristotelico e poi con la fumosa dialettica di Hegel (o con quella tutta da riconoscere di Marx; si ricordi che su diamat = materialismo dialettico, si è fondato un regime di potere, l’URSS, che ha dominato le menti delle persone di metà del mondo per il periodo di tre generazioni).

Ancor più in generale, è chiaro che se si ragiona con FDN, non si può ragionare deduttivamente da poche frasi prese come assiomi certi. Ogni FDN (vedasi ad esempio quella del moto perpetuo, o quelle di Freud), indicano una ricerca, non una sicurezza; una induzione, non una deduzione. Induzione a che fine? A quello di risolvere un grande problema; che nella termodinamica, dove l’impossibilità del moto perpetuo è servita a fondare quasi tutta al teoria, è “Non è vero che il calore non è lavoro”; e nella meccanica che ha usato lo stesso principio, è il problema di conoscere le caratteristiche principali del movimento; in Freud è quale sia il trauma del paziente; e in Marx il problema è come superare storicamente il capitalismo. Ecco che allora appare una novità ancor più importante: il conflitto nella logica è la espressione più precisa di un conflitto più generale, quello tra due tipi di organizzazione di una teoria: o una organizzazione deduttiva, che ricava tutte le verità dalla verità delle poche proposizioni iniziali (principi-assiomi), o una organizzazione che, in maniera induttiva, cerca e trova un nuovo metodo che risolva un dato problema.

In definitiva, la organizzazione della teoria non è più solo quella deduttiva indicata da Aristotele, ma è anche quella induttiva. Allora capiamo che è molto importante chiarire che esiste un conflitto in logica, perché altrimenti non saremo mai padroni della nostra mente, né sapremmo in quale organizzazione del pensiero ci troviamo. In particolare, stando attenti alla presenza di FDN, si ha un nuovo metodo di analisi logica, che permette di decidere sia se l’autore ragioni o no con precisione logica in logica non classica, sia che tipo di ragionamento egli segua, sia che organizzazione egli abbia dato alla sua teoria.

  1. Il conflitto nella didattica della fisica e nella didattica della chimica

Ma esistono conflitti all’interno delle scienze della natura?

Consideriamo la scienza che si insegna nelle scuole superiori. Essa cerca giustamente di qualificarsi al livello di teorie scientifiche; infatti, che di più educativo e formativo dell’insegnare a quali altezze intellettuali è giunta la mente umana, partendo dai dati di fatto sperimentali?

Queste teorie contengono in maniera essenziale la matematica. Nelle scuole giustamente si insegna almeno quel minimo livello di matematica col quale poter introdurre le teorie scientifiche più importante (anche se non le più recenti). Ad es., la didattica della fisica insegna l’ottica geometrica; questa richiede la conoscenza di quasi solamente la geometria euclidea, che si impara sin dalla scuola elementare. Si noti che questa geometria, giustappunto per lo spirito dei greci antichi, non usa l’infinito, ma solo l’illimitato; ovvero l’infinito solo potenziale (cioè l’infinito che è approssimabile ma mai è raggiungibile). E’ vero che nell’ottica la formula delle lenti sottili può portare l’immagine all’infinito; ma qui si tratta di un infinito virtuale, perché riguarda non l’oggetto materiale o la lente, ma l’immagine che è immateriale.

Invece poi la meccanica classica richiede concetti matematici più avanzati; chi fa il liceo scientifico deve imparare i concetti (approssimativi) di derivata e integrale. Essi sono nati mediante gli infinitesimi dx e dt; che sono numeri definiti come inferiori a qualsiasi altro numero superiore a 0; ovvero, come l’inverso del numero infinito. Quindi questo è l’infinito che è un numero come qualsiasi altro; o è il punto finale di una retta, anche se nessuno è mai arrivato là).16 In definitiva, nell’insegnamento della fisica si nasconde un conflitto sul tipo di matematica usata: o la matematica (solo finita o) basata sul solo infinito potenziale, o la matematica basata sull’infinito in atto.

Ovviamente, nelle varie teorie fisiche questi due tipi di infinito danno luogo a concetti molto diversi. Ad esempio, in meccanica è essenziale il tempo come variabile continua, con cui si calcolano le derivate e gli integrali dell’analisi infinitesimale; mentre invece la termodinamica, che non ha bisogno di infinitesimi e di infiniti, usa una matematica elementare: il suo tempo è solo quello dualistico del prima-dopo una trasformazione.

Così pure il concetto di spazio comporta un analogo conflitto; tra il concetto che vale nella ottica e nella meccanica, cioè quello che riguarda l’infinito universo, matematizzato con tre assi cartesiani; e il concetto di spazio della termodinamica, che è tutto diverso: è racchiuso in un volume di misura data (sempre finita).

Ma chi spiega ciò allo studente? Gli si insegnano le teorie differenti, e differentemente fondate, solo per i loro risultati e presentando i loro concetti teorici come se ogni volta fossero calati dal cielo.

Ma allora ci accorgiamo che con la precedente analisi abbiamo individuato due conflitti che sono nei fondamenti di una teoria scientifica: quello sul tipo di infinito (o potenziale o in atto) e quello sulla organizzazione della teoria; questo secondo è equivalente a quello su due tipi di logica: o classica per la deduttività, o non classica (con le FDN) per l’induzione. Questi due conflitti possono essere visti in maniera più concreta nelle due grandezze fisiche che di solito sono basilari, tempo e spazio: il tempo continuo o quello prima/dopo; o lo spazio infinito, o quello confinato.

In sintesi:

1° i fondamenti di una teoria scientifica hanno sempre due conflitti, non sovrapponibili tra loro.

2° Ogni conflitto è dovuto ad un concetto filosofico – o l’infinito, o l’organizzazione – che poi, nella storia della scienza, è stato oggettivato e formalizzato mediante una specifica teoria scientifica: rispettivamente, la matematica (dell’infinito) e la logica matematica.

3° Ogni conflitto nasce perché ognuno dei due concetti filosofici è suddiviso in due scelte possibili:

– l’infinito in atto (IA) o potenziale (IP), che sono alla base rispettivamente della matematica classica e della matematica costruttiva;

– l’organizzazione assiomatica (OA) o problematica (OP), basate rispettivamente sulla logica classica e sulla logica non classica.

4° In ogni conflitto, le due scelte sono incompatibili tra loro e le teorie con scelte differenti sono tra loro incommensurabili.

5° Complessivamente, tutte le teorie scientifiche esprimono, con le loro scelte, quattro modelli di teoria scientifica, che seguono quattro tipi di razionalità scientifiche, separati dalle loro incommensurabilità.

DRAGO_FIG10001

Tab. 2: I FONDAMENTI DELLA SCIENZA

Infinito Infinito in Atto Matematica Classica
Infinito Potenziale Matematica Costruttiva
Organizzazione Organizzazione per Assiomi Logica Classica
Organizzazione su un Problema Logica non classica

In definitiva, questa chiarificazione comporta che l’insegnamento di una teoria scientifica chiarisca i due conflitti fondamentali che stanno alla sua base.

Da questo punto di vista, come risulta l’attuale insegnamento della Fisica nelle scuole superiori? Sorprendentemente, appare a prima vista che le teorie fisiche da insegnare sono quattro: ottica geometrica, meccanica, termodinamica, elettromagnetismo. Sono esse ordinabili secondo le quattro coppie di scelte sui due conflitti? Si!

Tab. 3: I QUATTRO MODELLI DI TEORIA SCIENTIFICA E LE QUATTRO TEORIE FISICHE

OA

OP

IA

Meccanica di Newton

Elettricità e Magnetismo

traiettoria, linea di forza

IP

Ottica geometrica

Termodi-namica

distanze, processi

spaz. assoluto, sistema di rif.

campo, sistema

(In corsivo sono indicate le grandezze fisiche che più rappresentano una particolare scelta compiuta dalle teorie fisiche di quella riga o quella colonna.

In altri termini: i didatti della fisica sono stati così sagaci che, tra le tante teorie fisiche che potevano scegliere di insegnare, hanno scelto proprio quelle che rappresentano i quattro modelli di teoria scientifica, cioè tutte le coppie di scelte possibili sui suddetti conflitti. Quindi questi didatti, attraverso le loro teorie, di fatto hanno intuito i fondamenti della loro teoria scienza.17 Ma non se ne sono accorti; perciò non dichiarano la loro scoperta agli studenti. Anzi, si sforzano di presentare la fisica come unitaria, nonostante (come indica la doppia freccia nella tabella) l’accostamento di meccanica e termodinamica strida, a causa della loro incommensurabilità.

Se si esamina la didattica della chimica, si nota che essa ha sofferto il conflitto sul tipo di organizzazione. La didattica tradizionale considerava la chimica per come essa era nata: basata sul problema di quali siano gli elementi costitutivi della materia, da trovare induttivamente, mediante l’esame della miriade di tutte le reazioni possibili tra le sostanze; cioè è nata come teoria OP. Infatti essa ha usato sistematicamente le FDN; ad es., “La materia non è divisibile al non finito”; Lavoisier e Dalton: “Chiameremo elemento quella sostanza che ancora non siamo riusciti a scomporre”.

Invece, da qualche decennio, per essere più rapidi nell’avvicinare la chimica del XX secolo (quantistica), quasi sempre si insegna chimica assiomaticamente: si illustra l’atomo come se fosse una pallina (immagine impossibile, secondo la meccanica quantistica!) e poi si dà la classificazione dei suoi livelli atomici, per così presentare deduttivamente tutti gli elementi possibili. Questo conflitto tra OP e OA nella didattica è rimasto vivo, perché c’è anche un movimento contrario, per tornare alla didattica precedente. Ma senza che il conflitto sia stato indicato agli studenti.

Diversa è la situazione dell’insegnamento universitario di chimica. Lì i chimici didatti sono stati anche loro sagaci nel saper individuare quattro teorie che, di fatto, indicano i conflitti fondamentali e le articolazioni delle possibili scelte.18 Anche qui, però, non se ne sono accorti e non lo dicono agli studenti.

Tab. 4: I QUATTRO MODELLI DI TEORIA SCIENTIFICA E LE QUATTRO TEORIE CHIMICHE

IA

IP

OA

Chimica Quantistica

Chimica Fisica

OP

Cinetica Chimica

Chimica Classica

7. La didattica della matematica solo apparentemente è senza conflitti

Purtroppo la didattica scientifica che manca all’appello è quella della matematica, la didattica scientifica che più di tutte dovrebbe dare le direzioni alla cultura scientifica; anzi, oggi essa è la didattica più oscura. Certo, questa didattica deve fare anche da supporto alle altre didattiche scientifiche; q quindi deve occuparsi di molte teorie. Ma ciò non le dovrebbe impedire di insegnare che cosa è una teoria matematica in tutta generalità, cioè secondo i quattro modelli di teoria scientifica. Invece questa didattica si è accontentata del primo modello di teoria scientifica che è nato nella storia della scienza, quello euclideo; e poi ha cercato semplicemente di attenersi sempre a quello; sia imitandone, ogni volta che è stato possibile, la sua OA, come se fosse l’unica organizzazione; sia riferendosi il più possibile al finito, così come fa la n geometria euclidea con riga e compasso.

Sappiamo bene che la prima operazione è stata possibile fino ad oggi, perché nella storia non c’è stato uno scienziato autorevole che abbia proposto, mediante una nuova teoria importante, una teoria matematica esattamente in una OP. In realtà, ci sono stati: Lobacevsky, che con questa organizzazione ha proposto proprio la prima geometria non euclidea;19 e Kolmogoroff, che così ha proposto per la prima volta la formalizzazione della logica non classica, l’intuizionista.20 Ma ambedue non erano coscienti di questa loro novità, o almeno non l’hanno dichiarata; perciò è passata inosservata agli altri scienziati (oltre al fatto che anche i loro lavori sono stati quasi ignorati dagli storici).

La seconda operazione è stata più tormentata. Perché quando i matematici moderni sono arrivati ad inventare la analisi infinitesimale, che usava l’IA, giustamente si sono entusiasmati dei risultati strabilianti che ottenevano con essa. Ma allora è nato un conflitto: questa matematica era in opposizione con la matematica di riga e compasso, essenzialmente, finita. Il conflitto si è esteso alla didattica: come insegnare la matematica, restando legati al finitismo di riga e compasso, pur sapendo che quella avanzata è l’analisi infinitesimale? D’altra parte, come insegnare solo quest’ultima, che ha avuto fondamenti equivoci per due secoli e che comunque impone di scegliere l’IA, che nelle scuole superiori è chiaramente un concetto difficile da far capire agli studenti? Anzi, esso è impresentabile come concetto basilare della scienza, che pretende di essere galileianamente sperimentale, in opposizione all’apriorismo dell’aristotelismo e all’idealismo di Platone.

Qui sta tutta la storica irresolutezza della didattica della matematica; che alla fine va a insegnare un misto di concetti, spezzoni di teorie, anche una teoria, la geometria euclidea, che però è antiquata, rispetto alle teorie della modernità.21 Questo tipo di didattica può essere rappresentato, almeno fino agli anni dello Sputnik, dalla Fig. 2. Ogni freccia di una teoria indica, col punto di partenza, le scelte effettive di quella teoria, e, con il punto di arrivo, le scelte che appaiono allo studente. Si notino le tante frecce, ognuna indicante la equivocità della didattica sui fondamenti di quella teoria, e si noti l’incrocio turbinoso delle frecce. E’ chiaro che la tentazione dell’insegnante di matematica è di fare ignorare che nella didattica della matematica c’è un grande problema di fondamenti.

Questa oscurità della didattica della matematica esiste perché i matematici, ritenendo che la loro scienza è esente (dal rapporto con la realtà concreta e quindi anche) dai conflitti, la concepiscono idealmente, come un mondo “in pace”, dove tutto ha il suo posto o lo avrà sicuramente tra breve. Questa loro opinione impedisce una chiarificazione della didattica, che è molto semplice e a basso costo didattico: insegnare l’algebra booleana, che è una struttura matematica molto attraente, perché può essere vista come teoria: dei circuiti elettrici, delle leggi della logica, degli insiemi (senza necessità di vederli infiniti), dei reticoli, dei numeri a base binaria, ormai molto usati; e al liceo un esempio molto semplice di struttura algebrica, perché è simmetria ed ha il merito di introdurre a definire i numeri razionali come campo.

DRAGO_FIG10002

Essa darebbe una chiara teoria IP, perché ivi tutto è finito, e OP, perché nelle leggi della logica possono essere poste (come all’origine storica) come risultato della ricerca sul problema delle regole del ragionamento. Al suo confronto, sarebbe facile comprendere le scelte di ogni altra teoria insegnata. E la didattica così potrebbe svolgere un chiaro percorso didattico sui fondamenti della matematica tutta.

7. Conflitto e sua conciliazione per saper lavorare dentro il pluralismo

A mio parere, se non si affronta la problematica dei fondamenti, l’insegnamento scientifico resta subordinato alla cultura dei mass media (a incominciare dalle riviste divulgative, per finire alle trasmissioni TV); che è più attraente non solo perché è più facile, ma anche perché è conflittuale in tutto, anche nell’informazione scientifica. Alla cultura scolastica anche scientifica resta il ruolo di concedere quel pezzo di carta che poi permette di arrivare ad una professione remunerata (come il ruolo degli esami che nella Cina antica permettevano di diventare mandarino).

In particolare, si formano esecutori incoscienti del senso culturale delle operazioni mentali che essi eseguono; si inculca l’assenso all’ipse dixit. In altri termini, cioè si arriva ad una specie di tradimento della scientificità galileiana, oltre che della fiducia degli studenti; i quali si aspetterebbero di essere trattati da persone razionali e desiderose, da persone di lì a poco adulte, capaci di assumersi le loro responsabilità di saper vivere in pieno la vita culturale della società moderna.

Ma, mi sembra di sentire una obiezione: “Ma tutti questi conflitti non fanno altro che confondere le idee agli studenti.”

Certamente non si può imparare la critica dei concetti, se prima quei concetti non sono stati appresi. Quindi non si possono studiare i fondamenti di una casa se non si sa qual è la casa che si sta esaminando. Ma una volta che la costruzione didattica dei concetti scientifici è finita, è autoritario lasciare agli studenti la coscienza del semplice muratore, che ha messo assieme i pezzi di quella casa, senza fargli sapere a che progetto essa corrispondeva e perché le linee risultanti sono state concepite in quella maniera. Qui c’è tutta la differenza tra esecutori e persone coscienti. Non credo che ci sia una valida esigenza sociale che gli studenti in massa debbano avere una mentalità solo esecutrice; se non l’esigenza del “grande fratello” di Orwell.

Né vale la scusante che lo studente può ricostruirsi da solo quella che è la problematica di fondo, sia nella logica che nei fondamenti. E’ come dire che mangiando torte, alla fine si riesce ad imparare la ricetta con cui esse sono state fatte. La via diretta è piuttosto quella di una didattica che sa presentare e affrontare gli argomenti per i loro contenuti culturali principali, non per gli aspetti laterali, quelli più tecnici e ripetitivi. Certo, qui un insegnante avrebbe ragione a ricordare che l’Università non dà la preparazione a tutto questo; perciò, nella attuale latitanza dei programmi ministeriali e della preparazione universitaria, l’insegnante dovrebbe assumersi tutta la responsabilità di innovare autonomamente la didattica. Ma io credo che, se l’insegnante aspira minimamente ad essere una persona di cultura, e non un impiegato esecutivo che semplicemente si fa gradire dagli studenti, certamente si impegnerà in quell’attività che lo riabilita come educatore, ai suoi occhi e agli occhi degli studenti.

Certo, l’insegnante dovrebbe scendere dal piacevole e comodo dislivello che gli permette di parlare ex cathedra (sia pure condizionato dal libro di testo); sui fondamenti dovrebbe diventare un uomo di cultura, che sa indirizzare gli studenti dentro una realtà conflittuale. Ma che cosa dovrebbe desiderare di più un insegnante se non proprio questo? E che dovrebbero chiedere di più i giovani, se non essere aiutati nella loro formazione umana e culturale, che passa essenzialmente attraverso molti conflitti? Tanto più ciò vale per quegli studenti che poi all’Università proseguiranno nello studio di materie scientifiche, dove, a ragion veduta della formazione alla professione, il tecnicismo prevarrà.

E’ da notare che l’attuale situazione da superare è stata creata da operazioni culturali avvenute nel passato e oggi non più rimesse in discussione, nonostante non siano di onore per la attuale cultura. E’ stata la Rivoluzione francese che, sin dalla Éncyclopédie, ha sostenuto il primato della ragione, al fine positivo di aver la forza d’animo e la forza sociale di abbattere i poteri assoluti che dominavano la società europea. La lotta contro i giganti che i sans culotte (detto modernamente: “i senza potere”) dovevano fare poteva basarsi solo sulla ragione; perciò essi hanno così tanto sostenuto il primato della ragione da farne un assoluto e una Dea.

La successiva restaurazione, che non poteva tornare esattamente alla situazione precedente, prese in contropiede il movimento innovatore: ne accettò il primato della ragione e della scienza, ma lo subordinò al potere sociale esistente. L’aver fatto gli studi all’Università per entrare sia nella ricerca sia nella carriera dell’Università, le riviste che pubblicano articoli di ricerca solo se esaminati da altri colleghi autorevoli, la società degli scienziati, sono tutte caratteristiche che sono nate in quel tempo e che hanno formato quella si autodefiniva la “comunità scientifica”.22 Cosicché, mentre prima i gestori della ragione illuministica erano tutte le persone, compresi i popolani; dopo, i gestori della ragione sono state le comunità degli scienziati; cioè solo le persone autolegittimantesi in gruppo ed autorizzate dal potere sociale, il quale (anche se democratico) dava a quella ragione le direzioni, i limiti e i vincoli. Il tutto all’interno dell’idea che la ragione è unica per tutti (così come aveva creduto la rivoluzione francese, essendo all’inizio del suo uso sociale).

Né poi il sorgere del movimento operaio ha cambiato la situazione. Sia perché esso si è basato più che sulla ragione individuale, sulla ideologia collettiva perché solo essa era scientifica, non quella individuale. Sia perché, Engels, convinto che il progresso avrebbe portato necessariamente alla vittoria del proletariato, ha determinato un’alleanza del movimento operaio con l’ala radicale della borghesia, quella che anticipava quel progresso.23 Al centro di questo accordo, c’era proprio la unicità della ragione. Poi la seconda Internazionale socialdemocratica stabilì che, mentre le scienze sociali erano internamente divise, perché lì c’era l’alternativa scientifica del marxismo, invece la scienza della natura era unica, per proletari e capitalisti. Non si accorse che così la scientificità della ideologia operaia andava a confondersi con una generica scientificità, sulla quale l’accademia poteva giovare a piacimento.

Poi la negli anni ’50 USA e URSS, impegnandosi nella comune gara economica-tecnologica ribadirono la unicità della scienza. Che negli anni ’60 fu contestata dagli studenti, che gridarono “La scienza non è neutrale!”; senza però riuscire ad avere conseguenze istituzionali.

Quindi ci sono precise circostanze storiche che hanno fatto nascere il dogma della unicità della ragione; il quale è rimasto e oggi si mantiene perché non ci sono state mai grosse forze sociali che lo abbiano messo in discussione. Troppi politici oggi preferiscono l’irrazionalismo o il relativismo; e troppi filosofi preferiscono fare la filosofia dei sentimenti.

Fortunatamente da qualche decennio è sorto un movimento ecologico che ha chiesto un progresso diverso, tale che darci una migliore qualità della vita piuttosto che una maggior quantità di vita (consumistica). Nella gente si è diffusa la coscienza che si può e si deve “fermare il progresso scientifico”, come quello delle centrali nucleari (referendum negativi in molti Paesi, a incominciare da quello dell’Austria nel 1976). Si è anche capito che questa nuova politica discende da una innovazione politica radicale del secolo XX: la nascita di un metodo nonviolento nel risolvere i conflitti: prima Gandhi con la liberazione dell’India e poi le liberazioni nonviolente dei popoli dell’Est nel 1989 hanno dimostrato che esiste un’altra razionalità nel risolvere le guerre; una razionalità che è diversa da quella scientifica tecnologica che ha portato alla folle corsa alle armi (ad es. nucleari, ma anche batteriologiche e metereologiche) che minaccia cupamente il suicidio dell’umanità.

D’altronde non era difficile capire che ci sono più razionalità sulla base della esperienza generale: la ragione greca non aveva mai messo in conto la razionalità femminile, che certamente non è quella maschile. E noi l’abbiamo visto in precedenza (par. 5): non la filosofia o la ideologia politica, ma la logica matematica porta a differenti razionalità, formalizzate rigorosamente in logiche diverse e incompatibili tra loro. Le varie scienze pure: la razionalità della termodinamica non è quella della meccanica di Newton.

Ma allora come si sceglie sulla scienza? Lo abbiamo visto considerando i quattro modelli di teoria scientifica. E quale è il risultato di queste scelte? Non l’irrazionalismo, o l’indifferentismo, o la vita dei soli sensi; ma il pluralismo di un numero preciso di razionalità, in accordo con quella enorme esperienza storica che è stata la scienza occidentale; esperienza che, una volta conosciuta nei suoi fondamenti, resta come guida sapienziale per l’umanità.

Ma allora il problema vero non è se la ragione sia unica, ma il suo legame con l’etica (delle scelte). In Occidente la scienza ha sempre subordinato l’etica, invitando la gente a “saper convivere con il progresso” senza resistergli; cioè, ad adeguarsi ad esso anche se comportava profondi cambiamenti di modelli di vita (si pensi ad esempio a come l’ingresso della automobile ha cambiato la vita della gente: così tanto che il suo possesso anticipa e precostituisce il formare la propria famiglia; oppure si pensi a come ha cambiato la mente della gente lo stare quattro ore al giorno (media europea) davanti alla TV, o l’avere un cellulare per passare un gran parte della vita per comunicare con persone lontani; e per dire che cosa?). La giustificazione presentata alla gente che essa deve accettare di buon grado il “costo umano del progresso”, anche se in Italia ci sono 5.000 morti l’anno per incidenti stradali e che ci sono le morti programmate (statisticamente) a causa dell’uso della radioattività in mille applicazioni sociali (ad es. impedire che le patate diano getti). Il tutto giustificato con il fatto che la ragione è unica, quindi la scienza è unica, quindi non ci sono alternative a questo progresso tecnologico e sociale.

Allora il salto culturale che è da fare può essere rappresentato dalla seguente tabella, dove si vedono i due rapporti scienza-etica che si confrontano. Il contrasto dei due atteggiamenti sta tutto sulla collocazione dell’unità: se su una costruzione intellettuale, incomprensibile dai fruitori e incontrollabile dalla società; oppure sul genere umano, e quindi la solidarietà con le persone.

Tab. 3: DUE ATTEGGIAMENTI SU SCIENZA ED ETICA: L’OCCIDENTALE E IL NONVIOLENTO

Occidentale

Nonviolento

SCIENZA

Unità della scienza (tra teorie scientifiche non esistono conflitti irriducibili): “La” scienza Le teorie scientifiche hanno tra loro conflitti che sono irriducibili

CONFLITTO

Ci sono conflitti umani che non sono risolvibili senza distruggere una delle parti E’ impossibile che un qualsiasi conflitto non sia risolubile, data la unità del genere umano

1 Questo punto è stato messo in luce molto bene da A. Koyré: Dal mondo chiuso all’universo infinito, Feltrinelli, Milano, 1970.

2 In proposito è utile l’articolo di P. Cerreta e A. Drago: “50 anni di didattica della fisica, Il tempo nella scuola, 7 (1992) aprile, 14-17.

3 A. Drago e G. Forni: “A chi serve l’insiemistica?” Scuola Documenti, n.14 (1978), 40-48.

4 Anche negli USA l’insiemistica fu di moda. Contro di essa scrisse M. Kline: “Why John does not add”.

5 Una rassegna di questi argomenti, tale da essere presentata agli studenti delle scuole superiori, è in Insegnanti nonviolenti: Matematica della guerra, Ed. Gruppo Abele, Torino, 1987. Per gli insegnanti è utile A. Drago: “La matematica è senza conflitti? Matematica dei conflitti e conflitti in matematica”, Atti Fond. Ronchi, 55 (2000) 243-259.

6 Note bibliografiche su Richardson e alcuni articoli originali sul tema sono in J. R. Newman (ed.): The World of Mathematics, Schuster, New York, 1956, vol.II, 1238-1265. Una biografia scientifica di Richardson: O.M: Ashford: Prophet or Professor?, Hilger, Bristol, 1985.

7 J. von Neumann, O. Morgenstein: Theory of games and economic behavior, Princeton U. P. . I cinquant’anni della nascita di questa teoria sono stati celebrati con l’assegnazione del premio Nobel per l’economia.

8 Di A. Rapoport è classico: Strategia e Coscienza, Bompiani, Milano, 1963. I libro illustra la teoria dei giochi ad un livello più intelligente ed approfondito di quello dei tanti libretti in libreria con questo titolo; ed è anche una applicazione del gioco più famoso, il dilemma del prigioniero, ai rapporti USA-URSS.

9 Questo gioco ha formalizzato il contenuto di una novella (a rigore, la teoria dovrebbe introdurre il gioco giustificando la scala di preferenze rappresentata poi dalla tabella; io qui semplifico, riferendomi ai significati intuitivi che la novella fa associare ai numeri).

10 In letteratura questi paradossi vengono dati per risolti mediante la teoria degli equilibri di Nash. Ma, come lo stesso teorema di Minimax, essa è basata su operazioni non costruttive, che cioè si appellano all’infinito in atto. Vedasi il mio: “Finite game theory according to constructive, Weyl’s elementary, and set-theoretical mathematics”, Atti Fond. Ronchi, 57 (2002) 421-436.

11 A Drago, G. Toraldo: “Il dualismo discreto-continuo nella storia delle teorie matematiche della guerra”, in S. D’Agostino, S. Petruccioli (eds): Atti V Conv, Naz. Storia Fisica, Acc. dei XL, Roma, 1985, 375-382.

12 Un articolo originale è riportato in J. R. Newman: op. cit.. In A. Drago: “La matematica…,”, op. cit., c’è una breve illustrazione. In Insegnanti nonviolenti: op. cit., è riportato un altro caso interessante di statistica dei conflitti.

13 A. Drago e A. Pirolo: “Urto, teorie meccaniche e nonviolenza”, in A. Drago, M. Soccio (ed.): Per un modello di difesa nonviolento, Editoria Univ, Venezia, 1995, 192-208. A Drago e A. Sasso: “Entropia e difesa”, in G. Stefani (ed.): Una strategia di pace: La difesa popolare nonviolento, Fuorithema, Bologna, 1993, 153-162; A. Drago: “Modelli logici, matematici e fisici dei conflitti e delle loro soluzioni”, in M. Zucchetti (ed.): Contro le nuove guerre. Scienziati e scienziate contro la guerra, Odradek, Roma, 2000, 73-81.

14 D. Prawitz and P.-E. Malmnaess: “A survey of some connections between classical, intuitionistic and minimal logic”, in A. Schmidt and H. Schuette (eds.): Contributions to Mathematical Logic, North-Holland, Amsterdam, 1968, 215-229; J.B. Grize: “Logique” in J. Piaget (ed.): Logique et connaissance scientifique, Éncyclopédie de la Pléiade, Gallimard, Paris, 1970, 135-288, pp. 206-210; M. Dummett: Elements of Intuitionism, Claredon, Oxford, 1977. Una mia illustrazione è: “Il ruolo della logica non classica nei fondamenti e nella didattica della scienza”, A. Repola Boatto (ed.): Pensiero scientifico, Fondamenti ed Epistemologia, IRRSAE Marche, Ancona, 1997, 191-209 e “Traduzione, doppia negazione ed ermeneutica”, Studium, 99 (2003) 769-780.

15 S. Freud: “La negazione” (1925), in Opere, Boringhieri, 1980, vol. X; per una interpretazione di questo scritto mediante le doppie negazioni, si veda A. Drago e E. Zerbino: “Sull’interpretazione metodologica del discorso freudiano”, Riv. Psicol., Neurol. e Psichiatria, 57 (1996) 539-566.

16 Si noti che la successiva fondazione dell’analisi, data da Cauchy e Weierstrass, quella di definire il limite mediante la tecnica dell’ε-δ, non ha eliminato affatto l’infinito in atto; vedasi E.G. Kogbetlianz: Fundamentals of Mathematics from an Advanced Point of View, New York : Gordon & Breach, 1968, App. II.

17 Per maggiori particolari si veda il mio articolo: “Lo schema paradigmatico della didattica della Fisica: la ricerca di un’unità tra quattro teorie”, Giornale di Fisica, 45 n. 3 (2004) 173-191.

18 Maggiori particolari nell’articolo di C. Bauer e mio: “Didattica della chimica e fondamenti della scienza”, Atti XI Conv. Naz. Storia e Fondamenti della Chimica, Acc. Naz. Sci. XL, 123, vol. 29, 2005, Torino, 2005, 353-364.

19 Vedansi i lavori S. Cicenia e A. Drago: “Didattica delle geometrie non euclidee: quali proposte?”, Period. Matem., 63 (1987) 23-42; “La logica non classica nella geometria non euclidea di Lobacevskij”, B. Rizzi et al. (eds.): Matematica moderna e insegnamento, Ed. Luciani, Roma, 1993, 434-442; “The organizational structures of geometry in Euclid, L. Carnot and Lobachevsky. An analysis of Lobachevsky’ s works”, In Memoriam N. I. Lobachevskii, 3, pt. 2 (1995) 116-124; La Teoria delle Parallele secondo Lobacevskij (con inclusa la traduzione e cura di I. N. Lobacevskij: Untersuchungen der Theorien der Parallelellineen, Finkl, Berlino, 1840), Danilo, Napoli, 1996,

20 A. Drago: “A.N. Kolmogoroff and the Relevance of the Double Negation Law in Science”, in G. Sica (ed.): Essays on the Foundations of Mathematics and Logic, Polimetrica, Milano, 2005, 57-81.

21 Per maggiori particolari vedasi il mio articolo: “La Tradizionale didattica della Matematica tra astrattismo e strumentalismo”, in G. Ferrillo (ed.): Atti convegno sulla didattica delle scienze, Aversa, 2008 (in stampa).

22 Si veda la eccellente descrizione data da J. Ben-David: Il ruolo dello scienziato nella società, Il Mulino, Bologna, 1974.

23 Marx, che era stipendiato da Engels, non fu d’accordo ed ebbe il coraggio di scriverlo ne La critica del programma di Gotha (1875), Ed. Riuniti, 1974 (Gotha era la città dove c’era il congresso della socialdemocrazia che avrebbe deciso questa alleanza).

Annunci

CONSIDERAZIONI SULLE GEOMETRIE NON EUCLIDEE del Dott. Antonino Drago, Università di Pisa

NDC

Abbiamo ricevuto dal dott. Antonino Drago  i suoi due pregevoli interventi già pubblicati sulla rivista ‘MATEMATICAMENTE‘ e riportati in due files, da inserire direttamente nel nostro Blog. Rimarranno in questo Post separato per qualche tempo per renderli più visibili, poi li inseriremo insieme agli altri in un unico Post (Geometria e Natura) dedicato alle Geometrie  non Euclidee ed altro, secondo il nostro criterio che ‘guarda’ lo stesso oggetto culturale da più punti di vista, per renderlo meglio assimilabile.

Rimaniamo disponibili a inserire nel nostro Blog anche gli altri articoli scientifici che il dott. Drago vorrà inviarci (es., articoli sulla didattica ed epistemologia della matematica e fisica, sull’insegnamento della relatività e della teoria dei quanti…; anche riproporre lavori già pubblicati, se possibile).

Anonimo

(dott. Piero Pistoia, NDC)

tonino drago 1

tonino drago 2 (1)

UN PARZIALE PERCORSO DI BASE (1) SULL’ANALISI DI UNA SERIE STORICA REALE, POCO INTUITIVA, COMMENTATO CON IL LINGUAGGIO R E COL MATHEMATICA DI WOLFRAM; SUBROUTINE PERIODOGRAMMA CON ESERCIZI; del dott. Piero Pistoia

CURRICULUM DI PIERO PISTOIA

cliccare su:

piero-pistoia-curriculumok (0)

Problemi di inquadramento del testo

PRIMA BOZZA DI INDICE A LINKS INTERNI in via di costruzione

Links

1 – PREMESSA sullo stato dell’articolo
2 – IN ANTEPRIMA : la funzione PRDGRAM e l’esercitazione (8 esercizi) sul PERIODOGRAMMA
3 – IL PROLOGO

RIASSUNTO

PARTE Ia

    1. Cenni operativi sui concetti di statistica implicati nell’analisi di una serie storica

    2. Correlogramma ed il Periodogramma

      1. Il Correlogramma ed il Test di Durbin-Watson

      2. Il Periodogramma

    1. Il modello di Regressione Lineare Semplice (RLS)

      1. Prima direzione di ricerca

      2. Seconda direzione di ricerca

        1. Significato dell’analisi dei residui

        2. Stime sulle grandezze della Popolazione

    1. Cenni al significato di media mobile

PARTE 2a

    1. Analisi della serie storica “ Concentrazione Arsenico”

                           Metodo delle “Medie Mobili Centrate” – Modello Additivo

    1. Scopo della ricerca

    2. Analisi preliminare e individuazione di outliers

    3. La serie corretta

    4. Gli Effetti Stagionali e la serie destagionalizzata y1t

    5. Il Ciclo-Trend smussato e la componente casuale

    6. Il modello di regressione lineare semplice e test relativi

      1. Adeguamento del modello di regressione alla popolazione

      2. Il residuo della regressione e l’affidabilità dei tests

 

4 – Cenni al METODO DELLA MEDIA MOBILE
5 – INIZIO AREA FRA PARENTESI

Programmi utili  in R commentati e controllati. Il Correlogramma , la Statistica di Durbin Watson, il Periodogramma (applicato come esercizio a medie trimestrali). Formule trigonometriche delle armoniche costruite dai dati di sfasamento e ampiezza riportati nei risultati.

6 – CENNO A COMANDI DI CALCOLO ED ORGANIZZAZIONE DEI DATI
Filter, matrix e ts di R. Commento sulle prime istruzioni di R (carica dati da file) e processi per automatizzare i ‘conti’
7 – ECCO QUELLO CHE FAREMO CON R: ‘LETTURE’ SUI PROCESSI
8 – INIZIO COPIA SCRIPTS DEL PROGRAMMA CENTRALE
Vari commenti anche difformi e riflessioni anche alternative
9 – PRIMA PARTE IN SINTESI
10 – SECONDA PARTE IN SINTESI
Un altro tentativo sulla caccia ai residui (media mobile 3*3)

11 – L’EPILOGO

EPILOGO

PARTE IIIa

ULTERIORI APPROFONDIMENTI

1 – APPlICHIAMO UNA REGRESSIONE LINEARE MULTIPLA

              1_1 – COME CALCOLARE LA F DI FISHER NELLE RLM ([3] 856-860)

              1_2 – COME CALCOLARE L’ERRORE STANDARD (ES) SUI COEFFICIENTI DI REGRESSIONE NELLA RLM

2 – APPLICHIAMO UNA REGRESSIONE MULTIPLA “PESATA”

3 – AZZARDIAMO UNA PREDIZIONE NEL FUTURO

4 – CONCLUSIONI E SUGGERIMENTI

BIBLIOGRAFIA

12 -APPENDICE1

Il Correlogramma ed il Test di Durbin-Watson – Lettura Correlogramma

13 -APPENDICE2

PROGRAMMI IN BASIC: calcolo Coefficienti di Autocorrelazione, il Test di Durbin-Watson, il Test della  normale di Lin-Mudholkor, analisi spettrale per il Periodogramma. Calcolo dei coefficienti in una regressione multipla (MLR), calcoli con le matrici, metodo di Cholescki. Calcola il radicando dell’errore Standard delle predizioni con la RLM, calcolo matriciale. Tavole per il Test di Normalità di Lin-Mudholkar e per il Test di Durbin-Watson.

14 -APPENDICE3

Tabelle 1-4 dei risultati sull’analisi della serie storica in studio relative all’articolo “Esempi guidati di statistica applicata” di P. Pistoia

15 -APPENDICE4

Analisi con il linguaggio R della serie storica trimestrale rivisitata e ampliata con periodogrammi risultati e grafici.

16 -APPENDICE5

ARTICOLO PREMESSA: “Il senso comune, l’insegnamento scientifico ed i saperi preposti alle scelte” di P. Pistoia

ARTICOLO COMMENTO: “Analisi di Fourier con commenti su dati reali e simulati con il Mathematica di Wolfram vers. 4.2.” di P. Pistoia

“PROGRAMMI in Mathematica con esercitazioni” di P. Pistoia

Vari esempi analizzati compreso ‘Oscillazione mensile ozono a Montecerboli (Pomarance, Pi), 2007,2011’

L’Esempio 5 si riferisce all’analisi della serie storica concentrazione As detrendizzata.

 

1 – PREMESSA

PREMESSA SULLO STATO DELL’ARTICOLO

Il presente scritto diventa, sempre più articolato ‘nell’andare’, sempre meno lineare, continuando a riempirsi di parentesi, di alternative informatiche, di pause di riflessione, di ritorni e di correzioni (si veda, per es., il caso del periodogramma come function, ormai praticamente risolto, inseribile come modulo all’interno di qualsiasi programma scritto dai lettori) ecc.. Per me è questo il ‘vero’ articolo scientifico col suo ‘travaglio raccontato (trouble)’, denso di stimoli, possibilità nascoste, interferenze casuali… e non lo scritto finale asettico e razionalmente ripulito, che banalizza il percorso. In questa ottica qualcuno ha detto che l’articolo scientifico è un inganno (Antiseri).  Possiamo forse affermare che seguire il ‘processo’  è come un auto-porsi  domande-risposte, attraverso una successione di ipotesi-falsificazioni, una sorta di MAIEUTICA  SOCRATICA che favorirebbe la costruzione del concetto? Il filosofo non insegna nulla ai discepoli, ma piuttosto a scoprire la ‘verità’, che potenzialmente hanno già dentro di loro (per processo co-evolutivo con la Natura), attraverso una successione di argomentazioni su  punti interrogativi. Allora, dal punto di vista educativo-didattico è più importante il percorso o la meta, la storia o l’evento? (meditate, gente, meditate!). Secondo me si apprende molto più e meglio se spingiamo a riflettere sugli errori  rilevati, sulle ipotesi a cammino chiuso, sulle falsificazioni insomma, anche in termini di memoria, che seguire acriticamente un racconto lineare, ‘ripianato’, anche se intrinsecamente coerente. In questa disquisizione aperta si inserisce bene anche l’altro aspetto di un Socrate-docente che, perchè ‘ignorante’,  costruisce insieme al discepolo, senza conoscenze preacquisite (risuonano qui le posizioni di Foerster e Bruner, da richiamare in questo blog).

Per sovrapporre però una ‘lettura’ su video meno discontinua e difficile, che serva come back-ground, una guida all’apprendimento più lineare,  più conforme, meno a ‘frullato di pezzi di concetti’ e quindi forse più facile e più gradevole,  trasferiamo, col titolo ‘IL PROLOGO’, la prima parte dell’articolo originale dello stesso autore (senza l’uso di R, ma di scripts in Qbasic ed Excel), di cui lo scritto in questione voleva essere una ‘lettura rivisitata’ mediata dal linguaggio R e dal Mathematica di Wolfram. Prima delle appendici trasferiamo anche la seconda parte col titolo ‘L’EPILOGO’. L’intenzione è introdurre all’inizio anche un INDICE a link per migliorare l’accesso alle diverse ‘zone mosaico’ dell’articolo. Mi scuso per ‘questo andare’ poco controllato! Se mi rimanesse più energia mentale e ‘tempo di vita’ forse potrei anche rivisitarlo. 

Comunque, un buon apprendistato sarebbe quello di leggere, prima di questo intervento, il primo post dal titolo “Un percorso verso il periodogramma” curato dallo stesso autore. Grazie.

2 – IN ANTEPRIMA

IN ANTEPRIMA

ECCO LA FUNCTION PRDGRAM DEL PERIODOGRAMMA IN R  di Piero Pistoia

FUNZIONE DEL PERIODOGRAMMA in pdf

FUNZIONE DEL PERIODOGRAMMA1 in odt

ATTENZIONE!

Segue una proposta di esercitazione da attivare sulla consolle di R: 1) si incolla la f. PRDGRAM in R e in successione 2) si trasferiscono gli ESERCIZI dell’esercitazione, per es., uno alla volta. Si hanno i dati e grafici in uscita per ogni ESERCIZIO. Ricordarsi, una volta sulla consolle, per prima cosa, sempre azzerare  i dati, che R ha già in memoria, tramite il menù ‘VARIE’ (Rimuovi tutti gli oggetti) e poi introdurre in R, prima di incollare la PRDGRAM, le ‘library’ necessarie (tseries e graphics). 

period_reg_rand0001

Per vedere in odt l’Esercitazione cliccare sotto:

Periodogramma _di_dati_simul trend_random_mod2_3 in odt

0ppure……. continuare a leggere…….


PROPOSTA DI ESERCITAZIONE ANCHE PER FAVORIRE L'ACQUISIZIONE 
INTUITIVA DELLA 'LETTURA' DI UN PERIODOGRAMMA (contenuta nel 
precedente link)

Inizialmente vogliamo simulare ad hoc una serie storica 
'tabellando' n=21 dati da tre funzioni del seno con costante 
additiva 100,con ampiezze rispettivamente 4,3,6 e 'frequenze' 
nell'ordine 2/21, 4/21,5/21 e infine  fasi -pi/2, 0, -1.745, 
con  il comando iniziale di di R: t=c(1:n), usando come base 
per i nostri esempi proprio questa espressione:
 
yt=100+4*sin(2*pi*2*t/n-pi/2)+3*sin(2*pi*4*t/n+0)+
6*sin(2*pi*5*t/n-1.745) #0.

Calcolati i 21 dati yt, attribuendo a t valori da 1 a 21 
nell'espressione precedente, tali dati rappresentano 
proprio lanostra serie storica da sottoporre al 
Periodogramma, una volta precisati i tre valori 
essenziali da passare ad esso (yt,n,m), dove m è il 
numero di armoniche da calcolare; m=n/2-1 se n è 
pari; m=(n+1)/2 se m è dispari. 
Tramite il nostro programma in R calcolammo allora 
i valori di ampiezze e fasi per le prime 10 armoniche 
riscoprendo nei dati le oscillazioni che c'erano.
Per esercizio continuiamo a simulare serie storiche 
modificandol'espressione di base, modificandola anche 
aggiungendo, a scelta, un trend lineare (k*t) e/o 
valori random onde controllare se il Periodogramma 
riesce a"sentire", oltre alle oscillazioni armoniche, 
anche il trend e la componente casuale.
Con l'istruzione '#' elimineremo secondo la necessità 
le linee di programma non utilizzate per lo scopo 
prefissato.
	 
Proviamo, prima, ad applicare il programma su 21 dati 
simulati dalle espressioni di una retta inclinata e da 
una serie random estratta da una distribuzione gaussiana. 
Sceglieremo poi una combinazione di seni interessanti 
più adatta a proseguire l'esercitazione.  
period_reg_rand0002


PERCORSI DA INVESTIGARE
 
par(mfrow=c(1,1))

 #n=21
 #n=240
			
 #t=c(1:n)
 
 # yt=0.5*t # 1
 #si tratta di un ramo di iperbole(?)discendente
 
 #yt=c();yt[1:t]=0
 
 #yt <- rnorm(t,0,1) # 2
 #yt=-4+ 0.5*t + rnorm(t,0,1) # 3
 
#yt=100+4*sin(2*pi*2*t/256-pi/2)+3*sin(4*t/256*2*pi+0)+
6*sin(5*t/256*2*pi-1.745) # 4 
#analisi yt; tenendo come base questa espressione con 
armoniche basse, ro è sulla rampa alta #della 'iperbole' 
e si obnubila il trend.
 
 #yt=100+4*sin(2*pi*2*t/n-pi/2)+3*sin(2*pi*4*t/n+0)+
6*sin(2*pi*5*t/n-1.745) + 0.1*t # 5 
 
#analisi yt_reg
 
 #yt=100+2*sin(2*pi*2*t/n-pi/2)+sin(2*pi*4*t/n+0)+
3*sin(2*pi*5*t/n-1.745) + rnorm(t,0,1)*2 # 6 
 #analisi yt_rnorm: diminuiamo le ampiezze e aumentiamo 
i random
 
 #yt=100+4*sin(2*pi*2*t/n-pi/2)+3*sin(2*pi*4*t/n+0)+
6*sin(2*pi*5*t/n-1.745) + 0.5*t)+(rnorm(t,0,1)-1/2))  # 7 
 #analisi yt_reg_rnorm

 yt <- 6*sin(2*pi*5*t/n)+2*sin(2*pi*30*t/n)+ 
3*sin(2*pi*40*t/n)+0.1*t + rnorm(n,0,1)*2 # 8 

 #questa espressione anche con 'frequenze' alte (30,40) è la 
 #più indicata a dimostrare che il Periodogramma 'scopre' anche trends 
 #e randoms oltre alle oscillazioni sinusoidali.
 
Ora possiamo prevedere che cosa accade se togliamo una 
o due di queste tre,basta far girare il programma nei 
diversi casi. 
 In questo contesto nel prosieguo useremo invece, per 
esercizi, le tecniche di scomposizione di una serie 
storica: proviamo a 'destagionalizzarla' in successione 
con due o tre medie mobili opportune (o magari col 
comando filter di R) per controllare che cosa rimane 
(che cosa accade ai random?). Potevamo anche 
'detrendizzarla prima con una regressione lineare, 
ovvero eliminare i random con una media mobile 3*3 ecc..
period_reg_rand0003

TRACCIA DEI PERCORSI

ESERCIZIO N° 0

n0=256 # può essere cambiato
t=c(1:n0)
yt0=100+4*sin(2*pi*2*t/n0-pi/2)+3*sin(2*pi*4*t/n0+0)+
6*sin(2*pi*5*t/n0-1.745)
yt0 # la serie storica
ts.plot(yt0)
if(n0/2==n0%%2) m0=n0/2-1 else m0=(n0-1)/2
yt0_period=PRDGRAM(yt0,n0,m0)
yt0_period # data in uscita con ampiezza e fase, per il 
controllo
yt0_period$ro # vettore delle ampiezze
ts.plot(yt0_period$ro)

Esercizio N° 1

n01=21
t=c(1:n01)
yt1=0.5*t
yt1 # serie storica
ts.plot(yt1)
if(n01/2==n01%%2) m01=n01/2-1 else m01=(n01-1)/2
yt1_period=PRDGRAM(yt1,n01,m01)
yt1_period #data in uscita comprese ampiezze e fasi
yt1_period$ro #vettore delle ampiezze
ts.plot(yt1_period$ro)

Esercizio N° 2

n2=21 # può essere cambiato
t=c(1:n2)
yt2<- rnorm(t,0,1)
plot(yt2)
yt2 # serie storica
if(n2/2==n2%%2) m2=n2/2-1 else m2=(n2-1)/2
yt2_period=PRDGRAM(yt2,n2,m2)
yt2_period # data in uscita
yt2_period$ro # vettore delle ampiezze
plot(yt2_period$ro)

ESERCIZIO N° 4

n4=256 # può essere cambiato
t=c(1:n4)

yt4=100+4*sin(2*pi*2*t/256-pi/2)+3*sin(2*pi*4*t/256+0)+

6*sin(2*pi*5*t/256-1.745)
yt4 
ts.plot(yt4)
if(n4/2==n4%%2) m4=n4/2-1 else m4=(n4-1)/2
yt4_period=PRDGRAM(yt4,n4,m4)
yt4_period # data in uscita
yt4_period$ro # vettore delle ampiezze
ts.plot(yt4_reg$ro)




ESERCIZIO N° 5

n5=256 # può essere cambiato
t=c(1:n5)

yt5=100+4*sin(2*pi*2*t/256-pi/2)+3*sin(2*pi*2*pi*4*t/256+0)+

6*sin(2*pi*5*t/256-1.745)-0.1*t

plot(yt5,type=”l”)
if(n5/2==n5%%2) m5=n5/2-1 else m5=(n5-1)/2
yt5_reg=PRDGRAM(yt5,n5,m5)
yt5_reg # data in uscita
yt5_reg$ro # vettore delle ampiezze
ts.plot(yt5_reg$ro)
                               ____________________________________________

perio_reg_rand0001ESERCIZIO N° 8
par(mfrow=c(1,2))
n8=100 # può essere cambiato
t=c(1:n8)

yt8=6*sin(5*pi*2*t/n8-pi/2)+2*sin(2*pi*30*t/n8+0)+3*sin(2*pi*40*t/n8-1.745)+rnorm(n8,0,1)*2

ts.plot(yt8)
if(n8/2==n8%%2) m8=n8/2-1 else m8=(n8-1)/2
yt8_reg=PRDGRAM(yt8,n8,m8)
yt8_reg # data in uscita
yt8_reg$ro # vettore delle ampiezze
ts.plot(yt8_reg$ro)

GRAFICO YT8 E PERIODOGRAMMA (Yt8_reg$ro) SENZA IL TREND
period_confronti0001
GRAFICO DI Yt8_reg_rnorm n=240
period_confronti0002

 

GRAFICO Yt8  ANCHE CON IL TREND (serie originale)
 
 period_confronti0004
#RIFLESSIONI
#Se aggiungo il trend 0.1*t a yt8 ottengo il grafico 
precedente. Confrontando il grafico che segue#e quello 
precedente sarebbe interessante approfondire 
intuitivamente perchè col trend le ampiezze
#vengono disturbate tanto più quanto più lentamente 
scende a zero il ramo di 'iperbole'.Sembra #quasi così, 
induttivamente, si possa affermare la regola empirica 
(ipotesi) che armoniche con #frequenze più alte  vengano 
disturbate meno di quelle più basse, che si posizionano 
sul ramo a #pendenza più elevata e con i suoi punti 
più distanti dall'ascissa. Se sommiamo la distanza della 
#base dei picchi dall'asse orizzontale alla cima dei 
picchi l'ampiezza tenderebbe al valore della 
#formula? Se togliamo anche i random da yt8 i tre picchi 
sarebbero poggiati sull'asse orizzontale?#La numerosità 
di yt8 influisce o no sulla velocità con cui si muove 
verso l'asse x la curva del  trend? Cercare di rispondere 
osservando i grafici precedenti.
 period_reg_rand0004

FINE ANTEPRIMA

<A NAME=”punto3″>IL PROLOGO

IL PROLOGO

3 – PROLOGO

COME INTRODUZIONE RIPORTIAMO LA PRIMA PARTE DELLA RICERCA ORIGINALE (SENZA L’USO DI R);  LA SECONDA PARTE VIENE RIPORTATA PRIMA DELLE APPENDICI. 

piero_stat0001

pier_stat0001

pier_statw30001

SE VUOI APPROFONDIRE LE PROBLEMATICHE RELATIVE A FOURIER VEDI L’APPENDIX5

pier_stat0002

pier_stat50001

pier_stat6y0001

pier_stat0005

pier_stat0006

pier_stat90001pier_stat0007

pier_stat0008
pier_stat120001

pier_statz130001

LA COSTRUZIONE SI FA CON L’ANDARE!

 LA FUNCTION DEL PERIODOGRAMMA ora può essere trasferita come modulo in qualsiasi  altro programma scritto da chiunque!  Abbiamo  cercato di correggere  tutti gli scripts dove figurava questa funzione all’interno di questo post.  Vedere di seguito (area definita “fra parentesi”) il funzionamento di  un listato con svariati richiami a questa funzione con proposte di ‘gioco’ con le armoniche su una serie storica reale (serie storica trimestrale) …. Il   listato del periodogramma è lungo e articolato. Nell’analisi di una serie di dati storici con piu’ serie derivate capita spesso di far uso di questo listato per guardare all’interno delle serie. E’ pertanto utile riuscire a scrivere una sola volta questo listato per poi richiamarlo quando serve. Da riorganizzare anche testo e paragrafi. Problemi sorgono anche perché R memorizza all’uscita tutti gli oggetti su cui ha lavorato che tacitamente, pur nascosti, sono ancora disponibili. Questi valori possono interagire sui programmi in via di sviluppo, creando situazioni le più disparate. In generale conviene dal menù ‘varie’ eliminare questi valori prima di far girare o costruire programmi! Si cercherà con calma  di attivare i controlli  anche sugli altri post, dove figura la function PRDGRAM.

ATTENZIONE: I SEGMENTI DELL’ARTICOLO IN GRIGIO CHIARO HANNO UNA BARRA ORIZZONTALE IN FONDO PER MUOVERE LO SCRITTO A DESTRA E SINISTRA, SE LO SCRITTO ESCE DALLO SCHERMO

stat_reg_mlr_blog0001

 FINE PROLOGO

 

               UN PARZIALE PERCORSO DI BASE SULL’ANALISI STATISTICA DI UNA SERIE STORICA REALE POCO INTUITIVA COMMENTATO CON IL LINGUAGGIO R

“Letture” su concetti statistici e su alcuni aspetti della programmazione

Dott. Piero Pistoia

PREMESSA

NB – I GRAFICI OTTENUTI CON IL SUPPORTO DEL PROGRAMMA CORR IN QBASIC (ALLEGATO) E DI EXCEL,  SE RIUSCIAMO A RIDISEGNARLI TUTTI, FACENDO GIRARE GLI SCRIPTS DEL LINGUAGGIO R CHE SEGUONO, QUESTO E’ UN EFFICACE CONTROLLO INTERNO ALLO SCRITTO.

Il file.dati che prenderemo come campione da analizzare riguarda le concentrazioni mensili di arsenico (As) misurate in mg/l nelle acque della Carlina (sorgenti Onore), prov. Siena, nell’intervallo di tempo 1989- 1993 (5 anni, 60 mesi con inizio da gennaio). Dopo interpolazione per i dati mancanti,   un’analisi preliminare (Modello Additivo secondo il Metodo delle Medie Mobili Centrate) porta ad individuare tre residui standardizzati elevati (> 2 in valore assoluto e quindi considerati outliers da eliminare e sostituire con nuova interpolazione,ottenendo così una serie storica corretta, stocastica e discreta; stocastica, nel senso che il futuro è solo parzialmente determinato dai valori del passato e discreta, nel senso che le misure sono fatte in tempi specifici (ogni mese) a uguali intervalli.

Su questa serie (yt=as1) di 60 dati – inserita nel file che si chiama As-Carlina1.csv – e che comunque   verrà esplicitata all’inizio dell’analisi – procediamo “a fare i conti” e a gestirla con R. Questa parte iniziale preliminare verrà trattata successivamente.

Intanto alleghiamo di seguito Il grafico della serie corretta e interpolata (Graf. N.1).

 

priodogramma0001

L’analisi di base di una serie storica procede alla ricerca delle uniformità al suo interno, come TREND, vari tipi di stagionalità periodica (giornaliera, settimanale, mensile, trimestrale ecc.) correlata al carattere dei dati che abbiamo (orari, giornalieri, settimanali,ecc.), cicli con eventuale periodo superiore che esce dal range dei dati (in generale periodo e ampiezza variabili), la componente random, che riassume lo ‘white noise’ ed altro (impulsi erratici). Alleghiamo come informazioni preliminari anche il relativo grafico dell’autocorrelogramma e del periodogramma (GRAF. N. 2, a e b). Si rimanda al loro significato e processo alla Appendice 1 di questo articolo e al Post scritto a nome di P.Pistoia ed altri, facilmente accessibile da questo sito, per es., battendo periodogramma nella finestra ‘Cerca’. Anticipiamo che dal correlogramma (GRAF. N.2 a)  si osservano una stretta convessità intorno al valore 12-13 che supera la fascia dell’errore, una ondulazione dei picchi (forse una oscillazione), un permanere di picchi nella zona positiva (TREND) ed altro e quindi  si evince che i dati della serie al 95% di fiducia, non sono random e dal periodogramma  si nota un picco forse rilevante corrispondente al valore 5  (5 oscillazioni nel range dei dati, cioè 5 oscill. in 5 anni, una oscillazione all’anno, quindi periodo=12 mesi). In dati mensili, una oscillazione periodica di periodo 12 è allora un’ipotesi plausibile.

Scegliamo di procedere, come tentativo, per prima cosa ad eliminare dalla serie storica corretta ( yt o as1) l’oscillazione stagionale prevista dai grafici precedenti. Useremo vari metodi per farlo e confronteremo poi i risultati.

priodogramma0002

 

4 – Cenni al METODO DELLA MEDIA MOBILE

SINTESI SUL METODO DELLA MEDIA MOBILE

Il metodo della media mobile consiste nel sostituire ai valori osservati, valori artificiali corretti, ottenuti effettuando la media di ciascun valore con quelli contigui (per il calcolo vedere, per es.,  [3] pag. 997), ottenendo una nuova serie storica.

Se da una serie storica vogliamo eliminare una oscillazione di un dato periodo, bisogna scegliere, per il calcolo della media, una lunghezza del periodo mobile uguale il più possibile alla lunghezza del periodo dell’oscillazione prevista.

E’ da tener presente che sembra che talora tale metodo abbia il difetto di inserire un ciclo fittizio in una serie storica anche casuale. Abbiamo controllato nel caso della serie trimestrale enucleata da quella in studio (vedere dopo).

Useremo la Media Mobile Centrata di ordine 12 (come suggerito dai grafici preliminari) che di norma elimina l’oscillazione di uguale periodo insieme alle componenti casuali dalla serie originale, trasformando la serie mensile originale (yt o as1,  che inizia con gennaio, APPENDIX3, TABELLA N.1, col.5  ) in una serie storica di dodici termini più corta (la serie Mbt, APPENDIX3, TABELLA N.1, col.6,  che perde i valori dei primi sei mesi e degli ultimi sei, e inizia da luglio). Da porre attenzione che nel processo di scorciamento il primo termine della serie Mbt si riferisce al mese di luglio del primo anno e così via. L’Mbt sottratta da quella originale (as1) ne fornisce una della stessa lunghezza della precedente (48 temini), l’STRD (componente stagionale + random, APPENDIX3, TABELLA N.1, col.7 ), sulla quale operiamo poi per ottenere il Fattore Stagionale costituito da dodici termini, uno per ogni mese (oscillazione in un anno). Per ottenere il Fattore Stagionale corrispondente ad un mese, si considerano tutti i valori della serie STRD (più corta di 12 termini) corrispondenti a quel mese e se ne fa la media. Quando faremo girare il programma scritto con R e vedremo i 48 valori della serie STRD, potremo controllare che, per es., i 4 valori del mese di gennaio (il settimo, il diciannovesimo, il trentunesimo, il quarantaduesimo) sono -0.0030, -0.0046, 0.0033, 0.0126 e facendo la media otterremo il 7° elemento del Fattore Stagionale, 0.0022, cioè il primo elemento di ESAs (APPENDIX3, TABELLA N.2, col.1), EFFETTO STAGIONALE,  la cui oscillazione è visibile nel GRAF. N.3 a.

Così per il mese di gennaio si fa la media dei 4 valori di gennaio contenuti nella serie STRD, ottenendo il primo valore dell’Effetto e così via. Con questi processi di media verranno eliminate anche le componenti casuali, se ci sono rimaste, dalla serie STRD che diviene così ST (stagionalità). Ripetendo 5 volte la ST copriamo i 5 anni, ottenendo l’Effetto Stagionale. E’ necessario però prima riorganizzare i 12 termini del Fattore Stagionale, spostando i primi sei termini, alla fine degli ultimi sei in maniera da avere i 12 valori allineati da gennaio a dicembre. Per il controllo di questa oscillazione applichiamoci, per es., il programma CORR scritto in Qbasic dall’autore (nota 2) o in linguaggio R (vedere sotto PARENTESI) e focalizziamo l’attenzione sul periodogramma dell’ultima serie ottenuta per osservare la frequenza di questa oscillazione (GRAF. N.3 a,b dell’Effetto Stagionale, ottenuto invece per mezzo di Excel): chiaramente significativa appare la frequenza 5.  Troveremo lo stesso periodogramma anche con R.  Con R useremo la funzione acf (file, main=”Titolo”), per ritrovare i correlogrammi costruiti con CORR ed excel; per il periodogramma si rimanda anche alla relativa routine qui riproposta, rivisitata e funzionante.

————————————————-

5 – INIZIO AREA FRA PARENTESI

5-AREA FRA PARENTESI

APERTA PARENTESI

Alcuni programmi in R utili nello studio delle serie storiche

Da notare (fra parentesi) il programmino riportato qui sotto, scritto in linguaggio R dal sottoscritto, con i suoi risultati, che calcola egregiamente (almeno sembra) i coefficienti di auto-correlazione di una serie storica di prova:

y=c((1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)). Comunque, nell’andare, lo vedremo in azione per i tanti confronti e prove! Si aggiungono di seguito anche scripts in R per il calcolo di DW (test di Durbin Watson), metodo più efficace nell’analisi dei correlogrammi, sempre del sottoscritto.

ATTENZIONE!  GLI SCRIPTS DEI PERIODOGRAMMI COME SUBROUTINES (functions) SONO IN VIA DI CORREZIONE

RIPORTIAMO SUBITO ANCHE IL PROGRAMMA PIU’ COMPLESSO PER COSTRUIRE IL PERIODOGRAMMA DI UNA SERIE STORICA con i  relativi risultati per il controllo . Un controllo quantitativo più puntuale è stato condotto col MATHEMATICA 4.2 di Wolfram nella APPENDIX4 (Piero Pistoia)

Queste routines  messe sotto forma di Functions serviranno per costruire correlogrammi, tests di DW e periodogrammi ognivolta che servono.

library(tseries)

# PROGRAMMINO ‘CORRELOGRAMMA’

# Un piccolo strumento per allenare anche l’intuito

#dott. Piero Pistoia

result=c() # result=c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
result1=c() # result1=c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
#y=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)
y=c(1:20) 
# Il lettore può a piacere aggiungere altre funzioni (anche numeri casuali), tentare di indovinare # con ipotesi e poi controllare, per acquisire intuizione sul Correlogramma e sui suoi limiti.

#Controllare se le definizioni dei vettori con elementi NA sono necessari! Sembra di no!
#y=c(1,2,3,4,5)
 N=length(y)
 m=10
 yM=mean(y)

 for(h in 1:m){
for (t in 1:N-h){
 result[t]=(y[t]-yM)*(y[t+h]-yM)
 }
result1[h]=sum(result)
} # OK
result1
result2=c()
#result2=c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
#for(h in 1:m){

 for(t in 1:N){
 result2[t]=(y[t]-yM)^2
 }
result3=sum(result2)

# Calcolo il coeff. di correl. di lag 1

rh=result1/result3

t=seq(1:10)

Prh=plot(t,rh)

RISULTATI DELLA PROVA (nessun errore rilevato dalla consolle di R nella prima prova!)

> load(“C:\\Users\\Asus\\Documents\\.RData”)
> library(tseries)

‘tseries’ version: 0.10-32

‘tseries’ is a package for time series analysis and computational
finance.

See ‘library(help=”tseries”)’ for details.

> result=c(); result=c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
> result1=c(); result1=c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
> y=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)
>
> #y=c(1,2,3,4,5)
> N=length(y)
> m=10
> yM=mean(y)
>
> for(h in 1:m){
+ for (t in 1:N-h){
+ result[t]=(y[t]-yM)*(y[t+h]-yM)
+ }
+ result1[h]=sum(result)
+ } # OK
Ci sono 45 avvisi (usare warnings() per leggerli)
> result1
[1] 565.25 385.75 233.75 107.25 4.25 -77.25 -139.25 -183.75 -212.75
[10] -228.25
>
> result2=c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
> #for(h in 1:m){
>
> for(t in 1:N){
+ result2[t]=(y[t]-yM)^2
+ }
> result3=sum(result2)
>
> # Calcolo il coeff. di correl. di lag 1
>
> rh=result1/result3
>
> t=seq(1:10)
>
> Prh=plot(t,rh)

Risultato da confrontare con acf(y)

SE SCRIVIAMO coeffcorr=acf(y), R DARA’ ANCHE IL VETTORE DATI IN coeffcorr

La formula usata è quella senza la moltiplicazione per N/(N-1)

LA STATISTICA DI DURBIN WATSON

library(tseries) 
y=c(1,2,3,4,5,6,7,8,9,10) 
n=length(y) 
#result=c(NA,NA,NA,NA,NA,NA,NA,NA,NA)
 result=c()
 result1=c()
for(t in 2:n){
 result[t]=(y[t]-y[t-1])^2
}
result=result[2:n]
a=sum(result)

for(t in 1:n)
result1[t]=y[t]
b=sum(y)
dw=a/b
dw

#Nella tabella, k'=n° regressori non contando la costante, a=n° osservazioni (y) e dw, sono le tre informazioni per fare il 
test con la tabella.
#Per k'=1 e a=20  l'intervallo dl-du=1.201-1.411, per cui 0.2 < dl:  presenza di correlazione,
#si respinge l'ipotesi nulla (ipot. nulla = i dati non sono 
correlati!), come era intuitivamente già nelle cose.
Da notare che normalmente il test si applica ai residui per 
testare la loro indipendenza.
RISULTATI DELLA PROVA (nessun errore sulla consolle di R) 
> library(tseries) 
> y=c(1,2,3,4,5,6,7,8,9,10) 
> n=length(y) > 
#result=c(NA,NA,NA,NA,NA,NA,NA,NA,NA) 
> result=c() > result1=c() 
> for(t in 2:n){ + result[t]=(y[t]-y[t-1])^2 + } 
> result=result[2:n] 
> a=sum(result) 
> > for(t in 1:n) 
+ result1[t]=y[t] 
> b=sum(y) 
> dw=a/b 
> dw [1]
 0.1636364
 >

#TENTIAMO SCRIPTS del PERIODOGRAMMA IN FORMA DI FUNCTION del dott. Piero Pistoia

# PROVE_TEST SUL PERIODOGRAMMA E CONTROLLO COL MATHEMATICA 4.2 
# Oscillazioni su medietrim e costruzione delle formule 
trigonometriche
# Eliminazione delle varie armoniche

par(ask=T)
par(mfrow=c(1,3))
#medietrim sono i 20 valori trimestrali relativi ai 60 dati mensili delle concentrazioni arsenico 
#della Carlina per 5 anni, in studio.
#Vedere il Post a nome di Pf.Bianchi_P.Pistoia  "Un percorso verso il periodogramma" 
#in questo blog o rivisitato ed esteso in APPENDIX4.

yt=c(0.04233333,0.06100000,0.04500000,0.0556666,0.05400000,
0.06500000,0.07066667,0.04633333,0.05833333,0.06533333,
0.08516667,0.06866667,0.07650000,0.0761666,0.07300000,
0.06700000,0.07966667,0.07333333,
0.07866667,0.06266667)

#ALTRA PROVA IN COSTRUZIONE
#yt= qui si introduce il vettore detrend_trim, cioè i 20 valori di yt detrendizzato, 
#su cui faremo agire la function del periodogramma. Vedere  
APPENDIX4
# detrend_trim=c(-0.0094714286, 0.0077825815, -0.0096300752, 
#-0.0003760652, -0.0034553885, 
# 0.0061319549, 0.0103859649, -0.0153600251, -0.0047726817, 
0.0008146617, 
# 0.0192353383, 0.0013226817, 0.0077433584, 0.0059973684, 
0.0014180451, 
#-0.0059946115, 0.0052593985, -0.0024865915, 0.0014340852, 
-0.0159785714)
 
n=length(yt)
yt=as.vector(yt)
nx=n
yx=yt 
medietrim=yt




#m =(n-1)/2 # perchè n dispari
#m =(n/2-1) # perchè n pari

if (nx/2%%2==2) mx=nx/2-1 else mx=(nx-1)/2 #controllo 
automatico di n (pari o dispari?)
#Controllare se ho invertito le due opzioni!

nx
mx
t=c(1:length(medietrim))
PRDGRAM<- function(y1,n1,m1) {

# VALORI DEL PARAMETRO ak
a0=c(); k=0; a0=0;
for(t in 1:n1){a0=a0+y1[t]*cos(2*pi*t*k/n1)}
a0

a0=a0*2/n1;a0=a0/2

a0

a=c();a[1:m1]=0;
for(k in 1:m1) {
for(t in 1:n1){
a[k]=a[k]+y1[t]*cos(2*pi*t*k/n1)}}
a=2*a/n1

# vALORI DEL PARAMETRO bk

b=c();b[1:m1]=0;b0=0;k=0
for(k in 1:m1) {
for(t in 1:n1){
b[k]=b[k]+y1[t]*sin(2*pi*t*k/n1)}}

a <- as.vector(a)

for(i in 1:m1){
if (abs(a[i]) < 1e-10) a[i]=0 else a[i]=a[i]}
a

for(i in 1:m1){
if (abs(b[i]) < 1e-10) b[i]=0 else b[i]=b[i]}
b=2*b/n1
b
# AMPIEZZE
#ro[1:m1]=0
ro <- sqrt(a^2 +b^2)

for(i in 1:m1){
if (abs(ro[i]) < 1e-10) ro[i]=0 else ro[i]=ro[i]}

# CALCOLO DELLA FASE DI OGNI ARMONICA
# RIPORTANDO IL VALORE AL QUADRANTE GIUSTO
f2=c()
f2[1:m1]=0
for(i in 1:m1){
f2[i] <- abs(a[i]/b[i])
f2[i] <- atan(f2[i])*180/pi}
f2 =as.vector(f2)
f2
#f2[1:m1]=0 un f2[1:m1] di troppo!
phi <- c()
for(i in 1:m1){
# f2 <- abs(a[i]/b[i]);
# f2 <- atan(f2)*180/pi;
if(b[i]>0 & a[i]>0) phi[i] = f2[i];
if(b[i]<0 & a[i]>0) phi[i] = 180-f2[i];
if(b[i]<0 & a[i]<0) phi[i] = 180+f2[i];
if(b[i]>0 & a[i]<0) phi[i] = 360-f2[i];
if(b[i]==0 & a[i]==0) phi[i] = 0;
if((b[i]<0 & b[i]>0) | a[i]==0) phi[i]=0; 
if(b[i]==0 & a[i]>0) phi[i]=90;
if(b[i]==0 & a[i]<0) phi[i]=360-90
}

# PHI FASE ARMONICHE

phi=as.vector(phi)
phi
param_a <-a
param_b <-b
ampiezza <- ro
fase <- phi

a;b;ro;phi
# Qui, al termine della function si pone il valore di un'unica 
# variabile che esce o, se escono più variabili, si usa  
# un data.frame: data=data.frame(x1,x2,...).
# Ogni chiamata alla function permette di includere l'unica 
# variabile o i data nel nome della chiamata:
# es. periodxx=nome.function(x1,x2,...)

data <-data.frame(a,b,ro, phi) 
data
# questa matrice esce dalla function e viene 'raccolta' nella variabile periodxx

}

#FINE SUBROUTINE ANALISI FOURIER

period=PRDGRAM(medietrim,nx,mx)
period 
plot(period$ro,type="l",main="PERIODG.medietrim",
xlab="Armoniche = N° oscillazioni in n dati", ylab="ampiezza")
# 1° grafico in A1
# medietrim (vedere ro del  period. di medietrim) presenta 
# le armoniche rilev. n.3 e n.5 (GRAF.A1)

# for(i in 1:10000000) i=i
#data <-data.frame(param_a,param_b,ampiezza, fase)
#data
# Con il numero delle armoniche considerate rilevanti, 
le relative ampiezze e fasi possiamo
# costruire le loro espressioni trigonometriche.

w1=c(1:length(medietrim))
y_osc=0.0058*sin(2*pi*5*t/20+3.9) # questa oscillazione 
dovrebbe avere  
# un'armonica 5 (GRAF.A3)
so=medietrim-y_osc # so nel grafico dell'ampiezza (GRAF.B2). 
# Questa sottrazione eliminerà l'armonica 5
#  da ro di medietrim (GRAF.B2)

so
#PER UN'ALTRA PROVA

# Se consideriamo l'altra espressione y_osc1=0.0066*sin(2*pi*3*t/20+2.92), che ha un picco 
#all'armonica 3, invece di y_osc, e la sottraiamo da medietrim che ha pure un picco  
#all'armonica 3 (GRAF.A1), come diverrà il grafico? (vedere 
GRAF.B3)

#Se detrendiziamo medietrim (detrend_trim) e applichiamo il 
period. 
#potremo controllare le sue armoniche rilevanti e esprimere in forma analitica 
#(in formula trigonometrica) la loro rilevanza (y_oscxx). 
APPENDIX4 

#detrend_trim=c(-0.0094714286, 0.0077825815, -0.0096300752, 
#-0.0003760652, -0.0034553885, 
#0.0061319549, 0.0103859649, -0.0153600251, -0.0047726817, 
0.0008146617, 
#0.0192353383, 0.0013226817, 0.0077433584, 0.0059973684 
0.0014180451, 
#-0.0059946115, 0.0052593985, -0.0024865915, 0.0014340852, 
-0.0159785714) #ripreso dall'APPENDIX4
 
FINE ALTRA PROVA
ny=length(y_osc) 
n=length(so) 

if (n/2== n%%2) m=n/2-1 else m=(n-1)/2 
period1=PRDGRAM(so,n,m) 
period1 
period1$ro 
#plot(period1$ro,type="l",main="PERIODG.senza osc.5", 
#xlab="Armoniche = N° oscillazioni in n dati", ylab="ampiezza")
y_osc1=0.0066*sin(2*pi*3*t/20+2.92)# armonica 3; FIG.A2 
nz=length(y_osc1)
if (nz/2== nz%%2) mz=nz/2-1 else mz=(nz-1)/2
period6=c() 
period6=PRDGRAM(y_osc1,nz,mz) 
period6 
plot(period6$ro,type="l",main="PERIODG.y_osc1",
xlab="Armoniche = N° oscillazioni in n dati", ylab="ampiezza")# 2° grafico in A2
if (ny/2== ny%%2) my=ny/2-1 else my=(ny-1)/2 
period2=PRDGRAM(y_osc,ny,my)  
period2  
period2$ro  
plot(period2$ro,type="l",main="PERIODG.y_osc", 
xlab="Armoniche = N° oscillazioni in n dati", ylab="ampiezza") # 3° grafico in A3
 
period3=c() 
period3=period 
plot(period3$ro,type="l",main="PERIOD.medietrim", 
xlab="Armoniche = N° oscillazioni in n dati", ylab="ampiezza")
# 4° grafico in B1 
# medietrim (vedere ro del period. di medietrim)

 

so1=medietrim-y_osc1 
#period4=c() 
#period4=period1 
#plot(period4$ro,type="l",main="PERIODG.senza osc.3", 
#xlab="Armoniche = N° oscillazioni in n dati", ylab="ampiezza")

nz=length(y_osc1) 
if (nz/2%%2==2) mz=nz/2-1 else mz=(nz-1)/2 #controllo automatico di n (pari o dispari?) 
period5=c() 
period5=PRDGRAM(so1,nz,mz) 
period5 
plot(period5$ro,type="l",main="PERIODG.senza osc.3",  
xlab="Armoniche = N° oscillazioni in n dati", ylab="ampiezza") # 5° grafico in B3 
#par=(mfrow=c(1,1)) 
#period6=c() 
period6=PRDGRAM(y_osc1,nz,mz) 
#period6 
#plot(period6$ro,type="l",main="PERIODG.y_osc1",  
#xlab="Armoniche = N° oscillazioni in n dati", ylab="ampiezza")# 
plot(period1$ro,type="l",main="PERIODG.senza osc.5", 
xlab="Armoniche = N° oscillazioni in n dati", ylab="ampiezza")
#6° grafico in B2
#RISULTATI OK
cliccare qui sotto per vedere i risultati degli scripts in odt che verranno costruiti facendo girare il programma precedente.
PERIOD_PROVE_TEST  OK                                                                     

Si aggiungono qui i relativi tre grafici FIG.A, FIG.B, FIG.C costruiti dal programma precedente, e la successiva  FIG.D, che illustra, alla rinfusa, l’appunto relativo alla formulazione delle due armoniche costruite su ampiezze e fasi dei risultati.

FIG.A0001

FIG.A0002

FIG.A0004

FIG.D

FIG.D0001

DA QUI IN POI QUALCOSA ANCORA DA CONTROLLARE

PER VEDERE LA PRIMA VERSIONE DEL PRECEDENTE PROGRAMMA IN PDF 
CLICCARE SOTTO: 
funzion_period_OK_3_richiami_result. 
LA NUOVA VERSIONE DEL PRECEDENTE PROGRAMMA CON IN USCITA 12 GRAFICI SI TROVA CLICCANDO SU: 
FUNCTION_PERIOD_OK_3_RICHIAMI_RESULT 
Una volta compreso come richiamare e come gestire i risultati 
della function del periodogramma, 
ora siamo in grado di continuare di volta in volta la 
correzione. 
#In ogni caso gli scripts dei programmi presentati in R possono essere trasferiti, anche 
#un pezzo alla volta, direttamente sulla console di R con Copia-Incolla: il programma inizierà 
#nell'immediato a girare costruendo risultati e grafici i cui 
significati sono riassunti 
#nei remarks. 
 

Ho scritto le precedenti routines che sembrano funzionare, come si vede dai risultati,  considerando il periodogramma come una function, una specie di subroutine. Sarò costretto comunque a rimettere in discussione con calma altri programmi in R che contengono questa function tenendo conto dei cambiamenti!

 

CHI VOLESSE PUO’ VEDERE ANCHE GLI SCRIPTS DELLO STESSO AUTORE RELATIVI AL PERIODOGRAMMA E ALL’ANALISI DI FOURIER IN MATHEMATICA DI WOLFRAM VERS. 4.2, per fare un controllo dei risultati. Sono inseriti nelle appendici.

IL CONTROLLO  DEI PROGRAMMI IN R CHE SEGUONO E’ QUASI COMPLETATO

AD MAIORA

CHIUSA PARENTESI

________________________

period10001

6_CENNO A COMANDI IN R DI CALCOLO E ORGANIZZAZIONE DEI DATI

Filter, matrix e ts di R.
Discussione sui comandi di calcolo ed organizzazione sui dati. Commento sulle prime istruzioni di R (file di dati). Processi per automatizzare i “i conti”.

Si usa la funzione ts di R che riorganizza direttamente la serie originale (yt o as1)
in 12 colonne (mesi) e 5 righe (anni) per il calcolo poi con un for   delle medie di tutti i Gennaio, di Febbraio…

 

Discussione su filter

Applico direttamente la funzione Filter di R, sempre sulla serie originale (yt o as1), che, eliminando da essa (cioè da as1) la componente stagionale di ordine 12 + random, cambia contenuto in TREND + Ciclo + random? (divenendo la asf12).  Trovo poi la retta di regressione su asf12, i cui valori delle sue ordinate verranno tolti dalla serie originale; faccio il grafico di asf12 + retta di regr . Da controllare meglio. Smussando la yt, la asf12 è senza random? Vedere dopo gli script.

SEGUE IL COMMENTO SULLE  LE PRIME ISTRUZIONI DI R PER AUTOMATIZZARE I ‘CONTI’ DEL PROCESSO RIASSUNTO IN PRECEDENZA CHE ESPANDEREMO IN UN SECONDO TEMPO

I PRIMI INTERVENTI IN R

I primi passi nella schermata iniziale di R consistono nel caricare le Librerie suppletive di R necessarie a fornire i comandi, oltre a quelli di base, per gestire ed elaborare   i dati sperimentali. Con la funzione getwd() capisco dove ‘guarda’ R (cioè qual è la directory di lavoro) per cercare il file-dati da caricare e la funzione setwd (directory) permette di cambiare tale directory di lavoro. Fatta conoscere ad R la directory di lavoro, gli facciamo leggere il file-dati scelto per l’analisi (con il comando read.csv); nella fattispecie “As-Carlina1.csv”; la funzione file.show(“nome file.csv”) permette di visionare il contenuto del file che in generale è una matrice con righe e colonne è cioè un data.frame a cui si attribuisce un nome (per es., frame) e di cui è possibile conoscere le dimensioni col comando dim() o estrarre elementi. Le righe della matrice sono le osservazioni o casi; le colonne sono i campi o variabili. Con frame$variable si vuol dire di estrarre la variabile chiamata variable dal data.frame chiamato frame; frame[1,] significa prendere la prima riga, mentre frame[,3], prendere la terza colonna e così via. L’espressione summary(frame$variable) trova tutti i valori della variabile variabile contenuti nel data.frame chiamato frame. Così summary(frame[,3]), trova tutti i valori della colonna 3.

library (stats)

library(tseries)

library(lattice)

#library(graphics)

 

#getwd()

#setwd(“E:/R-2.12.2/bin/i386”)

# Se conosco dove è memorizzato il file con i dati da analizzare e la sua struttura

# utilizzo questi scripts iniziali

#as=read.csv(“As-Carlina.csv”)

#as1=as[,5]

#leggo la quinta colonna del data.frame: As-Carlina.csv dove c’è appunto yt

#as1=ts(as1) # considero as1 una serie storica

#ts.plot(as1) # plotto as1

Introdurremo invece direttamente la Serie yt o as1

as1= c(.033,.043,.051,.059,.061,.063,.053,.036,.046,.056,.063,.048,.053,.043,

.066,.053,.082,.06,.08,.076,.056,.036,.05,.053,.056,.058,

.061,.063,.065,.068,.0815,.095,.079,.063,.069,.074,.08,.0765,.073,

.0695,.066,.093,.083,.073,.063,.074,.067,.06,.086,.08,.073,.067,

.089,.064,.087,.079,.07,.065,.06,.063)

7 – ECCO QUELLO CHE FAREMO CON R: ‘LETTURE’ SUI PROCESSI (‘CACCIA AI RESIDUI’ compresa)

ECCO QUELLO CHE FAREMO CON R

RIORGANIZZAZIONE DELLA SERIE STORICA MENSILE LUNGA CINQUE ANNI, As1, IN DODICI COLONNE (mesi)  E CINQUE RIGHE (anni) E BREVI LETTURE SUCCESSIVE

Il primo passo è riorganizzare la serie storica mensile della durata di 5 anni (5×12=60 mesi), in 12 colonne (mesi) e 5 righe (anni).

In ogni colonna ci sono 5 valori di ogni mese: nella prima, i 5 valori di gennaio, nella seconda, i 5 di febbraio e così via, Questo insieme costituisce il file as1.ts1. Per costruire as1.ts1 si può con R operare in almeno due modi. Una volta costituita la classificazione as1.ts1, si usa la funzione ts che permette poi tramite la subas, di meccanizzare con un for il calcolo delle dodici medie riferite ad ogni mese per i 5 anni (vedere dopo).

In sintesi con ts, che ha come argomenti: file, start e frequency, raggruppo i dati con i valori di ogni mese nella stessa colonna. Nella tabella appaiono il nome dei mesi su ogni colonna e il nome degli anni ad ogni riga; siamo così in grado di prendere i cinque dati di ogni mese (uno ogni dodici) per farne la media.

as1.ts1=ts(as1,start=1989,frequency=12)

Questa espressione fa anche la media di ogni colonna?

subas=as1.ts1[seq(1, length(as1), by=12)]

subas raccoglie i dati di gennaio per i 5 anni e ne fa la media(0.064); per ulteriori elaborazioni si può automatizzare con for.

Con for ottengo le 12 medie di ogni mese per 5 anni, mettendo un i al posto di 1 nell’argomento.

Guardiamo come.

mediamesi=c()

for(i in 1:12){mediamesi[i]=mean(as1.ts1[seq(i,length(as1),by=12)])}

ts.plot(mediamesi)

Se togliamo dal vettore mediamesi la media di as1, si ottiene una sorta di Effetto Stagionale mensile.

Mediamesi0=c()

Mediamesi0 =(mediamesi – mean(as1)) # da errore!

ts.plot(mediamesi0) # da errore! In effetti (vedere gli scripts al termine), non so perchè, sono necessarie variabili intermedie.

 

Vedremo dopo altri modi per il calcolo dell’Effetto Stagionale attraverso una Media Mobile e la funzione filter su as1, ambedue di ordine 12, modificando la stessa as1 o yt, in Mbt e asf12 di 12 termini più corte rispettivamente, contenenti ambedue almeno TREND lin.+ Ciclo (il random plausibilmente si cancellerebbe nel processo). La serie originale era pensata costituita da componente stagionale + TREND_ lin. + ciclo + random.

Calcolo la Media Mobile di ordine 12 su yt o as1; trovo la serie Mbt di 12 termini più corta, che è yt smussata della stagionalità, che serve a calcolare l’Effetto Stagionale, passando attraverso la sottrazione yt – Mbt , chiamata STRD (stagionalità più random:  Tabella 1, colonna 7, APPENDIX 3).

yt=as.vector(yt): n=length(yt); Mbt=c()

for(t in 7:n){Mbt[t] = (yt[t-6]/2+yt[t-5]+yt[t-4]+yt[t-3]+yt[t-2]+yt[t-1]+yt[t]+yt[t+1]+yt[t+2]+yt[t+3]+yt[t+4]+yt[t+5]+(yt[t+6])/2)/12}

Mbt # di 12 termini più corta: 6 NA all’inizio e 6 NA alla fine, in tutto 48 dati (yt o as1 erano 60)

Mbt=Mbt[7:54]# elimino da Mbt gli NA; se i dati iniziali iniziavano da gennaio, Mbt inizia da un luglio e termina a un giugno

In alternativa applico il filter di ordine 12 su as1 o yt:

asf12=filter(yt, filter=rep(1/13,13)) # 12 o 13?

asf12

asf12=asf12[7:54] # elimino da asf12 gli NA

Le deboli differenze fra Mbt e asf12 è facile siano dovute alla Media Mobile manuale che è centrata.

Scorcio la as1 di 6 valori iniziali e finali per renderla lunga come Mbt e poi vi sottraggo Mbt:

STRD=as1[7:54] – Mbt # il primo valore di STRD corrisponde a luglio del primo anno.

Ciò significa: STRD= (ciclo+TREND+stagionalità+random) – (ciclo+TREND)=stagionalità+random; 60-12=48 termini.

Si calcola ora il Fattore Stagionale mensile (Tabella 1, colonna 8; 12 termini, APPENDIX 3) agendo con la funzione matrix su STRD e successivamente con colMeans: metto STRD (48 termini) sotto forma di matrice con dodici colonne (mesi) e 4 righe (anni)

stag = matrix(STRD, ncol=12, byrow=T)

Su questa matrice col comando colMeans posso trovare le 12 medie dei 4 valori, una per ogni mese, che metto in mediacol:

mediacol = colMeans(stag) # in mediacol rimangono i random?

Ordino le 12 medie ottenute, che iniziano da luglio del primo anno e terminano a giugno dell’anno successivo, da gennaio a dicembre:

mediacol=(mediacol[7:12],mediacol[1:6]) # Controllare se funziona!

mediacol # detto talora Fattore Stagionale

Copro poi i 5 anni ripetendo questi 12 valori:

ESAs = rep(mediacol,5) # Effetto stagionale di yt o as1

ESAs # serie lunga come yt o as1 originale

Dobbiamo ora togliere da yt o as1 l’Effetto Stagionale trovato per ottenere la serie iniziale destagionalizzata (stg, detta anche y1t o dst; Tabella 2, colonna 2) :

stg=c() #forse è meglio chiamala dst o y1t al posto di stg

dst=c() # dst o y1t in stg!

dst= yt–ESAs # TREND+ciclo_random; serie originale destagionalizzata (GRAF. N.4 a- CORR; b-PERIOD))

# Di fatto questa istruzione stranamente dava errore; forse è necessario introdurre variabili intermedie (vedere scripts relativi dopo). Controllare meglio!

# dst <- c(as1–ESAs) # TREND+ciclo_random #ancora da rifletterci!

dst  # è la serie originale destagionalizzata (in altre occasioni chiamata y1t). Di questa disegno il correlogramma: i dati sono autocorrelati; la statistica  DW , per K= 1,   N=60, rischio 0.05, cade a sinistra dell’intervallo dl-1.62 e si intravede la presenza di un TREND positivo (GRAF. N.4 a); dal periodogramma è sparito completamente il picco di frequenza 5 (periodo 60/5) dell’oscillazione stagionale (GRAF. N.4 b), presente invece  nel periodogramma della serie originale (GRAF. N.2 b) e nell’ESAs (GRAF. N.3 b).

y1t=dst

period0002

 

6-7 LA ‘CACCIA’ AI RESIDUI

Potremmo tentare di togliere da dst o y1t (TREND+ciclo_random) i random, provando a perequare con una Media Mobile 3*3 (pesata 1,2,3,2,1) per cui l’yt_smussato verrebbe a contenere ciclo+TREND che, tolto da dst o y1t, dovrei ottenere i random, se le ipotesi iniziali fossero giuste (vedere il testo di questi  scripts già in Blocco Note con  i risultati relativi, nel paragrafo prima delle Appendici (SECONDA PARTE). Alcuni ricercatori infatti propongono medie mobili a tre o 5 termini pesati 12321, per eliminare i random! PROVIAMO  invece il tentativo più classico che Segue: detrendizziamo linearmente la dst o y1t, sottoponendola ad una regressione lineare semplice (RLS)…

 

8 – INIZIO COPIA SCRIPTS DEL PROGRAMMA CENTRALE
Vari commenti possibili e riflessioni alternative

INIZIANO GLI SCRIPTS DEL PROGRAMMA RELATIVO A TUTTO IL PROCESSO DESCRITTO E DISCUSSO IN PRECEDENZA

Da copiare sul Blocco Note con copia/incolla e poi sulla consolle di R (o direttamente su R). In generale i programmi scritti in R o si fanno girare scrivendo una istruzione dietro l’altra , oppure, per es., si copiano gli  scripts sul Blocco Note od altro semplice programma di scrittura (anche quelli indirizzati ad R),  con copia/incolla e poi  sulla consolle di R.

Altro problema in R,  quando si copiano programmi pronti dal Blocco Note, è quello di gestire la visione dei diversi grafici, man mano che il programma gira. In questo caso è necessario che il programma controlli i grafici nel senso, per es., di far fermare il programma all’apparire del grafico nella finestra grafica, nella attesa della pressione di un tasto. Per questo esiste un semplice comando, da inserire, per es., all’inizio degli scripts, che ha la sintassi: par(ask=T).  Si può utilizzare in alternativa o insieme il comando par(mfrow=c(x,y) , che divide l’unica finestra grafica in x*y parti; x=2 e y=3, la finestra rimane divisa in 6 parti e può contenere 6 grafici e così via.

 

COMMENTO

Il seguente programma è stato utilizzato da prima nell’analisi della serie As originale, nel modo come era nato, cioè iniziando il lavoro con l’applicare la media mobile direttamente sulla serie originale, arrivando però ad una serie residuale  che può non rispettare i criteri richiesti (rivedremo i passaggi). Questo primo modo  è quello che per ora continua  a venire presentato e commentato.

Per osservare il percorso che parte invece, forse più giustamente, dalla serie detrendizzata (il trend in una serie  può  ‘disturbare’ il computo dell’Effetto Stagionale?), basta sostituire nel vettore as1, invece dei valori originali, i valori della serie detrendizzata, nel nostro caso per es. copiati dai programmi del Mathematica di Wolfram (Appendix 5) o dall’altro post  ‘Verso il periodogramma’, sempre dello stesso autore o… si rifaccia il conto. Basta togliere il cancelletto (#) all’as1 che riporta i valori della serie detrendizzata e ‘cancellettando’ invece i valori  dell’as1 che riporta  quelli della serie originale (e viceversa). I risultati ipoteticamente dovrebbero migliorare. Proviamo.

RESIDUI ANALISI SU As1 DETRENDIZZATO

Col tempo e la pazienza è possibile che riporti, in un link, il programma in pdf  che, in as1, ha i suoi valori detrendizzati, con più di una  decina di grafici relativi, con risultati e commenti! Vedere sopra la prima versione.

8-INIZIO COPIA PROGRAMMA

library(tseries)

library(lattice)

library(graphics)

as1= c(.033,.043,.051,.059,.061,.063,.053,.036,.046,.056,.063,.048,.053,.043,.066,.053,

.082,.06,.08,.076,.056,.036,.05,.053,.056,.058,

.061,.063,.065,.068,.0815,.095,.079,.063,.069,.074,.08,.0765,.073,

.0695,.066,.093,.083,.073,.063,.074,.067,.06,.086,.08,.073,.067,

.089,.064,.087,.079,.07,.065,.06,.063)

# Per partire con la detrendizzazione, ad as1 sostituiamo i valori della stessa serie detrendizzata.

# Togliamo il cancelletto e mettiamo la nuova serie detrendizzata  qui e ‘cancellettiamo’ la precedente:

#as1 =c(-.018,.0089,-.0013,.0062,.0077,.0093,

#-.0012,-0.0187,-.0091,.00039,.0069,-.0085,

#-.0040,-.014,.0080,-.0054,.0231,.00064,

#.0202,.0157,-.0048,-.0252,-.0117,-.0092,

#-.0066,-.0051,-.0026,-.0011,.00048,.0030,

#.0160,.029,.013,-.0039,.0017,-.0092,

#.012,.0076,.0038,-.00018,-.0042,.0223,

#.012,.0014,-.0090,.0015,-.0060,-.0134,

#.0121,.0056,-.0018,-.0083,.0132,-.00122,

#.0102,.0018,-.0077,-.0131,-.0186,-.0161)

as1=ts(as1)

par(ask=T)

par(mfrow=c(1,2))

yt=c()

yt=as1

ts.plot(yt, main=”GRAF. N.2_yt_ SERIE CORRETTA”)

lines(yt,type=”l”)

acf(yt, main=”GRAF. N.2_a-yt_CORR_SERIE CORRETTA”)

#alfa=-pi/2 -> 270°; alfa=-1.175 rad (cioè -100°) -> 260°

 

#INIZIO FUNCTION

PRDGRAM<- function(y1,n1,m1) {

# VALORI DEL PARAMETRO ak

a0=c(); k=0; a0=0;

for(t in 1:n1){a0=a0+y1[t]*cos(2*pi*t*k/n1)}

a0

a0=a0*2/n1;a0=a0/2

a0

a=c();a[1:m1]=0;

for(k in 1:m1) {

for(t in 1:n1){

a[k]=a[k]+y1[t]*cos(2*pi*t*k/n1)}}

a=2*a/n1

# vALORI DEL PARAMETRO bk

b=c();b[1:m1]=0;b0=0;k=0

for(k in 1:m1) {

for(t in 1:n1){

b[k]=b[k]+y1[t]*sin(2*pi*t*k/n1)}}

a <- as.vector(a)

for(i in 1:m1){

if (abs(a[i]) < 1e-10) a[i]=0 else a[i]=a[i]}

a

for(i in 1:m1){

if (abs(b[i]) < 1e-10) b[i]=0 else b[i]=b[i]}

b=2*b/n1

b

# AMPIEZZE

#ro[1:m1]=0

ro <- sqrt(a^2 +b^2)

for(i in 1:m1){

if (abs(ro[i]) < 1e-10) ro[i]=0 else ro[i]=ro[i]}

# CALCOLO DELLA FASE DI OGNI ARMONICA

# RIPORTANDO IL VALORE AL QUADRANTE GIUSTO

f2=c()

f2[1:m1]=0

for(i in 1:m1){

f2[i] <- abs(a[i]/b[i])

f2[i] <- atan(f2[i])*180/pi}

f2 =as.vector(f2)

f2

#f2[1:m1]=0 un f2[1:m1] di troppo!

phi <- c()

for(i in 1:m1){

# f2 <- abs(a[i]/b[i]);

# f2 <- atan(f2)*180/pi;

if(b[i]>0 & a[i]>0) phi[i] = f2[i];

if(b[i]<0 & a[i]>0) phi[i] = 180-f2[i];

if(b[i]<0 & a[i]<0) phi[i] = 180+f2[i];

if(b[i]>0 & a[i]<0) phi[i] = 360-f2[i];

if(b[i]==0 & a[i]==0) phi[i] = 0;

if((b[i]<0 & b[i]>0) | a[i]==0) phi[i]=0;

if(b[i]==0 & a[i]>0) phi[i]=90;

if(b[i]==0 & a[i]<0) phi[i]=360-90

}

# PHI FASE ARMONICHE

phi=as.vector(phi)

phi

param_a <-a

param_b <-b

ampiezza <- ro

fase <- phi

# Qui, al termine della function si pone il valore di un’unica

# variabile che esce o, se escono più variabili, si usa

# un data.frame: data=data.frame(x1,x2,…).

# Ogni chiamata alla function permette di includere l’unica

# variabile o i data nel nome della chiamata:

# es. periodxx=nome.function(x1,x2,…)

data <-data.frame(a,b,ro, phi)

data

# questa matrice esce dalla function e viene ‘raccolta’ nella variabile nomexx (es.,periodxx)

}

#FINE FUNCTION

#Per richiamare la function:

#nomexx = PRDGRAM(Nome_var_vettore dati, numerosità del campione, numero di armoniche da cercare)

yt=as1

yx=as1

nx=length(yt)

#periodogramma yt

if (nx/2== nx%%2) mx=nx/2-1  else mx=(nx-1)/2 #da controllare se non sia necessario uno swap!

period_as1= PRDGRAM(yx, nx ,mx)

#par(mfrow=c(1,4)) 
#plot(a, xlab="Armoniche = N° osc. in n dati") 
#plot(b, xlab="Armoniche = N° osc. in n dati")

 period_as1 # tabella dei dati in uscita: ak, bk, ampiezze, fasi
# Con questa tabella si costruiscono le formule analitiche delle armoniche

period_as1$ro # vettore delle ampiezze

plot(period_as1$ro,type="l",main="GRAF. N.2; a-period_yt", 
xlab="Armoniche = N° oscill. in n dati", ylab="ampiezza")
 






As1_Corr_graf


period_su_As0001

 

par(mfrow=c(1,4))

plot(period_as1$a,ylab="Parametro a")
plot(period_as1$b,ylab="Parametro b") 
plot(period_as1$ro,type="l",main="PERIODOGRAMMA di as1", 
xlab="Armoniche = N° osc. in nx dati", ylab="ampiezza") 
plot(period_as1$phi,type="l", ylab="Fase")

#Per vedere i risultati trasferiti dalla consolle di R in pdf
#del precedente frammento di programma cliccare sotto:
As1_corr_R

par(mfrow=c(1,1)) 

as1.ts1=ts(as1,start=1989,frequency=12)
subas=as1.ts1[seq(1,length(as1),by=12)]

#-----------------------------------------------

# Gli scripts che riguardano il calcolo delle variabili vettoriali mediamesi e Mmesio per ora sono esclusi.

#mediamesi=c()

#for(i in 1:12){mediamesi[i]=mean(as1.ts1[seq(i,length(as1),by=12)])}

#ts.plot(mediamesi,main”mediamesi in 5 anni”)

#Mmesi0=c()

#a=mediamesi

#b=mean(as1)

#c=a-b

#Mmesi0=c () 12 valori medi meno la media serie originale; una specie di Effetto Stagionale

#Mmesi0=mediamesi – mean(as1)

#ts.plot(Mmesi0) # da controllare: Effetto Stagionale da confrontare con mediacol

#acf(Mmesi0, main=”CORR_Mmesi0″)

#Mmesi0 # da confrontare con mediacol

#—————————————————————————–

yt=as1

yt=as.vector(yt);  n=length(yt); Mbt=c()

for(t in 7:n){Mbt[t] = (yt[t-6]/2+yt[t-5]+yt[t-4]+yt[t-3]+yt[t-2]+

yt[t-1]+yt[t]+yt[t+1]+yt[t+2]+yt[t+3]+yt[t+4]+yt[t+5]+(yt[t+6])/2)/12}

#SI LAVORA ORA SU Mbt

Mbt #è quello che resta di as1, dopo la media mobile 12 (trend-ciclo_random)

Mbt=Mbt[7:54]# elimino da Mbt gli NA; Tabella N.1, colonna 6.

ts.plot(Mbt, main=”GRAF. N.4′; Mbt )

acf(Mbt, main=”GRAF. N.4′; acf_Mbt”)

#Periodogramma Mbt, serie più corta senza stagionalità

y3=c()

y3=Mbt

n3==length(y3)

if (n3/2== n3%%2) m3=n3/2-1  else m3=(n3-1)/2

#ifelse(nx%%2 > 0, m=(n-1)/2, m=n/2-1

period_Mbt=PRDGRAM(y3, n3 ,m3)

period_Mbt # tabella ak, bk,ro,phi

period_Mbt$ro #valori ampiezza di Mbt

ts.plot(period_Mbt$ro, main=”GRAF. N.4′; period_Mbt”)

 

# Filtro col comando filter la serie yt

asf12=filter(yt, filter=rep(1/13,13))

asf12

asf12=asf12[7:54] # elimino da asf12 gli NA

#Mbt  contiene l’as1 senza la stagionalità; in as1 però rimane quello

#che aveva ( trend-stagionalità-ciclo_random); se da as1, tolgo as1 senza la stagionalità,

#trovo la stagionalità e random (STRD) che trasformo in Effetto Stagionale eliminando

#una buona parte dei random.

FINE OPERAZIONI SU Mbt

#INIZIO CALCOLI CHE PORTANO ALL’EFFETTO STAGIONALE

STRD=as1[7:54]-Mbt # componente stagionale + random, serie più corta

STRD # da essa si estraggono gli Effetti Stagionali; TABELLA N.1, colonna 7:APPENDIX 3.

#Processo per costruire gli Effetti Stagionali attraverso STRD

stag = matrix(STRD, ncol=12, byrow=T) # variabile di passaggio a mediacol

mediacol = colMeans(stag) #in mediacol rimangono i random? o si perdono nella mediazione; 12 valori osc. annuale.

# in questo primo mediacol ottengo 12 valori a partire da luglio; TABELLA N.1, colonna 8; APPENDIX 3.

mediacol=c(mediacol[7:12], mediacol[1:6]) # qui ordino da gennaio a dicembre i 12

#valori dell’ EFFETTO STAGIONALE;

mediacol # è detto anche Fattore Stagionale; TABELLA N.1, colonna 8; APPENDIX 3.

#ts.plot(mediacol) # L’oscillazione annuale che copre 12 mesi (max in luglio)

ESAs = rep(mediacol,5) # l’Effetto Stagionale che ‘copre’  i 60 dati di yt o as1

ESAs #serie lunga come yt o as1 originale; TABELLA N.2, colonna 1; APPENDIX 3.

ts.plot(ESAs,main=”GRAF. N.3′; EFFETTO STAGIONALE”)

 

ESAs1 = rep(mediacol,2)

ts.plot(ESAs1,main=”GRAF. N.3; a-“EFFETTO STAGIONALE RLS”) #2 ascillazioni

acf(ESAs1, main=”GRAF. N.3′; b-CORR_EF. STAG. 2 ripet”)

#periodogramma ESAs1

yes=ESAs1

nes=length(ESAs1)

if (nes/2== nes%%2) mes=nes/2-1  else mes=(nes-1)/2

period_ESAs1=PRDGRAM(yes, nes, mes)

period_ESAs1

period_ESAs1$ro

plot(period_ESAs1$ro,type=”l”, main=”GRAF. N.3; b-Period_ro EFFETTO STAG.”)

 

dst=c() #attivo la serie destagionalizzata; dst o y1t ; TABELLA N.2, colonna 2; APPENDIX 3.

dst=as1-ESAs # da provare se funziona; destagionalizza

dst

#e=as1

#f=ESAs

#g=e-f

#dst=g

#Potrei smussare dst con una Media Mobile Pesata (3*3, cioè con  pesi 1,2,3,2,1) per tentare

#di eliminare la componente casuale

#Si otterrebbe una serie (y1t) contenente CICLO+TREND, che se la tolgo dalla serie destagionalizzata

#dst precedente dovrei ottenere il #RESIDUO.

yd=dst

nd=length(dst)

if (nd/2== nd%%2) md=nd/2-1  else md=(nd-1)/2

period_dst=PRDGRAM(yd, nd, md)

period_dst

period_dst$ro

plot(period_dst$ro,type=”l”,main=”GRAF. N.4: b-Period. dst o y1t”)

#PROVIAMO INVECE A TOGLIERE IL TREND DALLA dst o y1t

plot(dst,type=”l”, main=”yt-destagionalizzata”) # la y1t o dst= yt destagionalizzata= ciclo+TREND +random (GRAF. N.4′)

acf(dst, main=”GRAF. N4; a-CORR-y1t o dst”)

# Se elimino il TREND da dst ottengo CLRD e posso controllare con CORR se

# ciò che resta è da considerare residuo. yt-ESAs-TREND = CLRD

# CLRD =yt-TREND- ESAs

#Calcolo il trend di dst per toglierlo da yt-ESAs o da y1t ed ottenere CLRD

t=seq(1:60)

fitdst=lm(dst~t)

abline(lm(dst~t))

summary(fitdst)

resid(fitdst)

p=predict(fitdst,data.frame(t=c(1,60)))

CLRD=c()

CLRD=dst-p

CLRD

CLRD=yt-ESAs-p

n1=length(p)

ts.plot(CLRD, main=”GRAF. N.5-RESIDUI” )

acf(CLRD, main=”GRAF. N.5; a-CORR_CLRD”)

#periodogramma di CLRD

yr=CLRD

nr=length(yr)

if (nr/2== nr%%2) mr=nr/2-1  else mr=(nr-1)/2

period_clrd=PRDGRAM(yr, nr ,mr)

period_clrd

period_clrd$ro

plot(period_clrd$ro,type=”l”,main=”GRAF. N.5; b-Period. CLRD”)

#da controllare ancora!

#FINE COPIA PROGRAMMA  da trasferire in Blocco Note o direttamente sulla consolle di R

PER VEDERE SCRIPS E COMMENTI PRECEDENTI + RESULT  IN pdf CLICCARE SOTTO:

ANALI SU As1 DETRENDIZZATO

BLOCCO_NOTE_PERCORSO_PERIOD0

BLOCCO_NOTE_PERCORSO_PERIOD

COMMENTO

Sembra che in questo processo CLRD (residui) non siano random e siano correlati (da provare altri tests. Proviamo però a fare altre misure di controllo. Se è così percorriamo altre vie già accennate. Possiamo partire col detrendizzare la serie originale as1, rendendola nelle previsioni stazionaria, e procedere con gli stessi scripts già usati.

Se ai dati originali di as1  sostituiamo i  dati originali senza però il trend rettilineo (serie originale detrendizzata, nelle previsioni resa stazionaria), possiamo vedere che cosa accade. In effetti sembrerebbe che, se invece partiamo coll’applicare  una media mobile di ordine 12 su una serie non stazionaria, si possa arrivare a questo risultato.

Se si parte con una detrendizzazione (serie stazionaria) e poi si applica la media mobile per trovare gli Effetti Stagionali, che togliamo dalla serie originale, e si procede con successiva detrendizzazione su serie_originale- Eff. Stag., si prevede un aumento dell’ R-quadro e forse un risultato più idoneo.

Si fa prima una regressione sulla serie di partenza; attraverso una media mobile si cercano gli Effetti Stagionali che togliamo dalla serie originale (la non stazionarità può disturbare gli effetti stagionali), ottenendo la serie originale destagionalizzata;  si fa infine una seconda regressione su questa differenza, cioè sulla serie destagionalizzata, che può  contenere appunto TREND + CICLO_RANDOM, ricavando poi il CICLO_RANDOM (da verificare).

Altro percorso: analisi dei dati trimestrali della stessa serie as1.

9 – PRIMA PARTE IN SINTESI

PRIMA PARTE IN SINTESI

LA SERIE PEREQUATA Mbt, L’EFFETTO STAGIONALE ESAs, LA SERIE DESTAGIONALIZZATA y1t (dst), LA y1t SMUSSATA: ciclo+TREND (y1ts),

LA COMPONENTE CASUALE O RESIDUI

 IL CORRELOGRAMMA, IL TEST DI DURBIN WATSON  e di LINMUDHOLKAR

Dopo aver eliminato la componente stagionale (ESAs : APPENDIX3, TABELLA N.2, col.1) dalla serie originale yt  (APPENDIX3,  TABELLA N.1, col.5) sottraendo yt – ESAs, si ottiene la serie destagionalizzata (dst ovvero y1t:  APPENDIX3, TABELLA N.2, col.2). In questa serie sanno rimasti gli eventuali ciclo, TREND e la componente random. Sottopongo quest’ultima al programma CORR : i dati sono autocorrelati positivamente (la statistica di Durbin Watson , per k= 1, N=60 e rischio 0.05, cade a sinistra dell’intervallo dl-du (1.55-1.62) e si nota la presenza un TREND positivo (GRAF. N.4 a); dal periodogramma è completamente scomparso il picco di frequenza 5 (periodo 60/5) dell’oscillazione stagionale (GRAF. N.4 b), presente invece nel periodogramma della serie originale (GRAF. N.2 b) e nell’ESAs (GRAF. N.3 b). Leggere Appendice 1.

Smussiamo la serie y1t o dst con una media mobile pesata 3*3  (1,2,3,2,1), per eliminare la componente casuale. Si ottiene così la serie y1ts (CLTR : APPENDIX3, TABELLA N.2, col.3) che potrebbe contenere nelle previsioni ciclo e TREND (CLTR). Sottraendo da y1t o dst (ciclo+TREND+Random) la serie y1ts che potrebbe contenere ciclo+TREND si dovrebbe ottenere la componente casuale o serie random. Testando tale serie col programma CORR, risulta che essa è rumore di fondo (white noise), avvalorando il processo usato fino a questa fase. Infatti la DW, per k=1, n=60 e alfa =0.05, ha valore 2.57 (vedere tabella Appendice 2) per cui esce dall’intervallo ricavato dalle tabelle dl-du (1.55-1-62): assenza di correlazione interna. la statistica di LIN-MUDHOLKAR, per la gaussiana, per alfa=0.05 e r=+/- 0.403 ricavato dalle tabelle, ha il valore -0.0416, cioè cade all’interno dell’intervallo di r, per cui non posso rifiutare l’ipotesi nulla: la distribuzione dei residui così calcolati è da considerarsi gaussiana. Forse è proprio l’effetto di non aver esplicitata la serie CLTR  con il calcolo del TREND a favorire la compatibilità dei residui alle ipotesi iniziali.

 

MODELLO DI REGRESSIONE LINEARE SEMPLICE  (RLS) E TESTS RELATIVI.

ADEGUAMENTO DEL MODELLO DI REGRESSIONE ALLA POPOLAZIONE. COEFFICIENTI DELLA RETTA ED R-q

TEST SU R-q E LA F DI FISHER , TESTS SUI COEFFICIENTI DELLA RETTA, INTERVALLO DI CONFIDENZA.

RESIDUO DELLA REGRESSIONE E L’AFFIDABILITA’.

Applichiamo invece  a y1t o y1ts (APPENDIX3, TABELLA N.2, col.2;  TABELLA N.2, col.3) )  un modello di regressione per separare il TREND dai loro contenuti.  Proviamo una regressione lineare con la sola variabile, il tempo, misurato in mesi (un solo regressore, k1=1 nelle tabelle DW), senza preoccuparci per ora se tale modello sia idoneo. Lo controlleremo dall’analisi dei residui. Se sono rispettate le assunzioni di linearità, una buona misura dell’adeguamento del modello lineare ai dati è il Coefficiente di Determinazione R-quadro. La sua radice quadrata R è il Coefficiente di correlazione di Pearson detto anche Multiple-R. Se R-q è 1, significa che tutte le osservazioni cadono sulla retta di regressione; se  zero, nessuna associazione lineare fra le variabili, anche se può esserci una relazione non lineare. R-q può così essere interpretato come la proporzione della variazione di y ‘spiegata’ dal modello , come precisato in altre occasioni. Su y1t o su y1ts, si opera con una regressione lineare calcolando bo e b1 ed ottenendo in ambedue i casi, come era prevedibile, differendo le due serie per la sola componente casuale, la stessa retta di regressione seguente (APPENDIX3, TABELLA N.3, col.8 e  APPENDIX3, TABELLA N.4, col.3 per i valori previsti):

y_predetto = TREND = TREND’ = 0.051 + 0.00005*t

Vedere  APPENDIX3, TABELLA N.3, col.5, per i risultati intermedi al fine del cacolo dei coefficienti della retta.

Nel nostro caso  R-q = 0.44, cioè il modella spiega il 44% della variazione complessiva della variabile dipendente. Per controllare l’ipotesi  nulla che nella popolazione non esista relazione lineare (R-q_pop.=0), si procede con l’analisi della varianza. Per tutti i particolari dei ‘conti’ che seguono vedere, per es.,  il Post ‘Un percorso verso il periodogramma’ su questo stesso BLOG. Seguendo le indicazioni riportate nel paragrafo relativo a questo argomento nel Post  su nominato, si ottiene la seguente tabella:

                                                       GL          SOMMA DEI QUADRATI          MEAN SQUARE

Variazione di regressione       1                              0.o0435                                       0.00435

Variazione residuale                58                           0.00559                                       0.000096

TOT                                                                               0.00994

da cui: Somma quadrati reg./Somma quadrati tot = 0.44, cioè R-quadro.

La statistica  F di Fisher che permette di saggiare l’ipotesi nulla: R-quadro pop.=0, è 0.00435/0.000096 = 45.31, da cui, riportata sulle tavole con 1 e 58 gradi di libertà (GL), si ricava una significanza per F minore di 0.00001, per cui si respinge l’ipotesi nulla e nella popolazione esisterà con alta probabilità una relazione lineare.

Procedendo ancora a prove incrociate si può testare l’ipotesi che  b1_pop. =0; si calcola la statistica T per b1: pendenza/errore standard_pend, ottenendo ERb1=7.31*10^-5 e poichè b1=0.000492, risulta T=6.73, che dalle tabelle relative per 58 gradi di libertà (GL=N-2) si ha una significanza per T di 0.0000..<<0.05, per cui si respinge l’ipotesi nulla che la pendenza della popolazione sia zero (quindi esiste dipendenza lineare).

Procedendo, nell’intervallo di confidenza al 95% per la pendenza non potrà allora il valore zero. Infatti calcolando ESb1 come suggerito da altri interventi (0.000073), l’intervallo di confidenza al 95% per beta1 risulta (con 58 GL):

b1-1.96*ESb1 <=  beta1 <=  b1+ 1.96*ESb1

0.00492-0.00014 <= beta1 <= 0.00492+0.00014

0.00035 <= beta1 <=0.00063

Si vede chiaramente come i vari tests, se affidabili, confermano la presenza di un trend lineare nei dati.

Togliendo da y1t la serie del trend, si otterrà la serie CLRD ( APPENDIX3, TABELLA N.4, col.4) con l’eventuale ciclo + la componente casuale (random) I residui della regressione, per il modo con cui abbiamo proceduto, sono proprio i valori della serie CLRD. E’ prevedibile che questa serie, se davvero includerà una componente ciclica significativa,non risulterà rispetterà almeno qualche condizione fra quelle ipotizzate sui residui (indipendenza, varianza costante…). procederemo ad investigare questa serie sui residui. Applicando ad essi il programma CORR, otteniamo il grafico, GRAF. N.5 a) correlogramma) e 5b (periodogramma), il test per l’indipendenza di Durbin Watson e quello per la normalità di Lin Mudholkar. Il valore di DW è risultato 1.378, che (N=60, K’=1 e alfa =0.05) esce a sinistra dell’intervallo 1.55-1.62 e quindi l’autocorrelazione è positiva, mentre il test per la gaussiana (rischio 0.05, N=60, r=+/-0.403, fornisce rc=-0.0298, cioè all’inteno dell’intervallo, per cui non posso rifiutare l’ipotesi nulla (la serie ha distribuzione gaussiana). Graficando i residui standardizzati con la variabile pred pure standardizzata, si ottiene il   GRAF. N. 6 a dove non appaiono patterns evidenti. Dal GRAF. N.6 b invece, ottenuto riportando i residui per ogni unità di tempo, si evidenzia una qualche variazione della varianza dei residui (eteroscedasticità, variazione a clessidra). Allora i tests che fanno riferimento al comportamento della popolazione universo (in particolare gli F-tests) possono non essere affidabili e quindi incerto il modello di regressione usata.

Al termine dell’analisi con un modello di regressione lineare semplice, tenteremo ulteriori approfondimenti alla ricerca di un maggiore R-quadro, ma specialmente di una maggior concordanza dei residui alle condizioni iniziali (linearità, normalità, indipendenza, omoscedasticità).

 

 

 

 

stat_period_corr0001


 stat_period_corr0002

i

stat_reg_mlr_blog0001

10 – SECONDA PARTE IN SINTESI

SECONDA PARTE IN SINTESI: UN ALTRO TENTATIVO SULLA CACCIA AI RESIDUI (senza passare attraverso una regresssione)

SCRIPTS IN BLOCCO NOTE:  DA COPIARE DIRETTAMENTE SULLA CONSOLLE DI R

 

# Intanto trascriviamo nel vettore yt i 60 dati della conc. As da cui partire. Impariamo poi a calcolare con R gli altri 5 vettori dati che faranno parte dell'analisi della nostra serie
# reale e quindi della nostra esercitazione. Calcoliamo come primo vettore Mt (media mobile di ordine  12 su yt.

yt=c(.033,.043,.051,.059,.061,.063,.053,.036,.046,.056,.063,.048,.053,.043,.066,.053,.082,.06,.08,.076,.056,.036,.05,
.053,
.056,.058,.061,.063,.065,.068,.0815,.095,.079,.063,.069,.074,.08,
.0765,.073,.0695,.066,.093,.083,.073,.063,.074,.067,.06,.086,.08,.073,.067,.089,.064,.087,.079,.07,.065,.06,.063)

t=1

#Come primo passo grafichiamo i dati e osserviamo se ci sono regolarità all'interno (trend, oscillazioni), precisiamo le ipotesi con un correlogramma ed un periodogramma, I dati sono mensili: Ipotizziamo comunque una oscillazione di periodo 12.

# Calcoliamo, come primo vettore, Mt (media mobile centrata e pesata di ordine 12 su yt).

yt=as.vector(yt) ; n=length(yt); Mt=c()
for(t in 7:n){Mt[t] = (yt[t-6]/2+yt[t-5]+yt[t-4]+yt[t-3]+yt[t-2]+
yt[t-1]+yt[t]+yt[t+1]+yt[t+2]+yt[t+3]+yt[t+4]+yt[t+5]+(yt[t+6])/2)/12}
Mtc=Mt[7:54]

mt=filter(yt,filter=rep(1/13,13))
# calcolo della Mm col comando filter di R: confrontare i due risultati
mt #OK

# in Mt ci sono i 48 (60-12) dati Media mobile di yt, da cui costruisco i 12 Fattori Stagionali (FStag) 
facendo la media dei 4 gennaio, dei 4 febbraio ecc. a partire da luglio, perchè Mt iniziava con luglio.
FSTag0 = matrix(Mtc, ncol=12, byrow=T)
# matrice di 4 righe (valori dei 12 mesi dei 4 anni) e 12 colonne con in ognuna le 4 conc. dei mesi dello stesso nome a partire da un luglio.
FStag1=colMeans(FSTag0)
#  in FStag1 trovo le 12 medie dei 4 mesi dello stesso nome (inizio luglio, fine giugno)
FStag=c(FStag1[7:12], FStag1[1:6]) # da controllare! Ordino da gennaio. OK
ESAs=rep(FStag,5) # EFFETTO STAGIONALE As
ESAs # 60 dati
Yt1=yt-ESAs # Ciclo+Trend+Random
Yt1 # 60 dati
Yt1c=Yt1[3:58]
Yt1s=c()
for(i in 1:60){Yt1s[i]=(Yt1[i-2]+2*Yt1[i-1]+3*Yt1[i]+2*Yt1[i+1]+
Yt1[i+2])/9}
Yt1s=as.vector(Yt1s) # smusso Yt1 con Mm 3*3

ns=length(Yt1s) # più corto di 4 elementi
Yt1s # yt1 senza random; cioè Ciclo+Trend

par(ask=T)

Yt1s=Yt1s[3:(ns-2)]

RD=Yt1c-Yt1s # forse si tratta solo di random: il Ciclo?

#Riportiamo in una tabella 1 5 vettori dell'analisi su yt

#data <- data.frame(t,yt,ESAs,Yt1,RD)

# Facciamo i 5 correlogrammi dei vettori trovati: yt, ESAs, Yt1, Yt1s, RD
coyt=acf(yt)
coyt
coESAs=acf(ESAs)
coESAs
coYt1=acf(Yt1)
coYt1s=acf(Yt1s)
coYt1s
coRD=acf(RD)
coRD
# Interessante abbinare il correlogramma con il periodogramma e da controllare i correlogrammi con il programmino scritto dall'autore


RISULTATI DEL PROGRAMMA PRECEDENTE (come si vede gira senza errori!)


> # Interessante abbinare il correlogramma con il periodogramma.
> # Intanto trascriviamo nel vettore yt i 60 dati della conc. As da cui partire. Impariamo poi a calcolare con R gli altri 5 vettori dati che faranno parte dell'analisi della nostra serie
 # reale e quindi della nostra esercitazione. Calcoliamo come primo vettore Mt (media mobile di ordine  12 su yt.

> 
> yt=c(.033,.043,.051,.059,.061,.063,.053,.036,.046,.056,.063,.048,.053,.043,.066,.053,.082,.06,.08,.076,.056,.036,.05,
+ .053,
+ .056,.058,.061,.063,.065,.068,.0815,.095,.079,.063,.069,.074,.08,
+ .0765,.073,.0695,.066,.093,.083,.073,.063,.074,.067,.06,.086,.08,.073,.067,.089,.064,.087,.079,.07,.065,.06,.063)
> 
> t=1
> 
> #Come primo passo grafichiamo i dati e osserviamo se ci sono regolarità all'interno (trend, oscillazioni), precisiamo le ipotesi con un correlogramma ed un periodogramma, I dati sono mensili: Ipotizziamo comunque una oscillazione di periodo 12.
> 
> # Calcoliamo, come primo vettore, Mt (media mobile centrata e pesata di ordine 12 su yt).
> 
> yt=as.vector(yt) ; n=length(yt); Mt=c()
> for(t in 7:n){Mt[t] = (yt[t-6]/2+yt[t-5]+yt[t-4]+yt[t-3]+yt[t-2]+
+ yt[t-1]+yt[t]+yt[t+1]+yt[t+2]+yt[t+3]+yt[t+4]+yt[t+5]+(yt[t+6])/2)/12}
> Mtc=Mt[7:54]
> 
> mt=filter(yt,filter=rep(1/13,13)) # 13 o 12?
> # calcolo della Mm col comando filter di R: confrontare i due risultati
> mt #OK
Time Series:
Start = 1 
End = 60 
Frequency = 1 
 [1]         NA         NA         NA         NA         NA         NA
 [7] 0.05115385 0.05192308 0.05369231 0.05384615 0.05561538 0.05553846
[13] 0.05684615 0.05861538 0.06015385 0.05938462 0.05892308 0.05815385
[19] 0.05876923 0.05915385 0.06053846 0.06030769 0.06123077 0.06015385
[25] 0.06180769 0.06296154 0.06319231 0.06373077 0.06626923 0.06811538
[31] 0.07019231 0.07176923 0.07292308 0.07357692 0.07380769 0.07596154
[37] 0.07711538 0.07646154 0.07400000 0.07361538 0.07392308 0.07323077
[43] 0.07415385 0.07415385 0.07388462 0.07342308 0.07492308 0.07476923
[49] 0.07430769 0.07400000 0.07376923 0.07392308 0.07284615 0.07253846
[55]         NA         NA         NA         NA         NA         NA
> 
> # in Mt ci sono i 48 (60-12) dati Media mobile di yt, da cui costruisco i 12 Fattori Stagionali (FStag) facendo la media dei 4 gennaio, dei 4 febbraio ecc. a partire da luglio, perchè Mt iniziava con luglio.
> FSTag0=matrix(Mtc, ncol=12, byrow=T)
> # matrice di 4 righe (valori dei 12 mesi dei 4 anni) e 12 colonne con in ognuna le 4 conc. dei mesi dello stesso nome a partire da un luglio.
> FStag1=colMeans(FSTag0)
> #  in FStag1 trovo le 12 medie dei 4 mesi dello stesso nome (inizio luglio, fine giugno)
> FStag=c(FStag[7:12], FStag1[1:6]) # da controllare! Ordino da gennaio. OK
> ESAs=rep(FStag,5) # EFFETTO STAGIONALE As
> ESAs # 60 dati
 [1] 0.06147115 0.06221154 0.06285577 0.06317308 0.06323077 0.06334615
 [7] 0.05878846 0.05965385 0.06022115 0.06050962 0.06085577 0.06113462
[13] 0.06147115 0.06221154 0.06285577 0.06317308 0.06323077 0.06334615
[19] 0.05878846 0.05965385 0.06022115 0.06050962 0.06085577 0.06113462
[25] 0.06147115 0.06221154 0.06285577 0.06317308 0.06323077 0.06334615
[31] 0.05878846 0.05965385 0.06022115 0.06050962 0.06085577 0.06113462
[37] 0.06147115 0.06221154 0.06285577 0.06317308 0.06323077 0.06334615
[43] 0.05878846 0.05965385 0.06022115 0.06050962 0.06085577 0.06113462
[49] 0.06147115 0.06221154 0.06285577 0.06317308 0.06323077 0.06334615
[55] 0.05878846 0.05965385 0.06022115 0.06050962 0.06085577 0.06113462
> Yt1=yt-ESAs # Ciclo+Trend+Random
> Yt1 # 60 dati
 [1] -0.0284711538 -0.0192115385 -0.0118557692 -0.0041730769 -0.0022307692
 [6] -0.0003461538 -0.0057884615 -0.0236538462 -0.0142211538 -0.0045096154
[11]  0.0021442308 -0.0131346154 -0.0084711538 -0.0192115385  0.0031442308
[16] -0.0101730769  0.0187692308 -0.0033461538  0.0212115385  0.0163461538
[21] -0.0042211538 -0.0245096154 -0.0108557692 -0.0081346154 -0.0054711538
[26] -0.0042115385 -0.0018557692 -0.0001730769  0.0017692308  0.0046538462
[31]  0.0227115385  0.0353461538  0.0187788462  0.0024903846  0.0081442308
[36]  0.0128653846  0.0185288462  0.0142884615  0.0101442308  0.0063269231
[41]  0.0027692308  0.0296538462  0.0242115385  0.0133461538  0.0027788462
[46]  0.0134903846  0.0061442308 -0.0011346154  0.0245288462  0.0177884615
[51]  0.0101442308  0.0038269231  0.0257692308  0.0006538462  0.0282115385
[56]  0.0193461538  0.0097788462  0.0044903846 -0.0008557692  0.0018653846
> Yt1c=Yt1[3:58]
> Yt1s=c()
> for(i in 1:60){Yt1s[i]=(Yt1[i-2]+2*Yt1[i-1]+3*Yt1[i]+2*Yt1[i+1]+
+ Yt1[i+2])/9}
> Yt1s=as.vector(Yt1s) # smusso Yt1 con Mm 3*3
> 
> ns=length(Yt1s) # più corto di 4 elementi
> Yt1s # yt1 senza random; cioè Ciclo+Trend
 [1]            NA            NA -1.255983e-02 -6.694444e-03 -3.708333e-03
 [6] -4.989316e-03 -9.090812e-03 -1.287073e-02 -1.140385e-02 -8.274573e-03
[11] -5.727564e-03 -8.419872e-03 -9.424145e-03 -1.017735e-02 -4.337607e-03
[16] -1.027778e-03  5.958333e-03  8.455128e-03  1.157585e-02  6.129274e-03
[21] -2.070513e-03 -1.060791e-02 -1.194979e-02 -9.530983e-03 -5.979701e-03
[26] -3.955128e-03 -2.004274e-03 -2.777778e-05  3.902778e-03  1.089957e-02
[31]  1.874252e-02  2.179594e-02  1.809615e-02  1.216987e-02  1.027244e-02
[36]  1.208013e-02  1.424252e-02  1.326709e-02  1.032906e-02  9.861111e-03
[41]  1.273611e-02  1.806624e-02  1.824252e-02  1.524038e-02  1.026282e-02
[46]  7.836538e-03  7.827991e-03  9.913462e-03  1.368697e-02  1.393376e-02
[51]  1.377350e-02  1.130556e-02  1.384722e-02  1.478846e-02  1.779808e-02
[56]  1.546261e-02  1.159615e-02  5.836538e-03            NA            NA
> 
> par(ask=T)
> 
> Yt1s=Yt1s[3:(ns-2)]
> 
> RD=Yt1c-Yt1s # forse si tratta solo di random: il Ciclo?
> 
> #Riportiamo in una tabella 1 5 vettori dell'analisi su yt
> 
> #data <- data.frame(t,yt,ESAs,Yt1,RD)
> 
> # Facciamo i 5 correlogrammi dei vettori trovati: yt, ESAs, Yt1, Yt1s, RD
> coyt=acf(yt)
Aspetto per confermare cambio pagina...
> coyt


Autocorrelations of series ‘yt’, by lag

     0      1      2      3      4      5      6      7      8      9     10 
 1.000  0.541  0.395  0.223  0.302  0.221  0.330  0.281  0.150  0.102  0.150 
    11     12     13     14     15     16     17 
 0.248  0.255  0.308  0.197  0.099 -0.006  0.042 
> coESAs=acf(ESAs)
Aspetto per confermare cambio pagina...
> coESAs

Autocorrelations of series ‘ESAs’, by lag

     0      1      2      3      4      5      6      7      8      9     10 
 1.000  0.542  0.187 -0.111 -0.349 -0.460 -0.455 -0.423 -0.309 -0.102  0.146 
    11     12     13     14     15     16     17 
 0.433  0.800  0.434  0.150 -0.088 -0.276 -0.362 
> coYt1=acf(Yt1)
Aspetto per confermare cambio pagina...
> coYt1s=acf(Yt1s)
Aspetto per confermare cambio pagina...
> coYt1s

Autocorrelations of series ‘Yt1s’, by lag

    0     1     2     3     4     5     6     7     8     9    10    11    12 
1.000 0.908 0.757 0.610 0.519 0.457 0.396 0.326 0.271 0.256 0.277 0.317 0.335 
   13    14    15    16    17 
0.321 0.263 0.198 0.145 0.123 
> coRD=acf(RD)
Aspetto per confermare cambio pagina...
> coRD

Autocorrelations of series ‘RD’, by lag

     0      1      2      3      4      5      6      7      8      9     10 
 1.000 -0.308 -0.166 -0.187  0.222 -0.198  0.195  0.066 -0.089 -0.097  0.014 
    11     12     13     14     15     16     17 
 0.004 -0.029  0.147  0.043 -0.114 -0.071  0.046 
> # Interessante abbinare il correlogramma con il periodogramma: da fare.

L’EPILOGO

SEGUONO ULTERIORI APPROFONDIMENTI: 

APPLICAZIONE DI UNA REGRESSIONE LINEARE MULTIPLA (RLM) OPPORTUNA (variabili "dummy").
 
COME CALCOLARE LA F DI FISHER NELLE REGRESSIONI RLM.
 
COME CALCOLARE L'ERRORE STANDARD SUI COEFFICIENTI DI REGRESSIONE NELLA RML
 
COME SI APPLICA UNA REGRESSIONE LINEARE MULTIPLA PESATA (RLMP)
 
CHI VOLESSE ESERCITARSI SU ESEMPI RELATIVI AL CALCOLO MATRICIALE APPLICATO ALL'ANALISI DI DATI    SPERIMENTALI CERCARE IN QUESTO SITO "TIPS DI SCIENZA" (in particolare sui "conti" relativi alla   regressione lineare multipla (MLR). 
LO SCRITTO CHE SEGUE E' L'ULTIMA TRANCE DELL'ARTICOLO ORIGINALE CHE RIGUARDA GLI ULTERIORI        APPROFONDIMENTI,ELENCATI SOPRA, SCRITTO ANCORA DALLO SCRIVENTE, RIVISITATO E INTERPRETATO CON R   IN QUESTO POST. I RIFERIMENTI COME 1.1.2.2 ECC. RIGUARDANO RIMANDI A SUOI PARAGRAFI SPECIFICI. DATA LA NATURA A 'ZIBALDONE LEOPARDIANO DISPERSO' DI QUESTO LAVORO A GETTO ROBINSONIANO CI PROPONIAMO DI INSERIRE LA SECONDA PARTE DELL'ORIGINALE PRIMA DELLE APPENDICI. DOVREMMO SCANNERIZZARLO MEGLIO! 

11-L'EPILOGO

stat13_ridot

reg_MLR_blog0003

14reg_MLR_blog0004

15

stat10001

stati0002

reg_MLR_blog0007

reg_MLR_blog0008

stat_reg_mlr_blog0001

i

durbin watson0008

i

GRAF. N.9

durbin watson0009

i

durbin watson0010

12 -APPENDICE1

APPENDICE1

 

Il correlogramma ed il test di Durbin-Watson. ([3], 949-953)

Ammettiamo che il lettore conosca il Coefficiente di Correlazione lineare di Pearson, ovvero date N paia di osservazioni su due variabili X  e Y, tale Coefficiente di Correlazione  fra esse e dato:

r =  Σi(Xi- Xm)*(Yi – Ym)/SQR[ Σi(Xi-Xm)^2 * Σi(Yi – Ym)]

Quest’idea viene trasferita alle serie storiche per vedere se osservazioni successive sono correlate.

Date N osservazioni X1, X2,………Xn , in una serie storica discreta possiamo considerare N-1 paia di osservazioni (X1,X2), (X2,X3), . . . ,(X(n-1),Xn), le cui prime osservazioni di ogni paio costituiscono la prima variabile e le seconde, la seconda variabile. Se si applica la formula precedente, dove Xi sarebbe Xt e Yi sarebbe Y(t+1), mentre Xm sarebbe la media della prima variabile (da t=1 a t=N-1) e Ym sarebbe la media della seconda variabile (da t=2 a t=N,  in ambedue i casi il numero degli elementi sarebbe N-1. Si otterrebbe una formula complessa con due medie diverse che vengono invece calcolate ambedue sulla serie originaria di numerosita N. Si usa cosi la formula approssimata scritta sotto, estesa al caso in cui si voglia trovare la correlazione tra serie di osservazioni a distanza H fra loro (slittate di h termini o di lag h)

I coefficienti di auto-correlazione rh , dove h=0,1,2…q e q è minore ad uguale a (N-2)/2, sono coefficienti di correlazione, calcolati per ogni valore di h, che misurano la concordanza o la discordanza tra i valori di una serie storica e quelli della stessa però slittati di h unità di tempo (lag h), consentendo di analizzare la sua struttura interna, ossia i legami fra i termini della stessa ([8] 18-20).

 rh = Σi[(y(t)-ym)(y(t+h)-ym)]/[(n-h)*Σj(y(t)-ym)^2/n)] dove i va da t=1…n-h e j va da t=1 … n

in alcuni testi viene abolito il fattore n/(n-h).

Tale formula presenta la semplificazione di poter   utilizzare una media unica per le Yt (quella dei dati originali), presupponendo una situazione stazionaria ([8] pag.19 e [2] pag.133). In particolare r0 = 1 (lag h =0, nessun slittamento) e gli altri rh assumono valori fra +1 (completa concordanza) e -1 (totale discordanza). Il correlogramma è la rappresentazione grafica dei coefficienti di auto-correlazione in funzione degli slittamenti (lags h) e permette di vedere se la serie storica possiede qualche regolarità interna.

CENNI DI LETTURA DEI CORRELOGRAMMI

-I coeff. di autocorr. di dati random hanno distribuzione campionaria che può essere approssimata da una curva gaussiana con media zero ed errore standard 1//N. Questo significa che il 95% di tutti i coeff. di autocorr. , calcolati da tutti i possibili campioni estratti, dovrebbero giacere entro un range specificato da: zero +/- 1.96 errori standard. I dati cioè della serie saranno da considerarsi random se questi coefficienti saranno entro i limiti:

 

-1.96 (1/√n)≤ rh  ≤ +1.96 (1/√n);       la fascia dell’errore:   +/- 2/√n

 

Per l’interpretazione dei correlogrammi vedere ([8] 20-25) da cui ricaviamo le seguenti informazioni.

 

 

– Una serie storica completamente casuale, cioè i cui successivi valori sono da considerarsi tutti indipendenti fra loro (non correlati), tutti i valori di rh  (eccetto r0 che è sempre +1, correlazione della serie con se stessa) oscilleranno accidentalmente intorno allo zero entro la fascia dell’errore. Se l’idea iniziale era questa in effetti  5 su 100 valori di rh potrebbero superare la fascia dell’errore e se plotto il correlogramma, 19 su 20 valori di rh potrebbero cadere all’interno della fascia, ma ci si potrebbe aspettare che uno possa eesere significativo sulla media. Insomma anche se la serie è casuale, ogni tanto verso lag più elevati potrebbero apparire picchi significativi. Se abbiamo a che fare con un numero elevato di coefficienti, potrebbero apparire risultati non aspettati. Questo rende il correlogramma uno strumento di investigazione incerto.

 

– I coeff. di autocorr. per i dati stazionari (assenza di TREND) vanno velocemente a zero dopo il 4° o 5° lag di tempo e  sono significativamente diversi da zero per i primi lag. Anche su correlogrammi,  ai lags più bassi, si possono notare coefficienti di autocorrelazione positivi rapidamente decrescenti e per i lag successivi  oscillazioni intorno allo zero. Ciò significa che esiste nella serie una persistenza di valori a breve termine, nel senso che se la grandezza in studio ha valore più elevato della media in un mese, lo sarà anche in uno o due mesi successivi e così per valori inferiori alla media.

-Se la serie storica presenta oscillazioni, anche il correlogramma tende ad assumere valori positivi e negativi, oscillando con lo stesso periodo della serie fino a smorzarsi ai lags più elevati. Se es. esiste un componente stagionale di periodo 12 mesi, nei dintorni del coefficiente di lag 12 ci sarà una zona significativamente diversa da zero.

– Nelle serie non stazionarie (presenza di TREND) i valori di rh non scendono velocemente a zero, ma si mantengono significativi per più valori del lag e solo se l’effetto del TREND è paragonabile alle altre eventuali relazioni presenti nei dati è possibile intuirle nel grafico (GRAFICO. N.2)

 

IL TEST DI DURBIN WATSON

Così la lettura dei correlogrammi talora può risultare ardua. Un modo veloce, affidabile e quantitativo per testare l’ipotesi che esista all’interno di una serie storica correlazione fra i suoi termini, cioè i termini non siano indipendenti, è somministrare alla serie il test di Durbin Watson ([8] 18-20), la cui statistica è espressa dalla formula:

 

d =∑ (ei – ei-1)2 /∑ ei2

 

La sommatoria al numeratore inizia dal 2° termine (i=2) e coinvolge ni termini . La statistica d varia da 0 a 4 e quando l’ipotesi nulla è vera (autocorrelazione assente) d dovrebbe essere vicino a 2. Il test permette di decidere di respingere l’ipotesi nulla, di accettarla o essere inconclusivo. Utilizzando la tabella opportuna   (allegata a queste note) si ottengono i valori critici di dl e du che servono per la decisione: all’interno dell’intervallo dl-du, la situazione è incerta; a sinistra di dl , si respinge l’ipotesi nulla. Vedremo in seguito come si calcola d con R e come si usa la tabella.

 

Il programma CORR, scritto in Qbasic, riportato in nota, permette il calcolo dei coefficienti di autocorrelazione con l’errore (un qualsiasi programma di grafica permetterà di costruire il correlogramma) e il calcolo della statistica di D. W.  Abbiamo già visto (vedere  programminosul correlogramma) come operare anche con il linguaggio R.

 

13 – APPENDICE2

APPENDICE2

Programmi in Qbasic e tabelle

PROGRAMMA CORR (coefficienti di autocorrelazione, il test di Durbin Watson, il test di Lin Mudholkar, Analisi spettrare per il periodogramma

 programma_period0001

 programma_period0002programma_period0003programma_period0004durbin watson_blogpag60001

i

durbin watson0002

i

durbin watson_blogpag60001

durbin watson0003

i

durbin watson0004

i

durbin watson0005

i

durbin watson0006

i

durbin watson0007

i

stat_reg_mlr_blog0001

durbin watson0008

GRAF. N.9

durbin watson0009

i

durbin watson0010

programma_period0005

i

durbin watson0003

durbin watson0001

14 – APPENDICE3

APPENDIX3

TABELLE  DEI RISULTATI

reg_tabelle_blog0001

i

reg_tabelle_blog0003

i

reg_tabelle_blog0004

i

reg_tabelle_blog0005

15 – APPENDICE4

APPENDIX4

ANALISI, CON IL LINGUAGGIO R, DELLA SERIE STORICA TRIMESTRALE RIVISITATA E AMPLIATA CON PERIODOGRAMMI E RISULTATI

period_det_trim2

FIG.1-20001

FIG.2'-3

FIG.4-6

 

FIG.8-11
FIG.7

 

FIG.120001

 

DA CAMBIARE:

> rm(list=ls(all=TRUE))
> #SCRIPTS IN R
>
> library(graphics)
> library(tseries)

‘tseries’ version: 0.10-32

‘tseries’ is a package for time series analysis and computational
finance.

See ‘library(help=”tseries”)’ for details.

> library(stats)
> #library(UsingR)
> library(lattice)
> library(lmtest)
Carico il pacchetto richiesto: zoo

Attaching package: ‘zoo’

The following objects are masked from ‘package:base’:

as.Date, as.Date.numeric

>
> w=c(0.033,0.043,0.051,0.059,0.061,0.063,0.053,0.036,0.046,0.056,0.063,0.048,0.053,0.043,
+ 0.066,0.053,0.082,0.06,0.08,0.076,0.056,0.036,0.05,0.053,0.056,0.058,0.061,0.063,0.065,
+ 0.068,0.0815,0.095,0.079,0.063,0.069,0.074,
+ 0.08,0.0765,0.073,0.0695,0.066,0.093,0.083,
+ 0.073,0.063,0.074,0.067,0.06,0.086,0.08,0.073,0.067,0.089,0.064,0.087,0.079,0.07,0.065,0.06,.063)
>
> par(ask=T)
>
> par(mfrow=c(1,3))
>
> trim=matrix(w,ncol=3,byrow=T)
>
>
> medietrim=rowMeans(trim)
>
> medietrim
[1] 0.04233333 0.06100000 0.04500000 0.05566667 0.05400000 0.06500000
[7] 0.07066667 0.04633333 0.05833333 0.06533333 0.08516667 0.06866667
[13] 0.07650000 0.07616667 0.07300000 0.06700000 0.07966667 0.07333333
[19] 0.07866667 0.06266667
>
> # FIG.1
> ts.plot(medietrim,type=”l”,main=”FIG.1″) #finchè non lo sostituisco posso usare abline
Aspetto per confermare cambio pagina…
>
> w1=c(1:20)
> regtrim=lm(medietrim~w1)
> abline(regtrim)
>
> summary(regtrim)

Call:
lm(formula = medietrim ~ w1)

Residuals:
Min 1Q Median 3Q Max
-0.015979 -0.005078 0.001069 0.006031 0.019235

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0503921 0.0041790 12.058 4.67e-10 ***
w1 0.0014127 0.0003489 4.049 0.000752 ***

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.008996 on 18 degrees of freedom
Multiple R-squared: 0.4767, Adjusted R-squared: 0.4476
F-statistic: 16.4 on 1 and 18 DF, p-value: 0.0007524

>
> val_pred_w=predict(regtrim) #calcolo i 20 valori predetti dalla prima regressione
> length(val_pred_w)
[1] 20
>
>
> detrend_trim=medietrim-val_pred_w
> detrend_trim
1 2 3 4 5
-0.0094714286 0.0077825815 -0.0096300752 -0.0003760652 -0.0034553885
6 7 8 9 10
0.0061319549 0.0103859649 -0.0153600251 -0.0047726817 0.0008146617
11 12 13 14 15
0.0192353383 0.0013226817 0.0077433584 0.0059973684 0.0014180451
16 17 18 19 20
-0.0059946115 0.0052593985 -0.0024865915 0.0014340852 -0.0159785714
>
> #FIG.2
> plot(detrend_trim,type=”l”, main=”FIG.2″)
>
>
> detrend_trim
1 2 3 4 5
-0.0094714286 0.0077825815 -0.0096300752 -0.0003760652 -0.0034553885
6 7 8 9 10
0.0061319549 0.0103859649 -0.0153600251 -0.0047726817 0.0008146617
11 12 13 14 15
0.0192353383 0.0013226817 0.0077433584 0.0059973684 0.0014180451
16 17 18 19 20
-0.0059946115 0.0052593985 -0.0024865915 0.0014340852 -0.0159785714
>
> trim1=matrix(detrend_trim,ncol=4,byrow=T)
> medietrim1=colMeans(trim1)
> medietrim1_5anni=rep(medietrim1,5)
>
> #FIG.3
> plot(medietrim1_5anni,type=”l”,main=”FIG.3″)
>
> medietrim1_5anni
[1] -0.0009393484 0.0036479950 0.0045686717 -0.0072773183 -0.0009393484
[6] 0.0036479950 0.0045686717 -0.0072773183 -0.0009393484 0.0036479950
[11] 0.0045686717 -0.0072773183 -0.0009393484 0.0036479950 0.0045686717
[16] -0.0072773183 -0.0009393484 0.0036479950 0.0045686717 -0.0072773183
>
> par(mfrow=c(2,2))
>
> #FIG.4
> acf(medietrim1_5anni,main=”FIG.4″)
Aspetto per confermare cambio pagina…
>
> valAdjtrim=medietrim-medietrim1_5anni #trend_ random
>
>
> fitadj_trim=lm(valAdjtrim~w1)
>
> fitadj_trim

Call:
lm(formula = valAdjtrim ~ w1)

Coefficients:
(Intercept) w1
0.049678 0.001481

>
> summary(fitadj_trim)

Call:
lm(formula = valAdjtrim ~ w1)

Residuals:
Min 1Q Median 3Q Max
-0.0136886 -0.0044597 -0.0006167 0.0058313 0.0146327

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.049678 0.003486 14.251 3.03e-11 ***
w1 0.001481 0.000291 5.088 7.67e-05 ***

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.007504 on 18 degrees of freedom
Multiple R-squared: 0.5899, Adjusted R-squared: 0.5671
F-statistic: 25.89 on 1 and 18 DF, p-value: 7.671e-05

>
> #FIG.5
> plot(valAdjtrim,type=”l”,main=”FIG.5″)
> abline(fitadj_trim)
>
> #ANALISI RESIDUI
>
>
> dwtest(fitadj_trim, alternative=”two.sided”)

Durbin-Watson test

data: fitadj_trim
DW = 1.9024, p-value = 0.6301
alternative hypothesis: true autocorrelation is not 0

> #forse potremo interpolare l’elemento 11
>
> #FIG.6
> res=resid(fitadj_trim)
> plot(res,type=”l”, main=”FIG.6″)
>
> #FIG.7
> acf(res, main=”FIG.7″)
>
> par(mfrow=c(2,2))
> #FIG.8-12
> plot(fitadj_trim)
Aspetto per confermare cambio pagina…
>
>
>

Far girare il precedente programma. Applicare a detrend_trim il periodogramma  e trasformare in formula analitica l’oscillazione o le ascillazioni e provare a toglierla(toglierle) da medietrim (a da detrend _trim) per vedere se spariscono dal loro periodogramma i picchi rilevanti. E’ un buon metodo incrociato di testare il Periodogramma rivisitato.

16 – APPENDICE5

APPENDIX5

IL SENSO COMUNE, L’INSEGNAMENTO SCIENTIFICO ED I SAPERI PREPOSTI ALLE SCELTE – UN PRIMO APPROCCIO OPERATIVO ALL’ANALISI DI FOURIER COL SUPPORTO DEL COMPUTER  del dott. Piero Pistoia

0 – LA PREMESSA

MATH_FOURIER_PREMESSA1

BIBLIOGRAFIA DELLA PREMESSA

four_bibl0001

 

1 – L’ARTICOLO GUIDA

L’articolo sull’analisi di fourier su dati reali e simulati col Mathematica di Wolfram 4.2                 dott. Piero Pistoia

artfouart-math in pdf

ARTFOUART-math

Seguirà la diretta trascrizione

 2 – IL PROGRAMMA CON ESERCITAZIONI

Analisi di serie storiche reali e simulate dott. Piero Pistoia

ATTENZIONE! le linee di programma attive non sono incluse fra apici. Cambiando opportunamente le inclusioni di linee nei diversi segmenti del programma, si possono fa girare i diversi esempi, e proporne di nuovi.

A0-Esempio N.0

ANALISI DELL’ESEMPIO N° 0

Le linee attive di questo esempio sono state evidenziate

Si trascriva manualmente o con copia/incolla i seguenti scripts  sulla consolle del MATHEMATICA DI WOLFRAM (vers. non superiore alla 6.0); si evidenzi e si batta shift-enter: si otterranno i risultati ed i grafici non inseriti.

"Si forniscono diversi vettori di dati sperimentali di esempio immessi 
    direttamente o tramite Table; per renderli attivi basta eliminare agli 
    estremi le virgolette.Se l'analisi diventa più complessa rispetto ad una 
ricerca di armoniche di Fourier a confronto con la serie iniziale, si può 
utilizzare il SEGMENTO DELLE REGRESSIONI (lineare e quadratica) per ottenere 
yg2 ed il SEGMENTO DELLE ARMONICHE RILEVANTI (yg3 e yg4) individuate in una 
prova precedente. Abbiamo da sostituire il nome di qualche vettore e aprire o 
chiudere (cancellando o inserendo virgolette) istruzioni nei diversi segmenti 
del programma secondo ciò che vogliamo fare. In yg1 c'è il vettore dati 
iniziale. In yg2 c'è il vettore detrendizzato. In yg3, quello delle armoniche 
rilevanti. In v, il vettore di Fourier fornito dall'analisi. Altri segmenti 
su cui intervenire: IL GRAFICO ygf dove va inserita la variabile (ygi) da 
confrontare con Fourier (v); il segmento di IMPOSIZIONE NUMERO ARMONICHE m; 
il segmento di SCELTA VARIABILI DA SOTTOPORRE A FOURIER (ygi); il segmento 
per cambiare la variabile nell'ERRORE STANDARD. In ogni esempio si accenna 
alle modifiche specifiche da apportare ai diversi segmenti";


"ESEMPIO N.0";
"Esempio illustrativo riportato alle pagine 3-4 dell'art.: imporre il numero \
di armoniche m=1 oppure 2 nel segmento relativo e confrontare il grafico ygf \
che gestisce la variabile yg1 dei dati seguenti, con quello di v (ygf1); \
controllare infine i risultati con i dati del testo";

yt=N[{103.585, 99.768, 97.968, 99.725, 101.379, 99.595, 96.376, 96.469, \
100.693, 104.443}]

"ESEMPIO N.1"
"Si sottopongono a Fourier i dati tabellati seguenti(yg1). Si confrontano yg1 \
(tramite ygf) e v di Fourier(tramite ygf1); calcolo automatico di m";
 "yt=N[Table[100+4 Sin[2 t/21 2 Pi-Pi/2]+3 Sin[4 t/21 2 Pi+0]+6 Sin[5 t/21 2 \
Pi-1.745], {t,21}]]"

"Si detrendizza yg1 seguente ottenendo yg2 (si liberino le istruzioni del \
segmento TREND), che poniamo come variabile in ygf (si inserisca nella sua \
espressione); si sottopone yg2 a Fourier (v) nel segmento "SCELTA VETTORE \
DATI"; confrontiamo ygf1 (grafico di v) e ygf; inserire variabile yg2 \
nell'espressione errore"  
"yt=N[Table[100+4 Sin[2 t/21 2 Pi-Pi/2]+3 Sin[4 t/21 2 Pi+0]+6 Sin[5 t/21 2 \
Pi-1.745]+0.5 t + (Random[]-1/2),{t,21}]]";

"ESEMPIO N.2";
"Si utilizza il vettore originale yg1 e si confronta con v di Fourier (ygf \
con ygf1), come nell'esempio N.1, prima parte; m automatico. Esempio \
interessante per controllare come Fourier legge i dati"
"yt=Table[N[Sin[2 Pi 30 t/256]+.05t+(Random[]-1/2)],{t,256}]"

"ESEMPIO N.3";
"Come l'esempio N.2. Ci insegna come Fourier <sente> i coseni"
"yt=N[Table[100+4 Cos[2 t/21 2 Pi-Pi/2]+3 Cos[4 t/21 2 Pi+0]+6 Cos[5 t/21 2 \
Pi-1.745],{t,21}]]";

"ESEMPIO N.4";
"Come il N.2. Ci assicura del funzionamento del programma"
"yt= N[Table[100+3 Sin[2 Pi 2 t/21+ Pi/2],{t,1,21}]]";
"I dati successivi sono stati campionati da Makridakis combinando l'esempio \
precedente ed un random (pag. 402, [])";
"yt={106.578,92.597,99.899,97.132,93.121,95.081,102.807,106.944,100.443,95.\
546,103.836,107.576,104.658,91.562,91.661,97.984,111.195,100.127,94.815,105.\
009,110.425}";

"ESEMPIO N.5"
"Prima parte.
Si detrendizza il vettore dati yg1, liberando, nel segmento TREND, il calcolo \
dei coefficienti B0 e B1 della retta interpolante, trovando yg2 che \
inseriremo in ygf nel segmento GRAFICO DA CONFRONTARE CON FOURIER. Calcolo \
automatico di m. Nel segmento SCELTA VETTORE PER FOURIER, poniamo yg2 in yt e \
nella formula dell'ERRORE STANDARD. Si fa girare il programma una prima volta \
e si osservano quali sono le armoniche rilevanti. Di esse si ricopiano i  \
parametri trovati (numero armonica, ampiezza, fase), con i quali  si \
tabellano le 4 armoniche rilevanti, trascrivendole nel segmento ARMONICHE \
RILEVANTI.
Seconda parte.
Nel segmento ARMONICHE RILEVANTI si tabellano le espressioni di queste 4 \
armoniche, si sommano i relativi vettori in yg3. Si liberano queste 4 \
armoniche e il loro vettore somma yg3. Si pone poi la variabile yg3 in ygf \
per confrontare yg3 con v (risultato di Fourier su yg2). Calcolo automatico \
di m. Si sceglie per Fourier la variabile yt=yg2. Nel segmento dell'ERRORE si \
pone yg3 e si rilancia il programma una seconda volta. E' un modo per \
cogliere le uniformità periodiche all'interno di dati storici"

"yt=N[{0.0330,0.0430,.0510,.0590,.0610,.0630,.053,.036,.0460,.0560,.0630,.\
0480,.0530,.0430,.0660,.053,.0820,.0600,.0800,.0760,.0560,
.0360,.0500,.053,.0560,.0580,.0610,.0630,.0650,.0680,.0815,.095,
.0790,.0630,.0690,.0740,.0800,.0765,.0730,.0695,.0660,.0930,.0830,
.0730,.0630,.0740,.0670,.06,.0860,.0800,.0730,.0670,.0890,.0640,
.0870,.079,.0700,.0650,.0600,.0630}]"

"Le successive righe sempre attive"
yg1=yt
n=Length[yt];

"SEGMENTO DELLE REGRESSIONI"

"f[x_]:=Fit[yt,{1,x,x^2},x]"
"f[x_]:=Fit[yt,{1,x},x]"

"yt1=N[Table[f[t],{t,60}]]?"
"La precedente istruzione dà problemi"

"Trovo l'ordinata all'origine e la pendenza"
"B0=f[x]/.x\[Rule]0"
"f1=f[x]/.x\[Rule]1"
"B1=f1-B0"
"B2=B0+B1 t"

"Un secondo modo di trovare B0 e B1";

"xt=Table[i, {i, 1, n}]";
"a=xt yt";
"Sxy=Apply[Plus, xt yt]";
"Sx=Apply[Plus, xt]";
"Sy=Apply[Plus, yt]";
"xq=xt^2";
"Sxq=Apply[Plus, xq]";
"yq=yt^2";
"qSx=Sx^2";
"B1=(n Sxy-Sx Sy)/(n Sxq-qSx)";
"B0=Sy/n-B1 Sx/n";
"B2=B0+B1 t";

"Tabello la retta"

"yt1=N[Table[B2,{t,n}]]"
"yt1=Flatten[yt1]"
"In yt1 ci sono i dati relativi alla retta di regressione"
"In yg2 c'è il vettore detrendizzato dei dati iniziali"
"yg2=yt-yt1"

"SEGMENTO DELLE ARMONICHE RILEVANTI"

"y4=Table[N[.004(Sin[.1333 Pi t+6.266])],{t,60}]";
"y5=Table[N[.007(Sin[.1667 Pi t+4.782])],{t,60}]";
"y8=Table[N[.004(Sin[.2667 Pi t+4.712])],{t,60}]";
"y9=Table[N[.004(Sin[.3000 Pi t+3.770])],{t,60}]";

"yg3=N[y4+y5+y8+y9]";

"In yg3 c'è il vettore dati di tutte le armoniche considerate rilevanti da \
precedente analisi. Se il programma passa da questo punto,
    ha senso misurare per es. la differenza con il vettore di tutte le \
armoniche di Fourier sui dati detrendizzati yg2";

"yg4= N[yg3+yt1]";

"In yg4 c'è il vettore di tutte le componenti considerate rilevanti compreso \
il trend. Ha senso un confronto fra i dati iniziali Yg1 o v (vettore di \
Fourier) e Yg4 "

" IL GRAFICO ygf E' DA CONFRONTARE CON QUELLO DI FOURIER ygf1"
" La variabile nel ListPlot successivo rappresenta il vettore da confrontare \
con la combinazione di armoniche di Fourier applicato ad un vettore dati. yg \
rappresenta il grafico di tale vettore"
"In ygi (i=1,2...) ci va il vettore da confrontare con v"

ygf=ListPlot[yg1,PlotJoined\[Rule]True,PlotRange\[Rule]Automatic,
    				   GridLines\[Rule]{Automatic,Automatic},
    AxesLabel\[Rule]{"Tempo","Dati \
(unità)"},PlotLabel\[Rule]FontForm["DOMINIO  DEL TEMPO",{"Times",12}]]

"CALCOLO AUTOMATICO DEL NUMERO ARMONICHE"
ny=Length[yg1]
n=ny;m=Mod[n,2]
If[m>0,  m=(n-1)/2, m=n/2-1]
"IMPOSIZIONE MANUALE NUMERO ARMONICHE"
m=1
"m=2"

"SCELTA VETTORE DATI DA SOTTOPORRE A FOURIER"
"IN yt CI SONO I DATI CHE VOGLIO ANALIZZARE CON FOURIER E L'ANALISI E' POSTA \
IN v"
"Se voglio analizzare con Fourier i dati iniziali:"
yt=yg1
"Se voglio analizzare i dati detrendizzati:"
"yt=yg2"
"Se voglio analizzare i dati relativi alle armoniche considerate rilevanti:"
"yt=yg3"
"Se voglio analizzare i dati di tutte le componenti rilevanti:"
"yt=yg4"

"VALORI DEL PARAMETRO ak="

"Calcolo gli ak con il comando Sum, sommando cioè gli n prodotti yt * la \
funzione coseno, per t=1 a n; faccio questo per ogni valore di k (da k=0 a \
n/2)tramite Table"

a1=Table [Sum[yt[[t]] Cos[2 Pi k t/n],{t,1,n}],{k,0,m}];
a=2*a1/n;

"Divido per due il primo elemento, per ottenere ao=media; Sopprimo poi il \
primo elemento"
a0=a[[1]]/2
a=Delete[a,1]
a=Chop[%]

"VALORI DEL PARAMETRO bk="

"Calcolo ora bk con la funzione seno con lo stesso procedimento di ak"
b1=Table[Sum[yt[[t]] Sin[2 Pi i t/n],{t,1,n}],{i,1,m}];
b=2 b1/n
b=Chop[%]
"Mentre ao/2 rappresenta la media, bo è sempre nullo"
b0=0

"AMPIEZZE ="

"Con ak e bk calcolo le ampiezze e le fasi dell'f(t) iniziale; Individuo il 
vettore dei numeri da mettere sulle ascisse nel dominio della frequenza 
(i/n o n/i) e con i vettori xi e yi 
costruisco la lista {xi,yi}; disegno infine i plots"
ro=Sqrt[a^2+b^2]
ro=N[Chop[%]]
ro=Flatten[ro]


Theta={}
i=1
While[i<m+1,
    f2=Abs[a[[i]]/b[[i]]];
    f2=180/Pi ArcTan[f2];
    If[b[[i]]>0 && a[[i]]>0 , Theta=N[Append[Theta,f2]]];
    If[b[[i]]<0 && a[[i]]>0, Theta=N[Append[Theta,180-f2]]];
    If[b[[i]]<0 && a[[i]]<0, Theta=N[Append[Theta,180+f2]]];If[b[[i]]>0 && a[[
    i]]<0, Theta=N[Append[Theta,360-f2]]];
    If [(a[[i]]==0 && b[[i]]==0),Theta=N[Append[Theta,0]]]; 
     If[((
    b[[i]]<0 || b[[i]]>0) && a[[i]]\[Equal]0),Theta=N[Append[Theta,0]]];
    
     If[b[[i]]\[Equal]0 && a[[i]]>0 ,Theta=N[Append[Theta,90]]];
    If[b[[i]]\[Equal]0 && a[[i]]<0, Theta=N[Append[Theta,-90+360]]]; i++];

"FASE ="

Theta=Theta

"Theta=N[ArcTan[a,b]*180/Pi]"

"RISULTATI DI FOURIER"
v=Table[a0+Sum[(a[[k]] Cos[2 Pi k t/n]+b[[k]] Sin[2Pi  k \
t/n]),{k,1,m}],{t,1,n}];

"GRAFICO RISULTATI DI FOURIER (ygf1)"
ygf1=ListPlot[v,PlotJoined\[Rule]False,GridLines\[Rule]{Automatic,Automatic},
    PlotLabel\[Rule]FontForm["GRAFICI  DI CONTROLLO",{"Times",12}]]

"CONFRONTO"
ygf2=Show[ygf,ygf1,PlotRange\[Rule]{Automatic,Automatic}]

"Calcolo l'ERRORE STANDARD DELLA STIMA"

ESS=Sqrt[Apply[Plus,(yg1-v)^2]/(n-2)]

"x=N[Table[i,{i,1,m}]]";
"c1=x";
Length[x];
Length[ro];
"For[i=1,i<m,i++,j=i*2;c=c1;yi=ro[[i]];
  c=Insert[c,yi,j];c1=c]";
"d1=Partition[c,2]";
Needs["Graphics`Graphics`"]
BarChart[ro]
ListPlot[ro, PlotJoined\[Rule]True,PlotRange\[Rule]All, 
  GridLines\[Rule]{Automatic,Automatic},AxesOrigin\[Rule]{0,
          0},AxesLabel\[Rule]{"Cicli in n dati", "Ampiezza \
"},PlotLabel\[Rule]FontForm["DOMINIO  DELLA FREQUENZA",{"Times",12}]]
"c1=x";
"For[i=1, i<m,i++,j=i*2;c=c1;yi=Theta[[i]];
  c=Insert[c,yi,j];c1=c]";
"d2=Partition[c,2]";
ListPlot[Theta, PlotJoined\[Rule]True,PlotRange\[Rule]All, \
GridLines\[Rule]{Automatic,Automatic},AxesOrigin\[Rule]{0,0},
  AxesLabel\[Rule]{"Frequenza","Fase"}]

———————————————————————————–

A1-Esempio N.1

————————————————————————

A2-Esempio N.2

math_es_20001

math_es_20002

math_es_20003



math_es_20004

math_es_20005

math_es_20006

math_es_20007RISULTATI ESEMPIO 2

math_es_20008
math_es_20009

math_es_20010

math_es_20011

math_es_130001math_es_20011
math_es_130001
math_es_150001

math_es_20016

A5-Esempio N.5

 

Serie detrendizzata delle concentrazioni As 

ANALISI DEI DATI REALI DELL’ESEMPIO N° 5

priodogramma0001

L’IDEA E’ QUESTA:

– SUI SESSANTA DATI DELLA CONCENTRAZIONE ARSENICO (yt, GRAF. N.1) IN ALCUNE SORGENTI DELLA CARLINA (PROV. SIENA), SI FA UNA REGRESSIONE LINEARE ED I SUOI  60 VALORI PREDETTI  SI SOTTRAGGONO DA yt, OTTENENDO LA SERIE DETRENDIZZATA.

– QUEST’ULTIMA SI SOTTOPONE AL PERIODOGRAMMA CHE, IN USCITA, PERMETTE DI CALCOLARE LE SUE COMPONENTI ARMONICHE.

– SOMMANDO LE COMPONENTI ARMONICHE RILEVANTI PIU’ I VALORI DEL TREND E SOTTRAENDO TALE SOMMA DALLA SERIE ORIGINALE yt, SI OTTERRA’ LA “STIMA DELL’ERRORE STANDARD” CHE DA’ UN’IDEA DELLA BONTA’ DEL PROCESSO.

Si trascriva manualmente i seguenti scripts  sulla consolle del MATHEMATICA DI WOLFRAM (vers. non superiore alla 6.0); si evidenzi e si batta shift-enter: si otterranno i risultati e grafici riportati alla fine di questo programma (si noti in particolare il grafico ampiezza-numero armoniche eseguito sulla serie detrendizzata, dove è evidente il picco all’armonica n°5)

Period_con_math0001

Period_con_math0002

period_con_math10001

period_con_math10002

period_con_math10003

——————————————————————–

RISULTATI DEL PROGRAMMA ESEMPIO N.5 (conc. As detrend)

Period_con_math20001

Period_con_math20002

Period_con_math20003x

Period_con_math20004

Period_con_math20005x

Period_con_math20006

Period_con_math20007x

A4-Esempio N.4

ANALISI DELL’ESEMPIO N° 4 CON RISULTATI E GRAFICI (DATI SIMULATI)
Mathematica0001

Mathematica0002

Mathematica0003

Mathematica0004 - Copia

Mathematica0005 - Copia

Mathematica0006

Mathematica10001

Mathematica10002

Mathematica10003

Mathematica10004

Mathematica20001 - Copia

Mathematica20002 - Copia

Mathematica20003

Mathematica20004

A6-Esempio N.6

Oscillazione mensile ozono a Montecerboli (Pomarance,Pi); 2007-2011

fouroz20001

fouroz20002

fouroz20004

fouroz20006

fouroz20005

fouroz20006

fouroz20007fouroz2008RISULTATI GRAFICI OZONO
fouroz2009

fouroz20010

———————————————————————————-

 

ESEMPIO N° 5 CHE USA LE ARMONICHE RILEVANTI MESSE IN FORMULA IN UNA PRE-PROVA

four_art1 da correggere

four_art2

four_art3

four_art4

four_art5

four_art6

four_art7

four_art8

four_art9

four_art10

four_art11

four_art12

four_art13

four_art14

four_art15

four_art16

four_art17

four_art18

fuor_art19 da correggere

LEGGE DEI SEMI a cura del dott. prof. Marcello Buiatti, ordinario di Genetica, Università di Firenze

L’articolo_documento si basa su discussioni relative a dati presentati in un Convegno ad alto livello tenutosi a Firenze  nel febbraio 2013

PER ACCEDERE ALL’ARTICOLO in pdf CLICCARE SOTTO

Legge dei semi (1)

Il prof. Buiatti è Presidente del Centro InterUniversitario della Filosofia della Biologia “Res Viva, La Sapienza Roma

E’ membro anche del Consiglio Nazionale dell’Ambiente CNA, Roma