Analisi della varianza
Devo fare un esercizio di analisi della varianza con il software R ma, ad un certo punto, non riesco più ad andar avanti.
Posto la traccia in allegato

Io procedo in questo modo:
Che errore sto facendo? Come devo procedere ora?
Grazie
Posto la traccia in allegato

Io procedo in questo modo:
#Inserimento valori nell'array peso > peso=c(24.6, 24.2, 22.2, 27.2, 23.2, 24.8, 38.6, 39.5, 33.0, 39.5, 43.1, 45.2) #Si verifica che i valori appartngano ad una distribuzione normale > ks.test(peso, pnorm, mean(peso), sd(peso)) One-sample Kolmogorov-Smirnov test data: peso D = 0.21772, p-value = 0.6201 alternative hypothesis: two-sided Warning message: In ks.test(peso, pnorm, mean(peso), sd(peso)) : ties should not be present for the Kolmogorov-Smirnov test #Il p-value è superiore a 0.05. I dati apaprtengono ad una distribuzione normale > luce=gl(2,2,labels=c("Poca", "Molta")) > gabbia=gl(2,3,12, labels=c("Piccole", "Grande")) > fit=aov(peso~luce+gabbia) Error in model.frame.default(formula = peso ~ luce + gabbia, drop.unused.levels = TRUE) : variable lengths differ (found for 'luce')
Che errore sto facendo? Come devo procedere ora?
Grazie
Risposte
Ho corretto tutto nel seguente modo
Mi direste se secondo voi è corretto?
Grazie
> peso=c(24.6,38.6, 24.2,39.5, 22.2,33.0, 27.2,39.5, 23.2,43.1, 24.8,45.2) ks.test(peso, pnorm, mean(peso), sd(peso)) One-sample Kolmogorov-Smirnov test data: peso D = 0.21772, p-value = 0.6201 alternative hypothesis: two-sided Warning message: In ks.test(peso, pnorm, mean(peso), sd(peso)) : ties should not be present for the Kolmogorov-Smirnov test > luce=gl(2,6, labels=c("Poca", "Molta")) > gabbie=gl(2,3,12, labels=c("Piccole", "Grandi")) > fit=aov(peso~luce+gabbie) > fit Call: aov(formula = peso ~ luce + gabbie) Terms: luce gabbie Residuals Sum of Squares 36.4008 77.5208 704.4475 Deg. of Freedom 1 1 9 Residual standard error: 8.847143 Estimated effects may be unbalanced
Mi direste se secondo voi è corretto?
Grazie
Sulla procedura:
il test di normalità è superfluo (peraltro la numerosità campionaria è talmente bassa che sarebbe comunque imprudente usarlo).
Sui codici:
non so come vi hanno insegnato R, però te la caveresti meglio usando le funzioni rep e anova in tre righe di codice ed in modo meno contorto. A quel punto sta a te interpretare l'output il cui risultato dovrebbe essere banale.
il test di normalità è superfluo (peraltro la numerosità campionaria è talmente bassa che sarebbe comunque imprudente usarlo).
Sui codici:
non so come vi hanno insegnato R, però te la caveresti meglio usando le funzioni rep e anova in tre righe di codice ed in modo meno contorto. A quel punto sta a te interpretare l'output il cui risultato dovrebbe essere banale.
Scusa, non capisco.
La funzione rep replica un determinato dato un certo numero di volte.
Esempio:
Come la dovrei utilizzare nel mio caso?
La funzione rep replica un determinato dato un certo numero di volte.
Esempio:
> rep("a", 5) [1] "a" "a" "a" "a" "a"
Come la dovrei utilizzare nel mio caso?
...ma niente, con rep creavi direttamente le categorie in un'unica stringa, ma va bene anche così, non cambia nulla, l'importante è l'output finale.
Non c'è un modo per vedere se i dati sono stati inseriti correttamente?
"keiichi":
Non c'è un modo per vedere se i dati sono stati inseriti correttamente?
Ho cambiato leggermente i dati inseriti nel seguente modo:
> peso=c(24.6, 24.2, 22.2, 38.6, 39.5, 33.0, 27.2, 23.2, 24.8, 39.5, 43.1, 45.2) > luce=gl(2, 6, labels=c("Poca", "Molta")) > gabbia=gl(2, 3, 12, labels=c("Piccole", "Grande"))
Per vedere se i dati sono inseriti correttamente ho fatto così:
> data.frame(luce, gabbia, peso) luce gabbia peso 1 Poca Piccole 24.6 2 Poca Piccole 24.2 3 Poca Piccole 22.2 4 Poca Grande 38.6 5 Poca Grande 39.5 6 Poca Grande 33.0 7 Molta Piccole 27.2 8 Molta Piccole 23.2 9 Molta Piccole 24.8 10 Molta Grande 39.5 11 Molta Grande 43.1 12 Molta Grande 45.2
Ho anche visualizzato il tutto mediante un boxplot:
> mydata = data.frame(luce, gabbia, peso) > boxplot(peso~luce+gabbia, mydata)
Mi chiedo, tuttavia, se non sia possibile evidenziare i valori nel boxplot stesso