Autore |
Discussione |
|
fenix01
Nuovo Arrivato
10 Messaggi |
Inserito il - 24 aprile 2008 : 20:35:02
|
ciao,
ho una rilevazione di 28814 numeri estratti da una roulette (tra 0 e 36) in formato excel, li ho portati in R con il comando read.table e attraverso la creazione di una dataframe ho creato una matrice di due colonne e 28813 righe in quanto nella prima colonna ho tolto l'ultimo numero estratto e nelle seconda il primo per fare un test di coerenza interna, di questa matrice devo fare un grafico a dispersione come devo fare?
grazie
|
|
|
chick80
Moderatore
Città: Edinburgh
11491 Messaggi |
|
fenix01
Nuovo Arrivato
10 Messaggi |
Inserito il - 25 aprile 2008 : 23:27:18
|
ciao, avevo provato con il comando plot però mi risulata un grafico in cui i punti sono perfettamente distanziati e allineati e mi sembrava impossibile come risulato per un'estrazione di roulette e quindi casuale..
allora ho provato a prendere il vettore colonna delle estrazioni e con il comando cbind(a[-28814],a[-1]) riordinarli in due colonne e poi fare il plot e mi da questo errore:
Errore in plot.window(...) : i valori 'xlim' devono essere finiti Inoltre: Warning messages: 1: In min(x) : no non-missing arguments to min; returning Inf 2: In max(x) : no non-missing arguments to max; returning -Inf 3: In min(x) : no non-missing arguments to min; returning Inf 4: In max(x) : no non-missing arguments to max; returning -Inf
non capisco cosa sbaglio ciao e grazie per la risposta...perchè ormai sto facendo un buco profondo nel muro a forza di sbattere la testa |
|
|
dallolio_gm
Moderatore
Prov.: Bo!
Città: Barcelona/Bologna
2445 Messaggi |
Inserito il - 26 aprile 2008 : 00:53:22
|
Forse puoi provare il comando 'hist(m)'. Dipende da come organizzati i dati sul foglio di calcolo. |
Il mio blog di bioinformatics (inglese): BioinfoBlog Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-) |
|
|
fenix01
Nuovo Arrivato
10 Messaggi |
Inserito il - 26 aprile 2008 : 23:00:24
|
neanche hist(m) mi dice che deve essere numerico.....anche se non capisco come non può non esserlo visto che sto analizzando solo caratteri quantitativi..cioè numeri |
|
|
chick80
Moderatore
Città: Edinburgh
11491 Messaggi |
Inserito il - 26 aprile 2008 : 23:35:59
|
Beh, in realtà il grafico che ottieni è corretto.
Considera questi due esempi
1) estraggo 100 numeri da 0 a 36
> a = sample(0:36, 100, replace=1) > a [1] 21 17 33 4 12 1 16 0 10 20 12 0 12 20 1 21 21 22 34 11 6 27 12 21 32 [26] 2 22 17 32 24 19 8 23 7 14 21 21 15 24 1 1 21 26 35 0 25 10 34 14 5 [51] 19 14 33 10 8 18 15 1 11 18 10 11 26 6 12 10 18 5 7 31 0 19 12 23 4 [76] 35 22 14 5 5 31 12 34 7 31 13 5 21 30 36 6 23 21 4 24 11 31 17 22 0
> plot(a[1:99], a[2:100])
e ottengo questo grafico:
Se però faccio
> b = sample(0:36, 28814, replace=1) > plot(b[1:28813], b[2:28814]);
Mi dà lo stesso "errore" che vedi tu...
Che però non è un errore, è semplicemente che per la legge dei grandi numeri sei praticamente sicura di avere tutte le coppie di valori tra 1 e 36 (tutte le coppie possibili sono 1296, e tu hai 28000 estrazioni).
Ha senso? Oppure tu vuoi avere un grafico differente? |
Sei un nuovo arrivato? Leggi il regolamento del forum e presentati qui
My photo portfolio (now on G+!) |
|
|
fenix01
Nuovo Arrivato
10 Messaggi |
Inserito il - 27 aprile 2008 : 13:23:07
|
allora il mio professore mi ha dato una serie di analisi da fare e mi ha anticipato il risultato di alcune di esse dicendomi che dovrebbe venire un grafico a dispersione come il tuo primo allegato...per verificare i comandi avevo provato a fare questa verifica
campione di 200 numeri casuali estratti da una distribuzione X^2 a 2 gradi di libertà
H<-rchisq(200,2) str(H) H[2] cbind(H[-200],H[-1]) plot(H) boxplot(H)
in cui i punti sono dispersi. Lavorandoci mi è risultato il secondo grafico che mi hai allegato. Credevo di aver sbagliato tutto e allo stesso tempo "temevo " con tale risultato (magari dovuto ad una mia lacuna ) di presentarmi dal professore...cosa che dovrò fare martedì.
|
|
|
dallolio_gm
Moderatore
Prov.: Bo!
Città: Barcelona/Bologna
2445 Messaggi |
Inserito il - 27 aprile 2008 : 14:25:39
|
Citazione:
neanche hist(m) mi dice che deve essere numerico.....anche se non capisco come non può non esserlo visto che sto analizzando solo caratteri quantitativi..cioè numeri Torna all'inizio della Pagina
Forse fai prima a spiegare bene come hai organizzato questi dati. Hai due colonne: cosa rappresentano? Cosa hai nella prima colonna? E nella seconda? Puoi copiare un esempio?
Da come ti ha risposto chick, sembra che siano coppie di numeri estratti, che vuoi plottare in modo da vedere quali coppie sono uscite. Io invece avevo capito diversamente, che hai il numero di occorrenze per l'estrazione di ogni numero e vuoi un grafico in cui vuoi mettere sull'asse x i numeri da 1 a 36, e sull'asse y il numero di volte in cui sono estratti. In quest'ultimo caso sarebbe abbastanza normale ottenere un grafico piuttosto lineare, perché hai un numero molto elevato di estrazioni e la probabilità di ogni numero é la stessa.
|
Il mio blog di bioinformatics (inglese): BioinfoBlog Sono un po' lento a rispondere, posso tardare anche qualche giorno... ma abbiate fede! :-) |
|
|
fenix01
Nuovo Arrivato
10 Messaggi |
Inserito il - 27 aprile 2008 : 15:45:06
|
ok...provo a spiegarmi meglio...da economista aspirante matematico/statista probabilmente vi ho fatto confusione ho un vettore colonna di 28814 righe..ad ogni riga corrisponde un numero etratto (tra 0 e 36) da una roulette per un periodo di tre mesi.
il mio scopo(per ora) è fare nanalisi di casualità.... per fare ciò il prof mi ha detto di organizzare in questo modo il vettore ES: estrazione: 12,0,36,7,0,8 0 12 36 0 7 36 0 7 8 0
e questo lo devo plottare (come ho scritto il prof mi aveva detto che doveva venire un grafico a dispersione mentre a me viene un grafico in cui i punti sono perfettaemnte distanziati)
per quanto riguarda quello che avevi capito, ho calcolato le frequenze e le frequenze cumulate per i numeri da 0 a 36 e ho fatto il plot che conferma ciò che mi aspettavo cioè la casualità dell'estrazione |
|
|
chick80
Moderatore
Città: Edinburgh
11491 Messaggi |
Inserito il - 28 aprile 2008 : 02:51:34
|
Allora è come dicevo io!
Questo comando fa esattamente quello che dici tu! Fa un grafico delle estrazioni da 1 a 99 contro quelle da 2 a 100 plot(a[1:99], a[2:100])
Se provi a fare lo stesso grafico con 10, 100, 500, 1000 e 10000 estrazioni vedrai che con poche estrazioni sarà un grafico a dispersione, con molte estrazioni sarà regolare, perchè avrai tutte le possibili coppie di numeri. Quello che puoi voler fare è avere un grafico 3D che mostra il numero di casi in cui ciascun numero sia estratto dopo un altro numero. Ad es. se per x=10 e y=15 hai z=6 vuol dire che 6 volte il 15 è venuto dopo il 10. In teoria, se tutto è casuale dovrebbe venirti un grafico piuttosto piatto. |
Sei un nuovo arrivato? Leggi il regolamento del forum e presentati qui
My photo portfolio (now on G+!) |
|
|
fenix01
Nuovo Arrivato
10 Messaggi |
Inserito il - 28 aprile 2008 : 14:22:03
|
grazie mille!!!! |
|
|
|
Discussione |
|