I SEMI ANTICHI a cura di Angelo Bianchi, erborista

I SEMI ANTICHI di Angelo Bianchi

Molti cibi che arrivano sulle nostra tavola sono in gran parte prodotti dall’industria. Per soddisfare ed anche per imporre certi criteri esclusivamente commerciali, viene ritenuto necessario pianificare le colture in modo che si abbiano piante adatte alla raccolta, alla conservazione ed alla trasformazione delle derrate e che tengano conto delle esigenze dei processi di lavorazione e commercializzazione delle grosse catene commerciali.

        Questa prassi assai diffusa non prevede, se non in minima parte, la salvaguardia dell’ambiente, la biodiversità genetica.  Il risultato di questa tendenza impone, tra l’altro, che i piccoli coltivatori siano dipendenti dalle sementi ( in larga parte ibridi e OGM) controllate dai grandi complessi agroindustriali ( per es. Monsanto ed altri) e costretti poi di conseguenza ad utilizzare i prodotti di sintesi di cui le stesse industrie sono produttrici. Infatti tali sementi avendo in qualche modo perso la naturale robustezza e rusticità, a causa delle manipolazioni atte a privilegiarne la produttività, necessitano per essere coltivate, trattamenti massicci di pesticidi per combatterne le avversità e necessitano anche apporti notevoli di concimi chimici per sostenerne la crescita e lo sviluppo.
         Tra i piccoli agricoltori si è diffusa la volontà di controbattere questa tendenza dell’industria agroalimentare e si è cercato di recuperare varietà di sementi che possano garantire la biodiversità, il sapore e la salubrità del cibo, e , non ultima, la possibilità di autoprodursi le sementi necessarie, cercando di svincolarsi, per quanto possibile, dalla morsa dei condizionamenti imposti dall’agroindustria.
          Questi agricoltori, insieme ad alcuni ricercatori universitari, hanno cercato di recuperare semi di orticole e di cereali accantonati, nei tempi recenti, perché meno produttivi e meno adatti alle colture intensive anche se notevolmente resistenti alle avversità ed in  grado di produrre piante particolarmente ricche di valori nutritivi.
           Questa ricerca riguarda soprattutto le varietà locali adatte per uno specifico terreno e clima, assolutamente diverse delle sementi costruite per la monocoltura che invece sono le stesse per differenti climi, terreni e latitudini.
            Nei casi di particolari avversità climatiche oppure di avversità causate da parassiti e crittogame, le monocolture vengono praticamente distrutte in modo assai grave, in quanto tutte le piante sono sottoposte allo stesso rischio, mentre nel caso di una promisquità di diverse varietà ci saranno alcune piante che soccomberanno, ma altre invece che riusciranno a resistere e quindi a garantire in ogni caso il raccolto. Alcuni agricoltori si sono attrezzati anche per fornire alla popolazione locale prodotti provenienti da queste varietà “antiche” ed a garantire quindi alimenti assai più ricchi di valori nutritivi, esenti da residui tossici e rispettosi dell’ambiente e della biodiversità.
              Questa piccola rete “commerciale” inoltre permette di limitare i trasporti che creano non pochi danni all’ambiente e notevoli spese che vanno ad incidere in maniera sostanziale sul prezzo del prodotto.
               Attraverso questi semplici meccanismi si può cercare in qualche modo di modificare le abitudini e gli acquisti delle persone, in gran parte condizionati dalla pubblicità e dalle mire di chi ha come scopo solo l’interesse economico.
Angelo Bianchi
Erborista

FLORA E VEGETAZIONE NEL VOLTERRANO del dott. Juri David Bettini

Il seguente articolo del dott. Juri Bettini è stato trasferito da “Il Sillabario” 4-1996  e  1-1997, inserti della Comunità di Pomarance.
juri10001

Per vedere la tab. N.1 cliccare su:

ARTICOLO1

juri0002

CONTROLLA IL CONTO! ESEMPIO DI ANALISI STATISTICA CON EXCEL SU PIOGGE E TEMPERATURE MENSILI NEL VOLTERRANO a cura del dott. Piero Pistoia

POST IN VIA DI COSTRUZIONE: LA VIA SI FA NELL’ANDARE! e, con Foerster e, per certi versi, Bruner, la cultura non si comunica ma si costruisce insieme.

Per questo lavoro si ringrazia il dott. David Bettini per aver fornito nel 1996, circa venti anni fa, i  dati mensili di piogge e temperature del Volterrano per trenta anni a partire dal 1956.

RIFLESSIONI E CONTI  SU PIOGGE E TEMPERATURE MENSILI DAL 1956 AL 1986, CALCOLO E VARIAZIONE DEGLI  INDICI CLIMATICI DI BAGNOULS E GAUSSEN COL TEMPO,  ATTRAVERSO MEDIE MOBILI, FATTORI STAGIONALI ED ALTRO SULLE SERIE STORICHE a cura del dott. Piero Pistoia

Ecco i ‘conti’ con Excel che sviluppai appunto una ventina d’anni fa:

