Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 7

ESTADÍSTICA APLICADA

RSTUDIO
Para ejecutar: run

n<- 10
rep(c(4,5,6),5) Poner la c significa vector
rep(c(4,5,6),n)

length (v2) nos permite ver la longitud de un vector.

¿Cómo se generan matrices?


Una matriz es un objeto, por lo tanto, vamos a definirlo como un objeto.
La función que genera matrices es matrix.
Una matriz está compuesta por distintos vectores, por lo tanto, ponemos la c.
Para definir el número de columnas: ),ncol=3)
Número de filas: nrow=5
Quedaría así:
x <- matrix(c(2,3,4,1,5,4,8,7,3,8,6,3,3,5,8),ncol=3,nrow=5)
Para ver la matriz: print (x)

¿Cómo poner nombres a las filas y a las columnas?


colnames(x) <- c("x1","x2","x3") el nombre que tienen actualmente
rownames(x) <- c("A","B","C","D","E") el nombre que quieres poner

Para saber la dimensión de una matriz: dim(x)

Para ver una columna x[,1]


Para ver una fila x[1,]

Fila de la 2 a la 4 de la primera columna X[2:4,1]


¿Cómo trasponer la matriz?
Vamos a llamarla A1 <- t(x) # transponer una matriz
print (A1) para verla

Para multiplicar matrices:


M1 <- x%*%A1

Para seleccionar la diagonal principal:


d1 <- diag (m1)

Para calcular valores y vectores propios de una matriz cuadrada:


sv <- eigen (m1)

sv tiene dos objetos: a) values b) vectors


Si solo quiero coger un objeto tengo que indicarlo de esta forma:
sv$values o sv$vectors

Medias por separado:


m1 <- mean (x[,1])
print(m1)
m2 <- mean (x[,2])
print(m2)
m3 <- mean (x[,3])
print(m3)
print(m1);print(m2);print(m3)

Vector de medias:
m <- matrix(c(m1,m2,m3),ncol=1)

Hace las medias de una matriz por columna, lo pone en vector fila
m2 <- colmeans (x)
class (m2)

La función que permite sumar una variable es sum:


t1 <- sum(x[,1]) #sumar

Varianza de una variable:


s21 <- var(x[,1])
s22 <- var(x[,2])
s23 <- var(x[,3])
print(s21); print(s22);print(s23)

Desviación estándar
s1 <- sd(x[,1])
s2 <- sd(x[,2])
s3 <- sd(x[,3])
print(s1); print(s2); print(s3)

Covarianza función cov()


cv12 <- cov(x[,1],x[,2])
print(cv12)
cv13 <- cov(x[,1],x[,3])
print(cv13)
cv23 <- cov(x[,2],x[,3])
print(cv23)

Matriz de varianzas y covarianzas


S <- cov(x)
print(S)
S <- var(x)
Para hallar la inercia tengo que sumar la diagonal principal de la matriz S
in1 <- sum(diag(S))
print(in1)
Para saber el % de inercia retenida, tenemos que dividir las dos inercias y multiplicarlo
por 100
Correlación cor ()
r12 <- cor(x[,1],x[,2])
print(r12)
r13 <- cor(x[,1],x[,3])
print(r13)
r23 <- cor(x[,2],x[,3])
print(r23)

Matriz de correlaciones
r <- cor(x)
print (r)

Si trabajamos con datos estandarizados la matriz de varianzas y covarianzas es en


realidad la matriz de correlaciones.

Inercia de matriz de correlaciones


in2 <- sum(diag(r))
print(in2)

Combinar columnas y filas: cbind y rbind


Incorporar una fila/columna a una matriz que ya existe

print(x)

x4 <- c(4,8,7,9,4)
x <- cbind(x,x4)
print(x)

f <- c(1,2,3,4)
x <- rbind(x,f)

Borra una columna y filas: poniendo un signo menos delante


x <- x[,-4]
x[,-(1:2)]
x[-2,]
x[-(1:3),]

Para crear una matriz más pequeña:


m5 <- matrix(c(x[,1],x[,3]),ncol = 2)
print(m5)

Data frame: es la base de datos del rstudio


Todos los elementos de la matriz tienen que tener la misma naturaleza
dat <- data.frame(objeto=c("A","B","c","D","E"),x1=c(2,3,4,1,5),x2=c(4,8,7,3,8),
x3=c(6,3,3,5,8))
Para ver el data frame:

Todas las funciones matriciales sirven para el data frame:

Si yo quiero seleccionar una variable


dat$x2

Si yo quiero generar la matriz a partir del data frame


x_1 <- matrix(c(dat$x1,dat$x2,dat$x3),ncol=3)

SI yo quiero saber la varianza de una variable sería:


var(dat$x2)

La estructura de la base de datos


str((ejemplo1))

Función round: redondear los decimales

¿Cómo calcular la matriz centrada? Matriz centrada: cc


Scale(x,center=T, scale=F)

Componentes principales= proyección de la matriz centrada sobre el vector propio


