0% encontró este documento útil (0 votos)
4 vistas9 páginas

Fórmulas de Frecuencia y Variancia en R

Cargado por

paumartinsecre
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas9 páginas

Fórmulas de Frecuencia y Variancia en R

Cargado por

paumartinsecre
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Fidel Martinez Moeys

FÓRMULAS PARA TRABAJAR CON EL


PROGRAMA RSTUDIO
Hola chavales, he creado este documento compartido para que todos podamos ver
y tener más a mano fórmulas()/*pequeños apuntes* con que poder trabajar con el
Rstudio.
Os explico; la idea es que todos podamos editar el documento, tal que si hay alguna
fórmula por rellenar o no está, y la sabemos, ponerla en este documento para que el
resto de los compañeros puedan también poner/recibir de su parte. Únicamente pido
que se dejen las fórmulas claras(por ej. poner “MEAN” y debajo mean(TAMBIEN LO
DE DENTRO DEL PARENTESIS)), asi nos ahorramos malentendidos y pérdidas de
tiempo…
La unión hace la fuerza chavales

Mitjana-tendència central
>mean(elemento$Elemento)
Rang*maxim menos minim*-unitat de dispersió
> range(elemento$elemento)
Variància-unitat de dispersió
>var(elemento$Elemento)
Desviación estàndard-unitat de dispersió
>sd(elemento$Elemento)
*El coeficient de variació és el quocient entre la desviació estàndard i la
mitjana*
>sqrt(emm(nombre tabla,order=2) - mean(nombre tabla)^2) *Dades
agrupades*
Coeficiente de variación(com a percentatge)
>sd(elemento$ columna, [Link]=TRUE)/
mean(elemento$ columna, [Link]=TRUE)*100
Cinco números*min,Q1(o percentil 25è),M,Q3(o percentil 75è), max*
> fivenum(elemento$Elemento) *5 números de columna concreta*
>summary(elemento$Elemento) * = *
>quantile()
>summary(nombre de la tabla)*5 números de todas las columnas de la
tabla*
Histograma-visualització de dades
Fidel Martinez Moeys

>hist(elemento$Elemento)
Tabla de frecuencias
Tabla de frecuencias
> print(fdt(elemento$Elemento,5)) *el 5 es el número de intervalos
CREO*
>frequency_table
Diagrama de cajas-visualització de dades
(para uno normal)
>boxplot(quantile(nombre tabla),range=0)
(para comparar 2)
>par(mfrow=c(1,2))
> boxplot(nombre de la tabla$`nombre de la columna`)
>par(mfrow=c(2,2))
> boxplot(nombre de la tabla$`nombre de la columna`)
Tallos y hojas-visualització de dades
>stem(elemento$Elemento)
Diagrama de punts-visualització de dades
>plot(elemento)

per a l’anàlisi de dades agrupades→ paquet “actuar”


>[Link]("actuar")
>library("actuar")

Crear objecte de dades agrupades(amb nom “x”)


>x <- [Link](Group=cj, Frequency=nj)
Resums numèrics per a variables numèriques
describe(data)
Transformació lineal
--y = (x - a)/b
*y=nova variable// x=variable que transformam// a=canvi d’origen(ej
50€)// b=canvi d’escala(ej 1€=0’89libras, b=1’12)*
--convertir i anomenar una nova variable
>lliures <- (viatge$euros - 50)/1.12
--canvi de nom d’una variable
>nom_nou <- [Link](nom vell)
--arrodonir una variable a 2 decimals
>nombre_tabla$nombre_columna <- round(nombre_columna,2)
Fidel Martinez Moeys

Canvi de forma d’una distribució


>log_columna <- log(nombre_tabla$columna)
Kurtosis/Curtosis
>[Link]("moments")
>library(moments)
>kurtosis(xxxxxx) xxxxxx és el nom de la teva variable
Coeficiente de asimetria
>[Link](“moments”)
>library(moments)
>skewness(nombre de la tabla$nombre columna)
NORMALIDAD Y DISTRIBUCIÓN NORMAL
Representar una corba de distribució normal sobre hist:
> m <- mean(nombre tabla)
>s <-sd(punts)
>hist(punts,prob=TRUE)
>curve(dnorm(x,mean=m,sd=s),add=TRUE)
kurtosis, coeficient d’assimetria,etc
>describe(nombre tabla)
frecuencia entre 2 puntos(a y b)
sum(nombre tabla > a & nombre_tabla < b) / length(punts)
frecuencia relativa en puntos por debajo de A
>sum(nombre_tabla < A) / length(punts)
porcentaje de casos que caen a la derecha de z=A
>pnorm(A,[Link]= FALSE) *dreta seria =True*
adivinar el valor asociado a un porcentaje X de la frecuencia relativa a
la izquierda con una media igual a A y una desviación iguala B
>qnorm(0,X,mean=A,sd=B,[Link]=TRUE)

RELACIÓN ENTRE DOS VARIABLES NUMÉRICAS(DIAGRAMA DE


DISPERSIÓN)
>library(ggplot2) >library(plotluck)
representar un diagrama de dispersión
(despues de haber separado los datos de una tabla en dos variables)
>plot(nombre variableY~nombre variableX)
coeficiente de correlación- r(o correlación lineal) entre variables X-Y
Fidel Martinez Moeys

>cor(nombre variableX,nombre variableY)


constante y pendiente de la linea de regresión de minimos cuadrados
>lm(nombreY~nombreX) *pendiente es el valor que te da a la derecha*
>(le damos un nombre) <- lm(nombreY~nombreX)
dibujar la linea de resión de minimos cuadrados
*primero volvemos a representar el diagrama con plot(nombreX~nombreY)*
>abline(nombre que le hemos dado a lm(y~x))
calcular el valor predicho
> constante + pendiente*X
>predict(fit,[Link](nombre_variableX=X))
ver todos los resultados de la linea de regresión
>summary(nombre_que_le_dimos_a_lm(Y~X))
coeficient de determinació(R)
>r al cuadrado
cálculo de los residuos
>resid((nombre que le hemos dado a lm(y~x))
*los guardamos en una nueva variable*
>nuevo nombre <- resid((nombre que le hemos dado a lm(y~x))
representar diagrama de residuos
*ponemos un título “diagrama de residuos” i un nombre al eje Y
“residuos”
>plot(resid((nombre que le hemos dado a lm(y~x))~nombre_eje_X,
ylab="Residus", main="Diagrama de residus")
*despues representamos una linea en el y=0 para dividir residuos)*
>abline(0,0)
para poder reconocer los valores atipicos
>identify(nombreY~nombreX)
*clicamos sobre los valores que nos parzcan atípicos en el grafico y
despues dos veces la tecla “esc”*
*para poder ver el numero de caso de cada valor*
>text(Y~X, labels=rownames(npmbre_tabla))
*para eliminar los valores atipicos sabiendo sus numeros de caso*
>nombre_tabla[-c(2,18),]
*despues los metemos en una nueva variable*
>nombre nuevo <- nombre_tabla[-c(2,18),]
resultados de la regresión de minimos cuadrados sin valores atipicos
>lm(Y~X, data=nombre_nuevo)
Fidel Martinez Moeys

possible relació no lineal


>library(plotluck)
representació
>plotluck(nombre_tabla,nombre_variable_Y~nombre_variable_X)
manera mes senzilla de treballar amb no-lineals es aplicar el log-
log(transformam les dades de les variables X e Y en els seus logaritmes
i les gordam com a noves variables)
>nuevo nombre <- log(variable)
*despues las volvemos a representar y hacemos su linea de regresión*

VALORS ABSENTS
Per poder veure on estan ubicats els NA a les nostres dades
>[Link](nombre tabla) *aparecerán como TRUE
también >nombre tabla == NA
Para saber cuantos NA tenemos *teniendo en cuenta que el R cuenta
los TRUE=1 y los FALSE=0
sum(nombre tabla)

SUBCONJUNTS ALS VECTORS


*Per a poder veure diferents grups de dades a una mateixa taula(deu
primers nums, només positius, etc…) veim els subconjunts*
10 primers numeros d’una taula anomenada X
>X[1:10]
Vector de tots els NA
>X[[Link](X)]
*! = negació d’una expressió lògica*
Vector dels valors que no siguin NA
>X[![Link](X)]
Tots els valors positius d’un vector
>X[X > 0]
Vector amb tots els nums menos el 2n i el 10è valor
>x[c(-2, -10)]

DUES VARIABLES CATEGÒRIQUES


Taula de contingència
>table(nombre_tabla)
Diagrama de barres de la relació de les categòriques
Fidel Martinez Moeys

>barplot( tabla_de_contingencia, legend=TRUE)


Freqüències relatives de la distribució conjunta
>[Link](tabla_de_contingencia)
Distribució marginal de la variable fila
>[Link](tabla_de_contingencia, ¿1?)
Distribució marginal de la variable columna
>[Link](tabla_de_contingencia, ¿2?)
Distribucions condicionals (variable fila com a condició)
>[Link](tabla_de_contingencia, 1)
Nou nom de les freqüències al llarg de les files
>freq <- c(frecuencias a lo largo de las filas)
Ara creem una taula a partir de les freqüències que hem desat a l'ordre
anterior, mitjançant la funció matrix(). Li hem de dir que hi ha tres
columnes (ncol=3), i que les dades les hem entrades per files
(byrow=TRUE), a més li hem de dir que el tipus és «table».
>[Link](matrix(freq, ncol=3, byrow=TRUE))
*lo llamamos XX*
>XX <- [Link](matrix(freq, ncol=3, byrow=TRUE))
Poner nombre a las columnas(que hay 3)
>colnames(XX) <- c("Nombre1","Nombre2","Nombre3")
Poner nombre a las filas(que hay 3)
>rownames(XX) <- c("Nombre1","Nombre2","Nombre3")

ANALISI D’UNA VARIABLE NUMÈRICA i UNA CATEGÒRICA


1r.>library(psych) 2.>library(lattice) >library(gplots)

1r. Resums numèrics de la variable numèrica per a cada categoria de la


variable categòrica. Si es veuen diferents vol dir que la categòrica
influeix sobre la numèrica.
>describeBy(nombre_tabla$variable_numèrica,
nombre_tabla$variable_categórica)
Representat amb diagrames de caixes per comparar mes facilment
>boxplot(variable_num~variable_categ,data=nombre_tabla,
xlab="variable_categ", ylab="variable_num")
Fidel Martinez Moeys

2n. Representat amb un conjunt d’histogrames


histogram(~variable_num|factor(variable_cat), data=nombre_tabla,
xlab="Variable_num")
3r. Comparar les mitjanes de les diferentes categories. Si son diferents
la categoria influeix sobre la variable numèrica.
>plotmeans(var_num~var_categ, data=nombre_tabla)

ANÀLISI DE 2 VARIABLES NUMÈRIQUES i 1 CATEGÒRICA


>library(ggplot2) >library(nlme) >library([Link])
1r feim un diagrama de dispersió normal entre les dues numèriques
2n convé dibuixar el diagrama de dispersió distingint els punts d'acord
amb la variable categòrica(donant punts i colors diferents)
>ggplot(nombre_tabla,aes(y = variable_y, x =
variable_x,colour=variable_categor,shape=variable_categor)) +
geom_point()
3r Si ademes volem posar linies de regressió per a cada categoria:
>ggplot(salexp,aes(y = variable_y, x =
variable_x,colour=variable_categ,shape=variable_categ)) +
geom_point() + geom_smooth(method="lm", fill = NA)
*per a obtenir els coeficients de correlació de cada categoria*
>library([Link])
1r hem de convertir el marc de dades en un objecte [Link]
dt <- [Link](nombre_tabla)
2n per obtenir la correlació per plantes
>dt[,list(Correlació = cor(variable_y,variable_x)),by=variable_categ]
*per obtenir els coeficients de regressió lineal de cada categ*
>library(nlme)
>lmList(variable_y~variable_x|variable_categ, data=nombre_tabla)

MATRIUS I MARC DE DADES


convertir un vector en una matriu
>dim(nombre objeto) <- c(Nfilas, Ncolumnas)
dimensions d’un objecte
>dim(nombre_objeto) *num izquierda filas, num derecha columnas*
crear directamente una matriu
>matrix(data = nums_en_la_matriz, nrow = Nfilas, ncol = Ncolumnas,
byrow = FALSE, dimnames = NULL)
Fidel Martinez Moeys

Dar nombres a cada fila e incluirlas


>Nombres filas<- c(nombre, nombre, nombre, nombre)
>[Link](Nombres, matriz)
Dar nombres a cada columna e incluirlas
>Nombres columnas <- c(nombre, nombre, nombre, nombre)
>colnames(nombre_objeto) <- Nombres columnas
SERIES TEMPORALES
Perquè el R pugui aplicar les funcionalitats de sèries temporals, s'ha de
crear un objecte "sèrie temporal" a partir de les dades del marc de
dades. Per això s'ha d'utilitzar la funció ts(). Aquesta funció té tres
arguments. El primer és una sèrie temporal, en el nostre cas és la sèrie
«gelats$vendes». El segon l'indica al R on comença la sèrie, en el
nostre cas hem d'entrar «start = c(2012,1)» per indicar-li al R que la
sèrie comença al primer trimestre de 2012. Per últim li hem de dir la
freqüència de la nostra sèrie temporal, en el nostre cas és igual a 4
perquè hi ha 4 trimestres a dins d'un any. Aquest últim argument s'ha
d'entrar pel nostre cas com «frequency=4». Creeu ara l'objecte sèrie
temporal amb la funció ts() i aquests tres arguments, i assigneu el
resultat a «[Link]».
> [Link] <- ts(gelats$vendes, start = c(2012,1), frequency = 4)
Com saber si es una serie additiva o multiplicativa? representem
>[Link](serie temporal guardada)
*additiu si els components estacionals tenen la mateixa grandària*
Descomposició de la sèrie en els seus components usant model
additiu/multiplicatiu
>[Link] <- decompose(serie_temporal, type =
"additive/multiplicative")
Mirar la tendència de la serie temporal
>[Link]$trend
Gràfica de la sèrie amb la tendència superposada
>[Link](serie_temporal,[Link]$trend)
Ficarli colors, noms i mariconades
>autoplot(serie_temp,series="nombre") +autolayer([Link]$trend,
series= "nombre tendencia")+labs(x="periodos", y="vendas")
+ggtitle("título del gráfico")
Valor estacional
>[Link]$seasonal
Fidel Martinez Moeys

Valor estacional dels 4 trimestres(per ex)


>[Link]$figure
Valors del component irregular
>[Link]$random
Representar la serie original i les 3 series de descomposició
>plot([Link])
Per a obtenir una tendència lineal
>tslm([Link]~trend)
Representar tendència lineal junt amb la sèrie temporal
>[Link]([Link],fitted(lintrend))
Predir el valor de la tendència en un moment més avançat
>predict(tendència_lineal,[Link](trend=N)) *N=Nombre de períodes
que hi ha desde que inicia la serie temporal*
Predir el valor tenint en compte l’estacionalitat
>predict(tendència_lineal,[Link](trend=N)) + [Link]$figure[3] *3
es si per exemple esta al primer trimestre de l’any*
Miramos con una serie multiplicativa
>series2.d <- decompose(series2,type="multiplicative")
Predir el valor tenint en compte l’estacionalitat
>predict(fit2,[Link](trend=23))*series2.d$figure[3]

También podría gustarte