PIOGGE_VOLTERRA 1956-1986

Sulla cartella di lavoro di Excel appaiono 7 grafici (N°: 1-2; 3; 4; 7; 8; 9; 11) e 7 fogli di lavoro (N°: 18; 1; 2; 3; 5; 6; 7), alla rinfusa a zibaldone, su cui discuteremo nel seguito. Intanto il lettore potrà trovare una guida alla ‘lettura’ dei precedenti processi (individuando le formule utilizzate riportate) su altri esempi di statistica, anche  con l’uso di Excel, dello stesso autore, per es. nel post “UN PARZIALE PERCORSO DI BASE SULL’ANALISI DI UNA SERIE STORICA REALE…”, uno zibaldone di statistica e linguaggi informatici (la statistica ‘raccontata’ con Excel, con il Basic, il Mathematica di Wolfram e l’R), ecc..

DA CORREGGERE!

Intanto cerchiamo di ricavare dal link i dati di pioggia e temperatura in Excel, per memorizzarle in un file .csv, leggibile da R. Iniziamo con i dati di pioggia. Si clicca sul link: PIOGGE_VOLTERRA_1956_1986, riportato sopra.

Appare una console di Excel con riportate varie colonne, nominate sopra; si va al Foglio 1 (7 colonne e un grafico degli Effetti Stagionali) e si isola intanto la seconda colonna  che contiene 360 dati mensili della pioggia da 1956 al 1986, eliminando le altre, memorizzandola poi col suffisso .CSV, nel file VOLTERRA_PIOGGE_1956_1986_A (ricordarsi in quale Memoria di Massa), con le seguenti opzioni: Si mantenga il formato corrente – Tipo di carattere occidentale – Separatore di campo la “virgola”.

Si entra nella console di R e si guarda se il processo funziona.

setwd(“X:/”)

in X va la lettera della memoria di massa; nel nostro caso setwd(“I:/”) o ultimamente G-

Si fanno tentativi per far leggere da  R  i dati con suffisso .xls

Altri scritti e argomentazioni seguiranno successivamente

ECCO UN PRIMO ‘ASSAGGIO’ ORGANIZZATO DEL RACCONTARE  L’ARTICOLARSI DEL CONTENUTO DEL LINK IN XLS CON IL LINGUAGGIO DI R, INIZIANDO IN PARTICOLARE DALLA COLONNA DUE CHE CONTIENE I DATI .

In definitiva tenterò di raccontare una storia statistico-informatica usando un linguaggio informatico alternativo; i diversi trucchi informatici con i loro risvolti logico-razionali necessari aumenteranno la possibilità di tentare veloci prove diversificate, attivando una maggiore concentrazione sui concetti statistici, visti da punti di vista diversi, insieme alla loro memorizzazione e alla loro assimilazione, oltre ad un intenso ammaestramento informatico.

Come in un gioco di puzzle a più vie, si attivano costruzioni con i ‘mattoni’  statistici a più possibilità e si costruiscono gli stessi concetti statistici con ‘mattoni’ informatici diversi logicamente, individuando percorsi diversi  e il percorso spesso diventa una facility  per l’apprendimento.

SCRIPTS IN R E COMMENTI

setwd(“I:/”)
dataset=read.csv(“PIOGVOLTR0.CSV”, header=T, dec=”.”, sep=”;”). La lettera ‘0’  è uno zero!

#Da tener d’occhio l’attributo dec=”.” dell’argomento !?

#COME SI COSTRUISCE IL FILE PIOGVOLTR0.CSV a partire da foglio 1 di Excel:

# 1 – Dal post “CONTROLLA IL CONTO…” si carica, cliccando sul link
#”PIOGGE_VOLTERRA 1956_1986″, l’analisi in .xls su questi dati di cui parla il post
# e questo al fine di costruire dal foglio 1 un data frame leggibile da R.

# 2 – E’ un foglio di Excel, ma siamo in Open Office; mi pongo sul foglio 1
# (siglato anche col nome del link)

# 3 . Cambio le intestazioni originali e le sostituisco col nome di variabili neutre
#X.1 X.2 …X.7 per le sette colonne del foglio; ne chiariremo nel proseguio
#il contenuto.

# 4 – Salvo questo foglio in xls con l’opzione di Open Office “Testo CSV(.csv)”
# nel file, in questo caso, PIOGVOLTR0 che ricaricheremo con R; ognuno
#può chiamarlo col nome che vuole e memorizzarlo sul disco che vuole, basta
#ricordasi il nome; noi abbiamo chiamato il file come detto e lo memoriziamo in
# un disco rimovibile indicato con I o G. Durante la memorizzazione rispondiamo
#alle domande, separatore di campo “;” , separatore di testo Apice ‘ ecc.

# 5 – Si copi il presente testo sulla console di R e controlla che giri; il nostro gira! Per un po’!! Vedere nel proseguo dell’argomentazione.

