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