Nothing
# Ricerca Sociale con R
# Agnese Vardanega - avardanega@unite.it
# CAPITOLO 3
# le righe precedute dal commento "RCMDR: ..." sono prodotte da menu di Rcmdr
# e non sono eseguibili se non e' caricato Rcmdr
# INIZIO SESSIONE ---------------------------------------------------------
# avviare RCommander
library(Rcmdr)
# libreria del laboratorio
library(LabRS)
# Da Menu di RCommander o da R: Impostare la directory di lavoro
# setwd("C:/.../Laboratorio R")
# Caricare l'area di lavoro precedentemente caricata
# load(".RData")
# DISTRIBUZIONI DI FREQUENZA ----------------------------------------------
# dati
data("MYSLID")
# RCMDR distribuzioni di frequenza
local({
.Table <- with(MYSLID, table(Lingua))
cat("\ncounts:\n")
print(.Table)
cat("\npercentages:\n")
print(round(100*.Table/sum(.Table), 2))
})
# table - una variabile
table(MYSLID$Lingua)
tab1 <- table(MYSLID$Lingua)
tab1
attributes(tab1)
# valori mancanti
table(MYSLID$Genere, useNA = "always")
table(MYSLID$Genere, useNA = "ifany")
table(MYSLID$Lingua, useNA = "ifany")
sum(is.na(MYSLID$Lingua))
# funzione personalizzata
nmiss(MYSLID$Lingua)
nval(MYSLID$Lingua)
# marginali - una variabile
sum(tab1)
margin.table(tab1)
addmargins(tab1)
# prop.table - una variabile
tab1 / sum(tab1) # tab1 / totale
prop.table(tab1)
# frequenze percentuali
prop.table(tab1)*100
# arrotondamenti
round(prop.table(tab1)*100, digits = 2) # due decimali
round(prop.table(tab1)*100, 1) # un decimale
# funzione percent
percent(tab1)
percent(tab1, digits = 1)
# frequenze cumulate
tab2 <- table(MYSLID$Eta.classi)
cumsum(tab2)
cumsum(percent(tab2, 2))
# frequenze retrocumulate
cumsum(rev(tab2))
cumsum(percent(rev(tab2), 2))
# tabella di frequenza completa
# funzione tabfreq
tabfreq(MYSLID$Lingua)
tabfreq(MYSLID$Genere, digits = 1, totali = FALSE)
# funzione frequenze
frequenze(MYSLID, write = FALSE)
frequenze(MYSLID, file = "res/frequenze.csv")
# GRAFICI -----------------------------------------------------------------
# RCMDR grafici a barre
with(MYSLID, Barplot(Eta.classi, xlab="Eta.classi", ylab="Frequency",
main="Classi di Eta"))
# RCMDR grafico a torta
library(colorspace, pos=16)
with(MYSLID, pie(table(Lingua), labels=levels(Lingua), xlab="", ylab="",
main="Lingua parlata", col=rainbow_hcl(3)))
# RCMDR istogramma
with(MYSLID, Hist(Retribuzione, scale="frequency", breaks="Sturges",
col="darkgray", main="Retribuzione"))
# PERSONALIZZARE I COLORI
# palette di colori in RCommander
palette(rainbow(8))
palette("default")
with(MYSLID, pie(table(Lingua), labels=levels(Lingua),
xlab="", ylab="",
main="Lingua parlata",
col=c(3,6,8))) # colore
# VALORI CARATTERISTICI ---------------------------------------------------
# RCMDR statistiche riassuntive
numSummary(MYSLID[,"Istruzione"], statistics=c("mean", "sd",
"IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))
# TENDENZA CENTRALE -------------------------------------------------------
# moda
table(MYSLID$Lingua)
# mediana
median(MYSLID$Eta)
median(MYSLID$Retribuzione)
median(MYSLID$Retribuzione, na.rm = TRUE)
cumsum(percent(tab2, 2))
# o
cumsum(percent(table(MYSLID$Eta.classi), 2))
median(MYSLID$Eta.classi, na.rm = T)
median(unclass(MYSLID$Eta.classi), na.rm = T)
median(unclass(MYSLID$Lingua), na.rm = T)
# funzione personalizzata med
med(MYSLID$Retribuzione) # vettore con casi mancanti
med(MYSLID$Eta.classi) # fattore ordinato
med(MYSLID$Lingua) # fattore non ordinato
# media aritmetica
mean(MYSLID$Eta, na.rm=TRUE)
mean(MYSLID$Istruzione, na.rm = T)
sum(MYSLID$Istruzione, na.rm = T) / nval(MYSLID$Istruzione)
# scarti dalla media
scarti <- MYSLID$Eta - mean(MYSLID$Eta)
round(sum(scarti))
# VARIAZIONE --------------------------------------------------------------
# campo di variazione
range(MYSLID$Retribuzione, na.rm = T)
min(MYSLID$Retribuzione, na.rm = T)
max(MYSLID$Retribuzione, na.rm = T)
# quartili
quantile(MYSLID$Eta, na.rm = T)
quantile(MYSLID$Eta, na.rm = T, probs = c(0.25, 0.5, 0.75))
# decili
quantile(MYSLID$Eta, na.rm = T, probs = seq(0, 1, 0.10))
# quartili per fattori ordinati
quantile(unclass(MYSLID$Eta.classi), na.rm = T)
# differenza interquartile
IQR(MYSLID$Eta, na.rm=TRUE)
# devianza
sum(scarti) # scarti
sum((scarti)^2) # devianza
# varianza
mean(scarti^2)
var(MYSLID$Eta, na.rm=TRUE)
# funzione devianza()
var(MYSLID$Eta, na.rm=TRUE) * (nval(MYSLID$Eta) - 1)
devianza(MYSLID$Eta)
# deviazione standard
sd(MYSLID$Eta, na.rm=TRUE)
sqrt(var(MYSLID$Eta, na.rm=TRUE))
# coefficiente di variazione (calcolo)
# media
media <- mean(MYSLID$Retribuzione, na.rm = T)
# deviazione standard non corretta
SX <- sqrt(mean((MYSLID$Retribuzione - media)^2, na.rm = T))
# coeff. var.
SX / abs(media)
rm(media, SX) # elimino gli oggetti
# FREQUENZE IN CLASSI PER VARIABILI CONTINUE ------------------------------
# RCMDR (da statistiche riassuntive)
binnedCounts(MYSLID[,"Eta", drop=FALSE])
# SUMMARY -----------------------------------------------------------------
summary(MYSLID$Genere)
summary(MYSLID$Retribuzione)
summary(MYSLID)
# DISTRIBUZIONE NORMALE ---------------------------------------------------
# frequenza relativa di un singolo valore
prop.table(table(MYSLID$Genere))
sum(MYSLID$Eta == 27)/nval(MYSLID$Eta)
# valori Z
mean(scale(MYSLID$Eta))
sd(scale(MYSLID$Eta))
# errore standard della media
sd(MYSLID$Eta, na.rm = T) / sqrt(nval(MYSLID$Eta))
## intervalli di confidenza
# quantili e probabilita'
0.05 / 2 # area di errore / 2 (code)
qnorm(0.025) # quantile
# ERRORE STANDARD DELLA MEDIA
# calcolare l'errore standard
SE <- sd(MYSLID$Eta, na.rm = T) / sqrt(nval(MYSLID$Eta))
# sottrarre SE * 1.96 dalla media
mean(MYSLID$Eta, na.rm = T) - (SE * 1.96) # limite inferiore
[1] 43.58028
# sommare SE * 1.96 alla media
mean(MYSLID$Eta, na.rm = T) + (SE * 1.96) # limite superiore
[1] 44.38524
# rimuovo SE
rm (SE)
# funzione personalizzata esm()
esm(MYSLID$Eta, digits = 3)
esm(MYSLID$Eta)["ES"]
qnorm(0.01 / 2) # trovare il quartile
esm(MYSLID$Eta, q = 2.58, digits = 3)
esm(MYSLID$Eta, qnorm(0.01/2), digits = 3)
# DISTRIBUZIONE T ---------------------------------------------------------
qt(0.05 / 2, df = 7424)
qt(0.05 / 2, df = 749)
qt(0.05 / 2, df = 74)
qt(0.05 / 2, df = 24)
# FORMA DELLA DISTRIBUZIONE -----------------------------------------------
# Istogramma di densita'
# Rcmdr
with(MYSLID, Hist(Eta, scale="density", breaks="Sturges",
col="darkgray",
xlab="", ylab="Densita", main="Eta"))
# curva normale
curve(dnorm(x, mean = mean(MYSLID$Eta),
sd = sd(MYSLID$Eta)),
add = T)
# Rcmdr
with(MYSLID, Hist(Retribuzione, scale="density", breaks="Sturges",
col="darkgray",
xlab="", ylab="Densita", main="Retribuzione"))
# curva normale
curve(dnorm(x, mean = mean(MYSLID$Retribuzione, na.rm = TRUE),
sd = sd(MYSLID$Retribuzione, na.rm = TRUE)),
add = T)
# grafico di densita'
# Rcmdr
densityPlot( ~ Eta, method="kernel", data=MYSLID,
bw="SJ", adjust=1, kernel="gaussian", xlab="Eta",
ylab="Densita")
# curva normale
curve(dnorm(x, mean = mean(MYSLID$Eta),
sd = sd(MYSLID$Eta)),
lty = 2, # linea diversa
add = T)
# Grafico a scatola e baffi
#Rcmdr
Boxplot( ~ Retribuzione, data=MYSLID, id.method="identify",
main="Retribuzione")
# variabili standardizzate
boxplot(scale(MYSLID[2:4]))
# Grafico quantili-quantili
# Rcmdr
with(MYSLID, qqPlot(Retribuzione, dist="norm",
id=list(method="y", n=2,
labels=rownames(MYSLID))))
# Rcmdr
with(MYSLID, qqPlot(Eta, dist="norm",
id=list(method="y", n=2,
labels=rownames(MYSLID))))
# ASIMMETRIA --------------------------------------------------------------
# coefficiente di asimmetria
mm <- mean(MYSLID$Retribuzione, na.rm = T) -
median(MYSLID$Retribuzione, na.rm = T) # media - mediana
(3 * mm) / sd(MYSLID$Retribuzione, na.rm = T) # coefficiente
rm(mm)
# skewness
mean(scarti^3)/sqrt((mean(scarti^2))^3)
# oppure
mean(scarti^3)/(mean(scarti^2))^(3/2)
skewness(MYSLID$Eta, type = 1)
skewness(MYSLID$Eta, type = 2) # RCommander, SAS, SPSS
skewness(MYSLID$Eta, type = 3) # default
# kurtosis
(mean(scarti^4)/(mean(scarti^2))^(2)) - 3
kurtosis(MYSLID$Eta, type = 1)
kurtosis(MYSLID$Eta, type = 2) # RCommander, SAS, SPSS
kurtosis(MYSLID$Eta, type = 3) # default
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.