Oppure, per  preparare i racconti successivi, si memorizzano tutte le sette colonne (cioè l’intera pagina di excel), ponendo al posto delle intestazioni che figuravano nella pagina, le seguenti sette una per colonna: X.1,X.2….X.7, alla testa di esse.

 

PREMESSA E DESCRIZIONE DEL PROCESSO

ECCO IL NOSTRO PROGETTO IPOTETICO CON OUTPUTS

attach(dataset)
X.1

Dovrebbe apparire  la prima colonna

Dovrebbero apparire i 6 valori iniziali del dataset

head(dataset)

X.2[1:6]

In effetti appaiono tre NA iniziali prima dei valori del 1956; per il resto Ok; con

X.2[4:375], si pensa di correggere; appaiono i 372 valori effettivi delle piogge misurate! La corroborazione dell’ipotesi sembrava abbastanza scontata. Il dataframe col processo descritto portava, nominando la seconda variabile di colonna, ai dati da analizzare! Il processo aveva funzionato.

Invece da qui la sorpresa non prevista. Se cerco di memorizzare  X.2[4-375] in una variabile (es.,dataset2 ), cioè

dataset2=X.2[4:375] e guardo i dati in essa (battendo dataset2 sulla console di R) i contenuti sono stranamente completamente cambiati! ts.plot(dataset2) dà un grafico che sembra non riguardare più la nostra prova, comunque continuiamo la loro analisi per cercare anche di capire. Il processo comunque è un modello abbastanza trasferibile ad altri insieme di dati! Poi con calma cercheremo di entrare in possesso di questi dati reali in qualche modo, al limite copiandoli direttamente in un vettore  di R. Insomma nel trasferimento del contenuto conosciuto di una variabile ad un’altra….entriamo in una zona caotica imprevista, almeno per ora. VEDREMO poi!

_________________________________________________________

ECCO IL RIQUADRO DELLO  SBAGLIO NON VOLUTO!

Da una revisione sui processi nella sintassi del  richiamo del file in .CSV, fra gli altri attributi, c’era dec (separatore dei decimali) =; qui fra virgolette avevo inserito il punto. Dovevamo dire che invece c’era la virgola: dec=”,”. Ora il programma gira. Col punto il programma pensava che le scritte dei numeri decimali fossero testo,  attivando le funzioni factor e level.

ECCO IL RIQUADRO DELLA CAUSA

I am sorry. Troppe direttrici culturali, aperte e diverse fra loro, da ordinare, creano una situazione entropica densa e dispersiva che, coniugata al tempo che ora scorre rapido ed ai problemi sempre più numerosi in quest’ultimo scorcio della vita, aumentano una richiesta di concentrazione poco spiegabile per un lavoro semplicemente hobbistico, in totale assenza di contributi, che vengono invece elargiti, per la cultura, da organi sociali; per passare il tempo insomma! Vedrò.

Comunque , ‘si parva licet componere magnis’ (Virgilio ‘Georgiche, IV), ritengo che un apporto culturale che non si esaurisca in ‘racconti e descrizioni’, ma proceda con punti interrogativi, caso proprio di questo blog, non sia inferiore a quello dei molti centri attivi benificiati da contributi, ed anche mi sembra che le stesse ‘lectiones magistrales’ dei gruppi di eccellenza, che si susseguono nei palchi, spesso, nel migliore dei casi, si ‘spengano’ in se stesse, comunicando poco, e, negli altri casi si riducano ad escamotages pubblicitari per ottenere finanziamenti.

In attesa …per i lettori curiosi, se ci sono, ho intanto ricopiato direttamente in un vettore di R i 372 dati delle piogge mensili, su cui sarà possibile accedere, nell’immediato, alla loro analisi, ‘divertendosi’ nel controllare conti e processi, cioè nel fare cultura

