Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Samuel Pérez Q.
Introducción
El software estadístico R es un conjunto de
programas integrados para manejo de
datos, simulaciones, cálculos y realización
de gráficos. Es además un lenguaje de
programación orientado a objetos con una
implementación libre, independiente, con
código abierto.
2
Pantalla inicial
6
Dar nombres a arrays
> x=1:4 # x toma valores: 1,2,3 y 4
> nros = c(“uno”, “dos”, “tres”, “cuatro”)
> names(x)=nros # asignamos etiquetas
>x # imprimirá
uno dos tres cuatro
1 2 3 4
7
Tabla de datos
> x1=c(4,6,2,3)
> x2=c(4,6,2,3)
> y=c(5,2,3,5)
Para presentar como tabla:
> tablaxy=data.frame(x1,y)
> tablaxy
Mostrará:
x1 y
1 45
2 62
3 23 8
4 35
Guardar los Datos
Si el archivo tiene como encabezado nombre de
variables
> write.table(datos, “archivo.ext”)
> Datos1=read.table(“nombreArchivo”, sep=“;”, head=TRUE)
> Datos1 # mostrará toda la data
> Datos1$salario # mostrará variable “salario” de la data
> save.image("E:\\DatosR") # guardar imagen
Acceder directamente a variables
> attach(Datos1)
> salario # mostrará variable “salario” de la data
9
Leer Archivos “txt”
Si el archivo tiene como encabezado nombre de
variables
> Datos1=read.table(“nombreArchivo”, sep=“;”, head=TRUE)
> Datos1 # mostrará toda la data
> Datos1$salario # mostrará variable “salario” de la data
10
Leer Archivos del Excel
El archivo es ‘DatosExcel.xlsx’ (tiene encabezado)
> library(RODBC) # cargar la librería para importar
> setwd(“d:/”) # cambia directorio a la raíz de unidad d:
> connexion<- odbcConnectExcel("DatosExcel.xlsx")
> datos2<-sqlQuery(channel=connexion, "select*from[Hoja1$]")
> datos2 # mostrará todos los datos
> datos2$X # mostrará los datos de la variable X
11
Leer Archivos del SPSS
El archivo es ‘DatosSPSS.sav’
> library(foreign) # cargar la librería para importar
> setwd(“d:/”) # cambia directorio a la raíz de unidad d:
> datos2<- read.spss("DatosSPSS.sav", use.value.labels=TRUE, to.data.frame=TRUE)
> datos2 # mostrará todos los datos
> datos2$X # mostrará los datos de la variable X
12
Listado de variables/objetos
> ls()
> ls(pat=“b”) # da variables que tienen ‘b’
> objects()
14
Operadores lógicos
operador símbolo
Igualdad ==
Diferente !=
Negación !
Menor <
Mayor >
Menor igual <=
Mayor igual >=
Conjunción(intersección) &
Disyunción (unión) |
15
Estadística
16
Estadística descriptiva
17
Funciones Matemáticas
18
Funciones Estadisticas
19
Manejo de datos
20
Gráficos
21
Instalación/carga de datos
23
Regresión
> reg1$fitted # mostrará valores estimados o fitted(reg1)
> reg1$resid # mostrará los errores o resid(reg1)
> reg1$coef # mostrará los coeficientes, o coef(reg1)
> summary(reg) # mostrará parámetros y t’s
> anova(reg) # mostrará su ANVA
> plot(x,y, type=“l”, main=“titulo”,sub=“subtitulo”,xlab=“..”)
> abline(lm(y~x)) # dibuja una línea dentro de un ploteo
> reg$coef[[2]] # mostrará el valor de ‘b’
24
Regresión sin intercepto
> x=c(4,6,2,3)
> y=c(5,2,3,5)
Para presentar como tabla:
> tablaxy=data.frame(x,y)
> reg1=lm(y~0+x, data=tablaxy)
> reg1
> plot(x,y)
> abline(reg1) # añade la línea en el ploteo
Mostrará:
25
Regresión Múltiple
> x1=c(4,6,2,3)
> x2=c(2,5,1,3)
> y=c(5,2,3,5)
Para presentar como tabla:
> tabla=data.frame(x1,x2,y)
> reg1=lm(y~x., data=tabla) # equivale a: y~x1+x2
> reg1
Mostrará:
26
Regresión curvilinea
- Logarítmica. Y = b0 + (b1 * ln(t)).
- Inversa. Y = b0 + (b1 / t).
- Cuadrático. Y = b0 + (b1 * t) + (b2 * t**2).
- Cúbico. Y = b0 + (b1 * t) + (b2 * t**2) + (b3 * t**3).
- Potencia. Y = b0 * (t**b1) ó ln(Y) = ln(b0) + (b1 * ln(t)).
- Compuesto. Y = b0 * (b1**t) ó ln(Y) = ln(b0) + (ln(b1) * t).
- Curva-S. Y = e**(b0 + (b1/t)) ó ln(Y) = b0 + (b1/t).
- Crecimiento. Y = e**(b0 + (b1 * t)) ó ln(Y) = b0 + (b1 * t).
- Exponencial. Y = b0 * (e**(b1 * t)) ó ln(Y) = ln(b0) + (b1 * t).
27
Regresión curvilinea
• #Ajuste cuadrático o polinómica de orden 2
reg<-lm(Y~X+I(X^2),data=datos); summary(reg)
plot(datos$X,datos$Y,xlab='X(m)',ylab='Y(%)',main='Ajuste cuadrático o polinómica de orden 2')
curve(reg$coefficient[1]+reg$coefficient[2]*x+reg$coefficient[3]*x^2,add=T,col="red")
• #Ajuste cúbico o polinómica de orden 3:
reg<-lm(Y~X+I(X^2)+I(X^3),data=datos); summary(reg)
plot(datos$X,datos$Y,xlab='X(m)',ylab='Y(%)',main='Ajuste cúbico o polinómica de orden 3')
curve(reg$coefficient[1]+reg$coefficient[2]*x+reg$coefficient[3]*x^2+reg$coefficient[4]*x^3,add
=T)
• #Ajuste logarítmico:
tras<-log(datos$X)
reg<-lm(Y~tras,data=datos); summary(reg)
plot(datos$X,datos$Y,xlab='X(m)',ylab='Y(%)',main='Ajuste logarítmico')
curve(reg$coefficient[1]+reg$coefficient[2]*log(x),add=T,col="violet")
• #Ajuste potencia:
trasX<-log(datos$X);trasY<-log(datos$Y)
reg<-lm(trasY~trasX,data=datos);summary(reg)
plot(datos$X,datos$Y,xlab='X(m)',ylab='Y(%)',main='Ajuste potencia')
curve(exp(reg$coefficient[1])*x^(reg$coefficient[2]),add=T,col='purple')
28
Regresión curvilinea
• #Ajuste curva-S.
tras<-log(datos$Y)
reg<-lm(tras~I(1/X),data=datos);summary(reg)
plot(datos$X,datos$Y,xlab='X(m)',ylab='Y(%)',main='Ajuste Curva-S')
curve(exp(reg$coefficient[1]+(reg$coefficient[2])/x),add=T,col="blue")
• #Ajuste inversa.
reg<-lm(Y~I(1/X),data=datos); summary(reg)
plot(datos$X,datos$Y,xlab='X(m)',ylab='Y(%)',main='Ajuste inversa')
curve(reg$coefficient[1]+reg$coefficient[2]/x,add=T,col="green")
• #Ajuste exponencial:
tras<-log(datos$Y)
reg<-lm(tras~X,data=datos);summary(reg)
plot(datos$X,datos$Y,xlab='X(m)',ylab='Y(%)',main='Ajuste exponencial')
curve(exp(reg$coefficient[1])*exp(reg$coefficient[2]*x),add=T,col="orange")
• #Ajuste compuesto:
tras<-log(datos$Y)
reg<-lm(tras~X,data=datos);summary(reg)
plot(datos$X,datos$Y,xlab='X(m)',ylab='Y(%)',main='Ajuste compuesto')
curve(exp(reg$coefficient[1])*exp(reg$coefficient[2])^x,add=T,col="gray")
• #Ajuste crecimiento:
tras<-log(datos$Y)
reg<-lm(tras~X,data=datos);summary(reg)
plot(datos$X,datos$Y,xlab='X(m)',ylab='Y(%)',main='Ajuste crecimiento') 29
curve(exp(reg$coefficient[1]+reg$coefficient[2]*x),add=T)
Regresión no lineal (aproximación)
> x=c(4,6,2,3)
> y=c(5,2,3,5)
Para definir el modelo estadístico:
> freg1=function(x,b0,b1) {b0+b1*x}
> reg1=nls(y~freg(x,b0,b1),start=c(b0=1,b1=2), trace=T)
> reg1
Mostrará:
30
Prueba estadística ‘t’
31
Correlación
32
Análisis Discriminante
33
Análisis Factorial
34
Diseños experimental una vía
35
Diagramas de dispersión
Plot(x,y, xlab=‘EjeX’,ylab=‘EjeY’,lwd=3,col=‘red’,type=‘l’)
lwd es el grosor(3,8,…) de los puntos
Col es el color de los puntos(blue, red, black,…)
Type es como se grafica, punto=‘p’, line=‘l’…
36
Generar grafico para un archivo
37
Archivos y carpetas
getwd() Muestra el directorio de trabajo
setwd() Cambia el directorio de trabajo
setwd(“d:/”) # cambia directorio a la raíz de unidad d:
data() Muestra los archivos de datos disponibles
data(archivo) Carga el archivo de datos a la memoria
search() Permite ver los libros que hay en memoria
library() Permite ver libreras disponibles. Ejem.
library(Rcmdr) # carga el R-comander
38
Ejecución órdenes de archivo
> source("ordenes.R")
Por otra parte, la orden sink
> sink("resultado.lis")
enviara la salida al archivo “resultado.lis”. La
orden
> sink()
devuelve la salida de nuevo a la pantalla.
39
Paquetes
40
Estadísticas con “tapply”
sexo x
1 d 3
2 d 2
3 d 3
4 d 5
5 d 6
6 v 4
7 v 5
8 v 4
> var1=tapply(x,sexo,var) # hallará la varianza de x pero separados por sexo.
d v
2.7000000 0.3333333
> var1[[1]] # mostrará la varianza de damas («d»)
41
Distribuciones de probabilidad
qf(c(.05), df1=5, df2=4, lower.tail=FALSE)
[1] 6.256057
> qf(c(.05), df1=5, df2=4, lower.tail=TRUE)
[1] 0.1925978
> qnorm(c(.05), mean=0, sd=1, lower.tail=FALSE)
[1] 1.644854
> qnorm(c(.95), mean=0, sd=1, lower.tail=FALSE)
[1] -1.644854
> qnorm(c(.95), mean=0, sd=1, lower.tail=TRUE)
[1] 1.644854
> qt(c(.05), df=16, lower.tail=FALSE)
[1] 1.745884
> qt(c(.95), df=16, lower.tail=FALSE)
[1] -1.745884
> qchisq(c(0.9), df=16, lower.tail=TRUE)
[1] 23.54183
> qchisq(c(0.1), df=16, lower.tail=TRUE)
[1] 9.312236
42
Prueba homogeneidad varianzas
43
Bucles
44
Condicional
45
Invocar ayuda
46