asociado a los valores propios
Donde x <- matrix(c(2,3,4,……)
1º Calcular la matriz de varianzas y covarianzas de x: sx <- cov(x)
La inercia: sum(diag(sx))
2º Calcular los valores y vectores propios de la matriz de varianzas y covarianzas
Svd <- eigen(sx) #valores y vectores propios de sx

¿Y si yo solo quiero quedarme con la primera componente?


Y1 <- cc%*%svd$vectors[,1]
La segunda:
Y2 <- cc%*%svd$vectors[,3]

Para proyectar solo necesitamos vectores.


El valor propio es la varianza de cada componente

Comunalidad: % de varianza de la variable x1 que viene explicada por los factores


comunes. De cada una de las variables por separado.
y especificidad: lo que no expliquen los factores comunes vendrá dado por esto.
La comunalidad es concepto de análisis factorial.
En componentes principales nosotros explicábamos la varianza conjunta de todas las
variables que nos explicaran un % de la inercia de la nube de puntos.

Matriz de correlaciones reproducida: es la matriz real observada- matriz reproducida.

Lo primero que tedndriamos que hacer es ver la estructura de ña base de datos con la
función:
Str(coches_1)
(63 casos x 14 variables)
O la función summary para saber si tebnemos valores perdidos que lo sabremos conn
la función NA’s
Preparamos la base de datos eliminando los casos perdidos con la función na.omit
Es recomendable crear la matriz solo con datos cuantitativos: x <-coches_1[,3:13]
x <-as.matrix(x)

Lo primero que hay que hacer al realizar un analisis factorial es adxecuación muestral
de los datos. Vamos a buscar que nuestros datos tengan elevadas correlaciones.

1. Calculamos la matriz de correlaciones:


r <- cor(x)
round(print(r),3)
2. Calcular el determinante
Det(r)
Si tiene correlaciones elvadas el determinante será proximo a 0
Install.packages(“corrplot”)
Library(“corrplot”)
Va bien para verlo de forma visual aunque tampoco hace falta.

Estadistico KMO: va entre 0 y 1 cuanto mas cercano a 1 mejor, lo que nos dice que los
datos son buenos para poder realizar un factorial
KMO(r)
#Prueba de esfericidad de Barrlet
Cosrtest.bartlett(r, n=row(x))
Si es cercano a 0 nos indica que la Matriz de correlaciones no es la matriz de identidad

El siguiente paso es la determinación del número de factores a través del gráfico de


sedimentación.

install.packades(“nFactors”)
library(“nFactors”)

install.packages(“paran”)
library(“paran”)

Este análisis paralelo es útil:


fa.parallel(r,fm=“pa”….. (power pagina 26)
Trabaja con unos datos simulados, comparando el Fa actual con el Fa simulado,
Habitualmente se dice que vamos a retener tantos valores como los que estén por
encima de los simulados.

#estimación mediante ejes principales


Fa1 <- fa(x,nfactors = 3, fm=“pa”, rotate=“varimax”, scores=“regression”)
3 son los factores que he escogido.

La u2 es la especificidad de cada una de las variables


Ss loadings: es la desviación estándar
Residual: matriz de residuos
Loadings: cargas factoriales o saturaciones

Los números que salen el esquema del Factor analysis son las correlaciones que hay
para poder hacer interpretación de los factores.
- Una vez ya tenemos los factores creados podemos añadir los factores a la base
de datos:
Coches_1 <- data.frame(coches_1,fac1=c(fa1$scores——-
- Ahora podemos crear un modelo de regresión con los 3 factores
Modelo <- lm(coches_1$peuros-coches_1…..
- Añadimos el ajuste a la base de datos
- Y ordenamos de mayor a menor de forma descendente
Coches_1 <- coches_1(order(-coches_1$ind_1),]

Cambiamos a la base de datos de los móviles:

#Moviles: ranking móviles de mejor a peor


Lo primero seria ver la estructura de datos que tenemos
Str(moviles)
Summary(moviles)
La variable marca es un character y vamos a hacerla facotr para eso:
Moviles$MARCA <- as.factor(Moviles$Marca)
Si lo dejaramos cono character no agruparia nada.
Vamos a generar una matriz de datos cuantitativos:
x <-Moviles[,3:13]
x <-as.matrix(x)
Para elminar la variable precio:
x <- x[,-7]
Si hay pocas correlaciones el KMO será poco (mediocre)
Para saber con cuantos factores nos quedamos nos tenemos que fijar en el fa.parallel

Vamos a estimar este modelo con la funcion principal:


Pag 15: fac1 <- principal(x,nfactors=2,rotate”none”,scores=2)
Obtiene los factores y el método que utiliza es el método de componentes principales.
Si hubiéramos utilizado la función fa tambien pondríamos en rotacion”none”
Estas dos forma son muy parecidas.
Print(fac1,sort=T)
#Diagrama
Diagram(fac1, e.size=0,1)

Si cambiamos y ponemos rotación varimax, cambia la interpretación de los factores.


Al ver el grafico vemos que hay que rotar por las caracteristicas no se separan de una
forma logica. Ahora estamos entre escoger 2 factores y rotado o 3 factores y rotado.
Nos fijamos en cumulative var para ver el porcentaje que añadimos por cada factor.
Todo esto utilizando la función principal. Estaría bien tanto escoger 2 como 3.
Al final decidimos quedarnos con 2 factores y vamos a crear un indice de la siguiente
manera.
Ponemos names(fac1) y nos fiijamos en los scores que es lo que nos interesa
Ind <- 0,25*fac1$scorres[,1]+0,75*fac1$scores[,2]
El 0,25 y el 0,75 me los invento yo en función de la importancia que ke doy
Aunque sería más convniente hacverlo con el ss loadings sumandolos y sacando el %.
Ind <-(3,69*fac1$scores[,1]+2,5*fac1$scores[,2]/3,69+2,5)

Moviles <-data.frame(Moviles,ind)

Ordenamos los moviles de forma ascendente

Para leer un fichero en excel: Import data set, buscamos el fichero lo abro y ya está, lo
importante es wir rm data preview puedo cambiar la naturaleza de la variable, si es
númerica, character…
Marcamos la casilla de first row as names.
El rango si la base de datos empieza en la A1 no hay problema pero sino tendríamos
que indicar el rango específico.

También podría gustarte