dataset=c(89.2,32,68,106,39.8,69.4,33.4,25.2,64.4,41.4,123.8,34.4,
66.8,100.2,17,109.8,159.8,23.6,27,5.6,2.4,74.2,100.8,79,
47.4,27,133,108.8,36,30.6,22,21,12.8,163.8,67,134.4,
61.2,35.6,133.2,69.2,120.8,25.4,4.6,46,46.2,74.6,73.4,149.2,
57.8,112.8,113.4,62,9.6,91.4,64.6,5.2,179.6,214.6,132.2,210.2,
107.8,30,0.6,152.8,37.6,73,18.4,1.5,87.6,160.4,135.8,86.4,
50.4,46.6,139.6,35.6,35.6,21.6,37.6,50,64.8,161.6,196.8,35.4,
147.6,89.4,75.3,74.2,45.8,89.2,28.8,38.8,94.6,95.2,100.4,88.8,
4.6,77.6,157.6,58.8,49.6,32.2,84,69.5,34,193,78,118.4,
127.8,16.8,91,107.4,50.4,36,80,24.8,119.8,2.6,240.2,104.8,
97.8,88.4,28.4,28.4,36.2,28.6,67.2,52.2,122.8,173.4,259,59.6,
49.2,42.2,56.4,11.4,84.2,83.6,19.4,75.8,99.2,42.8,99.8,62.6,
57,149.8,29.8,49,156,91.4,28,65.8,35.6,75,148.2,68,
89,156.2,85.8,40,56.6,43.4,38.4,83.8,128.6,26.4,157.2,106.4,
104.8,98.2,140.6,79.6,66.6,63.8,18.6,22.4,75,28.2,106.4,95,
81,51.4,55,53,122.4,67.2,15.8,2.2,54.8,17.4,149,8.6,
85.4,91.8,43,106.8,51.4,26,71,49,136.6,76,46.8,67.2,
70.8,33,13,48.2,17.2,56.2,38.8,22.6,171,80,73.2,30.6,
35.4,105.2,66,80.6,52.8,27.2,12.6,61.4,88.8,87.6,64.2,16.6,
16.2,39.6,101.6,92.2,47.6,74.4,11.4,92.8,51.2,125.2,103.8,102.2,
12.4,55,92.8,75.8,28.6,32.6,86,94.4,110.8,154.6,69.4,175.4,
61.2,108,54,15,101,12,29.4,100.2,33.2,31.4,65.4,60.4,
102.2,96.6,68,172.2,66.8,67,87.6,23.2,18.6,88,38.8,103,
127.4,75.8,50.8,84.8,1.4,80,9.4,131.4,84.8,110.4,126.6,108,
50.2,20.4,125.8,34,102.6,66.6,22.8,13,1,142.4,182.2,79.8,
64.2,25.6,85.2,74.4,31.4,13.4,45,15.8,99.8,172.2,1.6,152.2,
33,40.8,64.2,23.2,55.6,34.4,3.4,59.4,70.4,142.6,210.4,100,
23,199.6,128,65.6,22.8,34.2,8,192,12.4,73.2,17.6,37,
72.4,65.6,83.8,91.4,161,87.2,3.3,131.4,91,139.6,142.8,86,
93.8,67.6,147.2,9.2,94.4,25,15,72.2,0.4,58,117.8,32.6,
102.4,113.4,125.6,122,1.4,121.8,70,7.4,26.8,13,63.6,53.2)

Comunque lo sviluppo a partire da questo vettore verrà inserito in links  successivi.  Al termine aggiungeremo anche l’outputs senza errori come garanzia del lavoro

DATASET_PIOGGE_VOLT_24_5_ stag1_stag2_OUT_OK1

DATASET_PIOGGE_VOLT_24_5_ stag1_stag2_OUT

 Seguono i 5 grafici del link precedente a quello sopra, costruiti nell’ OUTPUT relativo. Dovremo aggiungere anche altri tre grafici  relativi all’output del nuovo ultimo links.

Nella serie dataset  ipotizziamo che sia assente un trend, come suggerito dal GRAF.1

GRAF_PIOG_VOLT0001

GRAF_PIOG_VOLT0002

GRAF_PIOG_VOLT0003

GRAF_PIOG_VOLT0004

GRAF_PIOG_VOLT0005

GRAF.4 analisi

I links successivi riguarderanno la Stagionalità, Fattori stagionali, Effetti stagionali.

piog_volt_5_8_graf0001

piog_volt_5_8_graf0002

piog_volt_5_8_graf0003

piog_volt_5_8_graf0004

piog_volt_5_8_graf0005

piog_volt_5_8_graf0006

 

_______________________________________________

Prove statistiche  e tentativi su ipotesi al fine di costruire un modello trasferibile.

#Ipotizzo che con una media mobile a tre termini pesata, #possa eliminare in buona parte i randoms da questa strana #serie dataset2 (già senza il trend come dal grafico).

yt2=dataset2; n2=length(yt2); mbt2=c()
for(t in 2: n2-1){mbt2[t]=(yt2[t-1]+2*yt2[t]+yt2[t+1])/4}
ts.plot(mbt2)

#Ho smussato dall’originale (dataset2 )i randoms per cui avrei ottenuto
#una serie senza i randoms (con plausibili stagionalità+ciclo; assente il trend
#iniziale come si vedeva ad occhio dal grafico di dataset2.
#Così se applico una media mobile di ordine dodici a mbt2 (primo caso), mi aspetto di trovare una serie con solo il ciclo.
#Potevo applicare la media mobile 12 direttamente su dataset2, smussandola
#di stagionalità e forse anche di randoms, e poi, togliendo
#la stagionalità+ randoms (questa nuova serie) da dataset2 avrei ottenuto solo
# il ciclo, perché all’inizio non possedeva trend .
#Protocollo sperimentale per  il modello: da confrontare questi due processi che dovrebbero condurre ambedue al ciclo.

#Questa serie con solo il ciclo la chiamo mbt2_12.

#PROVIAMO IL CASO 1:
yt=mbt2; n1=length(mbt2)-2; mbt2_12=c()
for(t in 7: n1-6){mbt2_12[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}

ts.plot(mbt2)
#stagionalità + randoms
lines(mbt2_12)

#CICLO; è la serie mbt2 smussata della stagionalità
#se tolgo stagionalità + ciclo – ciclo, mbt2-mbt2_12, ottengo la stagionalità.

#Stiamo pensando anche di scrivere direttamente i 372 valori

#della di X.2[4:375], nella variabile dataset2 con

#dataset2=c(………)

 

LA VERSIONE CORRETTA + I RELATIVI  CINQUE GRAFICI

setwd("F:/")
dataset=read.csv("PIOGVOLTR0.CSV", header=T, dec=",", sep=";")

#Da osservare l'attributo dec=","! nell'argomento della funzione "read.csv".
 
#COME SI COSTRUISCE IL FILE PIOGVONTR.CSV a partire da foglio 1 di Excel.
 
par(ask=T) 
attach(dataset) 
X.1 
#Stampa i 372 dati della 1a colonna delle 7 colonne del DATA.FRAME 
#contenuto nel file PIOGVOLTR0.CSV (indicazione degli anni a partire dal 1956 
#intervallati da NA head(dataset) # X.1 X.2 X.3 X.4 X.5 X.6 X.7 
#1 1956 89,2 -3,3 70,62580645 #2 NA 32 2,0 73,94193548 #3 NA 68 10,2 83,02258065 
#4 NA 106 -2,0 72,30322581 #5 NA 39,8 -9,6 62,67741935 #6 NA 69,4 -21,0 52,52903226 
#Stampa i valori delle prime sei righe del data.frame, costituito da 
#sette colonne. 
X.2[4:375] 
#Stampa i 372 dati della 2a colonna in mm di pioggia mensili 
#partendo dall'anno 1956 con gennaio  
X.2[1:6] 
#Stampa i primi sei valori della seconda colonna 
#[1] 89,2 32 68 106 39,8 69,4
dataset=ts(dataset) 
#considera il data.frame dataset come una serie storica dataset2=X.2[1:372] 
#prende 1 valori da 1 a 372 del vettore X.2 e li mette 
#nella variabile dataset2 
dataset2=ts(dataset2) 
#dataset2 è una serie storica ts.plot(dataset2) 
#GRAF.1 #Stampa la serie storica dataset2; sembra assente il trend. PIOGGE_Vo_GRAF0001yt2=dataset2; n2=length(yt2); mbt2=c() 
for(t in 2: n2-1){mbt2[t]=(yt2[t-1]+2*yt2[t]+yt2[t+1])/4} 
ts.plot(mbt2)
# GRAF.2 
#disegno il grafico di mbt2, GRAF.2, cioè i dati originali (senza trend) 
#privati anche dei random s.l.

GRAF.2
 
PIOGGE_Vo_GRAF0002#Penso di smussare cioè dataset2 dai randoms s.l.; nel vettore mbt2 è plausibile 
#siano contenuti dati relativi a stagionalità e ciclo. 
#Ho smussato dall'originale (dataset2 )i randoms s.l. per cui avrei ottenuto 
#una serie senza i randoms (con plausibili stagionalità+ciclo); assente il trend 
#iniziale come si vedeva ad occhio dal grafico di dataset2. 
#Così se applico una media mobile di ordine dodici a mbt2 mi aspetto di trovare 
#una serie con solo il ciclo (PRIMO CASO). 
#Potevo applicare la media mobile 12 direttamente su dataset2 (SECONDO CASO), 
#smussandola dalla stagionalità e forse anche dai randoms (?), e poi, togliendo 
#la stagionalità + randoms (questa nuova serie) da dataset2 avrei ottenuto solo 
# il ciclo. 
#Da confrontare questi due processi che dovrebbero condurre ambedue al ciclo. 
#Questa seconda serie con solo il ciclo la chiamo mbt2_12. 
#PROVIAMO IL PRIMO CASO (applico una media modile 12 su mbt2: 
yt=mbt2; n1=length(mbt2)-2; mbt2_12=c() 
for(t in 7: n1-6){mbt2_12[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} 
ts.plot(mbt2_12)
#GRAF.3 Disegno il grafico del ciclo

#GRAF.3
 
PIOGGE_Vo_GRAF0003
ts.plot(mbt2) # + CICLO1 sovrapposto. 
#Disegno il grafico di mbt2 (stagionalità + ciclo) e sovrappongo mbt2_12 (ciclo): 
lines(mbt2_12) 
#è la serie mbt2 smussata della stagionalità 
#Insieme al grafico mbt2 (stagionalità+ciclo) sovrappongo il ciclo: GRAF.4 PIOGGE_Vo_GRAF0005#Se tolgo il ciclo da stagionalità + ciclo (mbt2), ottengo mbt2-mbt2_12, 
#cioè la stagionalità. 
#Sorge il problema che mbt2 e mbt2_12 debbono avere la stessa lunghezza

#per poterli sottrarre 
#FACCIO DELLE PROVE PER RENDERE I VETTORI LUNGHI UGUALE 
#Controllo mbt2 
length(mbt2) # 371 = 12 
head(mbt2) # NA 1.00 70.75 177.50 202.75 159.00 
mbt2=mbt2[2:(length(mbt2)-1)] 
#Controllo mbt2_12 
length(mbt2_12) # 363 
head(mbt2_12) 
# NA NA NA NA NA NA 
#Impongo che mbt2 e mbt2_12 abbiano la stessa lunghezza per sottrarli 
mbt2_12=mbt2_12[7: (length(mbt2_12)-6)] 
length(mbt2_12) 

#Proviamo il SECONDO CASO (applico direttamente la Mb12 su dataset2) 
#per il calcolo del ciclo 
yt=dataset2; n1=length(dataset2); mbt2_12_0=c() 
for(t in 7: n1-6){mbt2_12_0[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} 
ts.plot(mbt2_12_0) 
#Disegno il grafico del ciclo nel secondo modo: GRAF.5 PIOGGE_Vo_GRAF0006 PIOGGE_Vo_GRAF0007#Da confrontare i due grafici del ciclo mbt2_12_0 e mbt2_12. 
#I due cicli praticamente coincidono. Ma nel secondo sono rimasti 
#più errori randoms (?), nel senso che la Mb12 sugli originali 
#praticamente elimina da essi solo la stagionalità. Per cui
#nella serie nuova rimarrà ciclo+randoms e se sottraggo 
#Ciclo+Randoms dall'originale (dataset2) otterrei 
#direttamente la Stagionalità. #Potremmo fare un test statistico per controllo. 
#CALCOLO DELLA STAGIONALITA' nel proseguo (SECONDA PARTE) 

___________________________________________ OUTPUTS di R 
> rm(list=ls(all=TRUE)) 
> setwd("F:/") 
> dataset=read.csv("PIOGVOLTR0.CSV", header=T, dec=",", sep=";") 
>#COME SI COSTRUISCE IL FILE PIOGVONTR.CSV a partire da foglio 1 di Excel 
> par(ask=T) 
> attach(dataset) 
>#The following objects are masked from dataset (pos = 3): 
>X.1, X.2, X.3, X.4, X.5, X.6, X.7  
> X.1 
[1] NA NA NA 1956 NA NA NA NA NA NA NA NA NA NA NA 
[16] 1957 NA NA NA NA NA NA NA NA NA NA NA 1958 NA NA 
[31] NA NA NA NA NA NA NA NA NA 1959 NA NA NA NA NA 
[46] NA NA NA NA NA NA 1960 NA NA NA NA NA NA NA NA 
[61] NA NA NA 1961 NA NA NA NA NA NA NA NA NA NA NA 
[76] 1962 NA NA NA NA NA NA NA NA NA NA NA 1963 NA NA 
[91] NA NA NA NA NA NA NA NA NA 1964 NA NA NA NA NA 
[106] NA NA NA NA NA NA 1965 NA NA NA NA NA NA NA NA 
[121] NA NA NA 1966 NA NA NA NA NA NA NA NA NA NA NA 
[136] 1967 NA NA NA NA NA NA NA NA NA NA NA 1968 NA NA 
[151] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 
[166] NA NA NA NA NA NA 1970 NA NA NA NA NA NA NA NA 
[181] NA NA NA 1971 NA NA NA NA NA NA NA NA NA NA NA 
[196] 1972 NA NA NA NA NA NA NA NA NA NA NA 1973 NA NA 
[211] NA NA NA NA NA NA NA NA NA 1974 NA NA NA NA NA 
[226] NA NA NA NA NA NA 1975 NA NA NA NA NA NA NA NA 
[241] NA NA NA 1976 NA NA NA NA NA NA NA NA NA NA NA 
[256] 1977 NA NA NA NA NA NA NA NA NA NA NA 1978 NA NA 
[271] NA NA NA NA NA NA NA NA NA 1979 NA NA NA NA NA 
[286] NA NA NA NA NA NA 1980 NA NA NA NA NA NA NA NA 
[301] NA NA NA 1981 NA NA NA NA NA NA NA NA NA NA NA 
[316] 1982 NA NA NA NA NA NA NA NA NA NA NA 1983 NA NA 
[331] NA NA NA NA NA NA NA NA NA 1984 NA NA NA NA NA 
[346] NA NA NA NA NA NA 1985 NA NA NA NA NA NA NA NA 
[361] NA NA NA 1986 NA NA NA NA NA NA NA NA NA NA NA 
> #Stampa i 372 dati della 1a colonna delle 7 colonne del DATA.FRAME 
> #contenuto nel file PIOGVOLTR0.CSV (indicazione degli anni a partire dal 1956 
> #intervallati da NA 
>  head(dataset) X.1 X.2 X.3 X.4 X.5 X.6 X.7 
1 NA NA NA NA NA NA NA 
2 NA NA NA NA NA NA NA 
3 NA NA NA NA NA NA NA 
4 1956 89.2 NA NA NA -3.3 70.62581 
5 NA 32.0 NA NA NA 2.0 73.94194 
6 NA 68.0 NA NA NA 10.2 83.02258 
> # X.1 X.2 X.3 X.4 X.5 X.6 X.7 
> #1 1956 89,2 -3,3 70,62580645 
> #2 NA 32 2,0 73,94193548 > 
>#3 NA 68 10,2 83,02258065 
> #4 NA 106 -2,0 72,30322581 
> #5 NA 39,8 -9,6 62,67741935 
> #6 NA 69,4 -21,0 52,52903226 
> #Stampa i valori delle prime sei righe del data.frame, costituito da 
> #sette colonne. 
> X.2[4:375] 
[1] 89.2 32.0 68.0 106.0 39.8 69.4 33.4 25.2 64.4 41.4 123.8 34.4 
[13] 66.8 100.2 17.0 109.8 159.8 23.6 27.0 5.6 2.4 74.2 100.8 79.0 
[25] 47.4 27.0 133.0 108.8 36.0 30.6 22.0 21.0 12.8 163.8 67.0 134.4 
[37] 61.2 35.6 133.2 69.2 120.8 25.4 4.6 46.0 46.2 74.6 73.4 149.2 
[49] 57.8 112.8 113.4 62.0 9.6 91.4 64.6 5.2 179.6 214.6 132.2 210.2 
[61] 107.8 30.0 0.6 152.8 37.6 73.0 18.4 1.5 87.6 160.4 135.8 86.4 
[73] 50.4 46.6 139.6 35.6 35.6 21.6 37.6 50.0 64.8 161.6 196.8 35.4 
[85] 147.6 89.4 75.3 74.2 45.8 89.2 28.8 38.8 94.6 95.2 100.4 88.8 
[97] 4.6 77.6 157.6 58.8 49.6 32.2 84.0 69.5 34.0 193.0 78.0 118.4 
[109] 127.8 16.8 91.0 107.4 50.4 36.0 80.0 24.8 119.8 2.6 240.2 104.8 
[121] 97.8 88.4 28.4 28.4 36.2 28.6 67.2 52.2 122.8 173.4 259.0 59.6 
[133] 49.2 42.2 56.4 11.4 84.2 83.6 19.4 75.8 99.2 42.8 99.8 62.6 
[145] 57.0 149.8 29.8 49.0 156.0 91.4 28.0 65.8 35.6 75.0 148.2 68.0 
[157] 89.0 156.2 85.8 40.0 56.6 43.4 38.4 83.8 128.6 26.4 157.2 106.4 
[169] 104.8 98.2 140.6 79.6 66.6 63.8 18.6 22.4 75.0 28.2 106.4 95.0 
[181] 81.0 51.4 55.0 53.0 122.4 67.2 15.8 2.2 54.8 17.4 149.0 8.6 
[193] 85.4 91.8 43.0 106.8 51.4 26.0 71.0 49.0 136.6 76.0 46.8 67.2 
[205] 70.8 33.0 13.0 48.2 17.2 56.2 38.8 22.6 171.0 80.0 73.2 30.6 
[217] 35.4 105.2 66.0 80.6 52.8 27.2 12.6 61.4 88.8 87.6 64.2 16.6 
[229] 16.2 39.6 101.6 92.2 47.6 74.4 11.4 92.8 51.2 125.2 103.8 102.2 
[241] 12.4 55.0 92.8 75.8 28.6 32.6 86.0 94.4 110.8 154.6 69.4 175.4 
[253] 61.2 108.0 54.0 15.0 101.0 12.0 29.4 100.2 33.2 31.4 65.4 60.4 
[265] 102.2 96.6 68.0 172.2 66.8 67.0 87.6 23.2 18.6 88.0 38.8 103.0 
[277] 127.4 75.8 50.8 84.8 1.4 80.0 9.4 131.4 84.8 110.4 126.6 108.0 
[289] 50.2 20.4 125.8 34.0 102.6 66.6 22.8 13.0 1.0 142.4 182.2 79.8 
[301] 64.2 25.6 85.2 74.4 31.4 13.4 45.0 15.8 99.8 172.2 1.6 152.2 
[313] 33.0 40.8 64.2 23.2 55.6 34.4 3.4 59.4 70.4 142.6 210.4 100.0 
[325] 23.0 199.6 128.0 65.6 22.8 34.2 8.0 192.0 12.4 73.2 17.6 37.0 
[337] 72.4 65.6 83.8 91.4 161.0 87.2 3.3 131.4 91.0 139.6 142.8 86.0 
[349] 93.8 67.6 147.2 9.2 94.4 25.0 15.0 72.2 0.4 58.0 117.8 32.6 
[361] 102.4 113.4 125.6 122.0 1.4 121.8 70.0 7.4 26.8 13.0 63.6 53.2 
> #Stampa i 372 dati della 2a colonna in mm di pioggia mensili > #partendo dall'anno 1956 con gennaio (i dati del data.frame > #partivano da tre mesi prima (da ottobre 1955) > > X.2[1:6] [1] NA NA NA 89.2 32.0 68.0 > #Stampa i primi sei valori della seconda colonna > #[1] 89,2 32 68 106 39,8 69,4 > X.2=as.number(X.2) Errore: non trovo la funzione "as.number" > > dataset=ts(dataset) > #considera il data.frame dataset come una serie storica > > dataset2=X.2[1:372] > #prende 1 valori da 1 a 372 del vettore X.2 e li mette > #nella variabile dataset2 > > dataset2=ts(dataset2) > #dataset2 è una serie storica > > ts.plot(dataset2) #GRAF.1 Aspetto per confermare cambio pagina... > #Stampa la serie storica dataset2; sembra assente il trend. PIOGGE_Vo_GRAF0001> yt2=dataset2; n2=length(yt2); mbt2=c() 
> for(t in 2: n2-1){mbt2[t]=(yt2[t-1]+2*yt2[t]+yt2[t+1])/4} > > ts.plot(mbt2)# GRAF.2 Aspetto per confermare cambio pagina... > #disegno il grafico di mbt2, cioè i dati originali (senza trend) > #privati anche dei random s.l. > #Penso di smussare cioè dataset2 dai randoms s.l.; nel vettore mbt2 è plausibile > #siano contenuti dati relativi a stagionalità e ciclo. PIOGGE_Vo_GRAF0002 > #Ho smussato dall'originale (dataset2 )i randoms s.l. per cui avrei ottenuto > #una serie senza i randoms (con plausibili stagionalità+ciclo; assente il trend > #iniziale come si vedeva ad occhio dal grafico di dataset2. > #Così se applico una media mobile di ordine dodici a mbt2 mi aspetto di trovare > #una serie con solo il ciclo (PRIMO CASO). > > #Potevo applicare la media mobile 12 direttamente su dataset2 (SECONDO CASO), > #smussandola dalla stagionalità e forse anche dai randoms, e poi, togliendo > #la stagionalità + randoms (questa nuova serie) da dataset2 avrei ottenuto solo > # il ciclo. > #Da confrontare questi due processi che dovrebbero condurre ambedue al ciclo. > > #Questa serie con solo il ciclo la chiamo mbt2_12. > > #PROVIAMO IL PRIMO CASO (applico una media modile 12 su mbt2: > yt=mbt2; n1=length(mbt2)-2; mbt2_12=c() > for(t in 7: n1-6){mbt2_12[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} > > ts.plot(mbt2_12)#GRAF.3 Aspetto per confermare cambio pagina... > Disegno il grafico del ciclo Errore: unexpected symbol in "Disegno il" PIOGGE_Vo_GRAF0003 > ts.plot(mbt2) Aspetto per confermare cambio pagina... > #Disegno il grafico di mbt2 (stagionalità + ciclo) e sovrappongo mbt2_12 (ciclo): > lines(mbt2_12) #è la serie mbt2 smussata della stagionalità > #Insieme al grafico mbt2 (stagianalità+ciclo) sovrappongo il ciclo: GRAF.4 PIOGGE_Vo_GRAF0005 > #Se tolgo il ciclo da stagionalità + ciclo (mbt2), ottengo mbt2-mbt2_12, > #cioè la stagionalità. > #Sorge il problema che mbt2 e mbt2_12 debbono avere la stessa lunghezza > #per poterli sottrarre > > #FACCIO DELLE PROVE PER RENDERE I VETTORI LUNGHI UGUALE > > #Controllo mbt2 > length(mbt2) [1] 371 > # 371 = 12 > head(mbt2) [1] NA NA NA NA 55.3 68.5 > # NA 1.00 70.75 177.50 202.75 159.00 > mbt2=mbt2[2:(length(mbt2)-1)] > > #Controllo mbt2_12 > length(mbt2_12) [1] 363 > # 363 > head(mbt2_12) [1] NA NA NA NA NA NA > # NA NA NA NA NA NA > #Impongo che mbt2 e mbt2_12 abbiano la stessa lunghezza per sottrarli > mbt2_12=mbt2_12[7: (length(mbt2_12)-6)] > length(mbt2_12) [1] 351 > > #Proviamo il SECONDO CASO (applico direttamente la Mb12 su dataset2) > #per il calcolo del ciclo > > yt=dataset2; n1=length(dataset2); mbt2_12_0=c() > for(t in 7: n1-6){mbt2_12_0[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} > > ts.plot(mbt2_12_0) Aspetto per confermare cambio pagina... > #Disegno il grafico del ciclo nel secondo modo. PIOGGE_Vo_GRAF0006> #Da confrontare i due grafici del ciclo mbt2_12_0 e mbt2_12. 
> #I due cicli praticamentte coincidono. nel secondo sembra siano rimasti più 
> #errori randoms. Potremmo fare un test statistico per controllo.

Curriculum di Piero Pistoia:
PIERO PISTOIA CURRICULUM1



DA CONTINUARE