Está en la página 1de 4

APUNTES

VECTOR: x=c(1,3,4...) | Acceder: x[c(1,3)] (para acceder a la posición 1 y 3)


CON CARACTERES: x=c("rojo","azul") => se puede usar función length

Funciones: Lenght, sum, max, min, sort(x, decreasing=TRUE/FAlSE)

MATRIZ

A=matriz(c(1,2,3,4,5,6), nrow= , ncol= ) nrow=filas ncol=columnas

Pdto matricial: A%*%B

Acceder a casilla: A[fila,columna] A[,columna] A[fila,]

DATA FRAME => Mezclar vectores de misma longitud de variables cuali y cuanti

pacientes=data.frame(altura=c(166,178,190), peso(59, 69, 80), sexo("M","H","H"))

Acceder a casilla: pacientes[3,1] pacientes[,1] pacientes[3,] => primero fila y luego columna
pacientes$columna[fila] => Ejemplo: pacientes$peso[3]

Ordenar: sort(pacientes$peso)

PAQUETES

instalar: install.packages("nombre_paquete") cargarlo: library(nombre_paquete) ayuda: help("nombre_paquete")

CARGAR DATOS

READ.TABLE=> archivos .txt

x=read.table(file, header, sep, dec) file: nombre archivo. header=> TRUE: Cabecera con nombres de variables FALSE: No (por defecto en FALSE)
sep: simbolo que separa cada columna del archivo (espacio por defecto) dec: símbolo de separación
decimal (punto por defecto)

SI NUESTRO ARCHIVO CUMPLE CON ALGÚN VALOR POR DEFECTO NO HACE FALTA ESCRIBIRLO EN EL CÓDIGO. Ejemplo:
corazon=read.table(file="corazon.txt", header=TRUE)

Maximo y Minimo: max(tabla$columna) => max(corazon$colesterol)


Número de columnas: nrow(tabla)
Acceder a valores de una variable (fila): tabla[73, ] => corazon[73, ] corazon[73,2]

READ.CSV=> archivos excel

x=read.csv(file, header, sep, dec)

Acceder a dos filas: tabla[c(fila,fila), ] => trasplantes[c(56,57),]


Primeras filas: head(tabla) => head(trasplantes)
SUMAR DATOS ESPECÍFICOS COLUMNA: sum(tabla$columna=="nombre"/numero)=> sum(tuberculosis$grupo=="Stremtomycin")

VARIABLES CUALITATIVAS

n=length(x) => ni=length(transplantes$tipo_diagnosis)


ni=table(x) => ni=table(transplantes$tipo_diagnosis)
fi=ni/n

En caso de v.cual nominales no calculamos acumuladas => tabla=cbind(ni,fi)

En caso de v.cuan ordinales calculamos acumuladas => Ni=cumsum(ni) Fi=cumsum(fi) tabla=cbind(ni,fi,Ni,Fi)

DIAGRAMA de barras => barplot(freq, main, col, names) freq: vector con frecuencias a representar (ni)
main: título gráfico
col: colores gráfico (se puede vector)
names: vector nombre categorías variable de interés

Ejemplo > barplot(ni, main="tipo de diagnóstico", col=c(red,blue), names=c("mieloide", linfoide")

DIAGRAMA de sectores => pie(freq, main, col, labels) freq:vector con frecuencias a representar (ni/fi)
labels: vector nombre de las categorías de la variable de interés
VARIABLES CUANTITATIVAS DISCRETAS => IGUAL QUE CUALITATIVAS ORDINALES

VARIABLES CUANTITATIVAS CONTINUAS

x=tabla$columna (corazon$Colesterol por ejemplo)

Medidas de posición

Media: mean(x) Mediana: median(x) Cuantiles/Cuartiles: quantile(x, 0.75/0.6...)

Medidas de dispersión

Cuasivarianza: var(x) Varianza: sqrt(var(x))/sd(x) Rango/Recorrido: diff(range(x))/max(x)-min(x) RI: quantile(x,0.75)-quantile(x, 0.75)

Medidas de forma

A partir de funciones disponibles en la librería moments: instal.packages("moments") => library(moments)

Coeficiente de asimetría de Fisher: skewness(x) si ASF=0 datos simétricos, ASF> asimétricos derecha ASF<0 asimétricos izquierda
Coeficiente de apuntamiento de Fisher: kurtosis(x) KF<3 platicúrtico, KF>3 leptocúrtico KF=3 mesocurtico

Histograma: hist(x,main="titulo",xlab="variable a estudiar")

Boxplot: boxplot(x,main="titulo",xlab="variable a estudiar")

DISTRIBUCIÓN DE PROBABILIDAD DISCRETAS: POISSON Y BINOMIAL

d: función de masa dbinom(x, size, prob) dpois(x, lambda) x: valor para el cual queremos calcular la función d masa size: tamaño muestra

Calcular la probabilidad de 8 y 9 por ejemplo: sum(dbinom(x=c(8,9), size=n, prob=p))

p: función de distribución p(X<=x) pbinom(q, size, prob) ppois(q, lambda) q:Valor para el cual queremos calcular la función de distribución
RESTAR UNO SI NOS PIDEN
MENOR QUE X
Calcular la prob menor que 4: ppois(q=3, lambda=x)

q: cuartilesqbinom(p, size, prob) qpois(p, lambda) p: Orden en tanto por uno del cuartil que queremos calcular.

Calcular mediana y tercer cuartil: qbinom(p=c(0.5,0.75), size=x, prob=y)

DISTRIBUCIONES CONTINUAS

NORMAL

Función densidad: dnorm(x, mean, sd) x:valor sobre el que queremos calcular la función de densidad. (Aunque técnicamente no se puede
calcular la probabilidad de un valor en específico, R lo permite)
mean: Media (por defecto = 0)
sd: Desviación típica (por defecto = 1)

Función de distribución: pnorm(q, mean, sd)


Cuartiles: qnorm(p, mean, sd) PARA CALCULAR VALOR MÁXIMO DEBAJO DEL CUAL SE ENCUENTRAN UN PORCENATAJE DE DATOS

Graficar 2 funciones juntas:

1º: Establezco una secuencia grande para función continua: x=seq(from=x, to=y, length=1000) => Length tiene que ser muy alto ya que al estar
representando una función contínua el número de valores tiene que tender a infinito.
2º: Primera función: plot(x, dnorm(x, mean=, prob=, type="l") type="l" significa que une a función por puntos
3º: Segunda función: points(x, dnorm(x, mean=, prob=, type="l", color=)

IMPORTANTE x=seq se emplea tanto en el eje x como el los valores de la normal que quiero calcular en la función densidad

EXPONENCIAL

Función densidad: dexp(x, rate) rate=1/a (por defecto 1) f(x)=λe^(-λk) media=1/λ


Función distribución: pexp(q, rate) Integrando f(x) se obtiene la función distribución F(x)=1-e^(-λk) S(x)=1-F(x)
Cuartiles: qexp(p, rate) función riesgo: h(x)=f(x)/S(x)=λ

Representar supervivencia : x=seq(from=0, to=50, length=1000)


plot(x,1-pexp(q=x, rate=1/16), type="l", ylim=c(0,1)) ylim=> poner límite a y
Representar riesgo: points(x,dexp(x=x,rate=1/16)/(1-pexp(q=x, rate=1/16)), type="l",col="red")
WEIBULL

Función de densidad: dweibull(x, shape, scale) shape=parámetro de forma b scale=parámetro de escala c


Función distribución: pweibull(q, shape, scale)
Cuantiles: qweibull(p, shape, scale)

Si b/shape=1 dweibull(x=a, shape=1, scale=c) = dexp(x=a, rate=1/c) La media de exp=scale

Supervivencia S(x)=1-pweibull => Para calcular que el tiempo de recaída/recurrencia supere x tiempo.
Riesgo h(x)=dweibull f(x)/ supervivencia S(x)

PAQUETE MASS: Para estimar b=forma c=escala por máxima verosimilitud

g1=c(vector con el grupo de observación)


p1=fitdistr(g1, densfun="weibull")$estimate
p1 => ejecutar

INFERENCIA SOBRE PROPORCIONES

prop.test(x=número de éxitos,n=tamaño de la muestra,p=proporción a contrastar,alternative="less"(unilaterales izq.)/greater(unilaterales


derecha)/"two-sided", conf.level=nivel de confianza)

Intervalos de confianza una proporción: prop.test(x,n,conf.level)


Contrastes para una proporción: prop.test(x,n,p,alternative,conf.level) Se puede obviar con.level y emplear el pvalor

Intervalos de confianza diferencia de proporciones: prop.test(x=c(a1,a2),n=c(n1,n1),conf.level)


Contrastes diferencia de proporcioens:prop.test(x=c(a1,a2),n=c(n1,n1),conf.level) NOS FIJAMOS EN LE p-valor

INFERENCIA SOBRE LA MEDIA: IMPORTANTE INSTALAR EL PAQUETE BSDA PARA EMPLEAR LA FUNCIÓN z.test

Inferencia sobre media con varianza conocida: z.test(x (vector que contiene la muestra),alternative, mu (Uo para contrastar), sigma.x (sd conocida),
conf.level)
Inferencia sobre media con varianza desconocida: t.test(x,alternative, mu (Uo para contrastar), conf.level)

INFERENCIA DIFERENCIA DE MEDIAS

Medias varianzas conocidas: z.test(x, y, alternative, sigma.x,sigma.y, conf.level, mu (valor que se quiere contrastar, por defecto= 0) )
Medias varianzas desconocidas e iguales / muestras apareadas: t.test(x, y,mu, alternative, conf.level, paired=TRUE/FALSE (por defecto false) ,
var.equal=TRUE/FALSE (por defecto false))

TABLAS DE CONTINGENCIA Y CHI CUADRADO

M=matrix(c(a,b,c,d), nrow=x) => recuerda ordenar la matriz por columnas y no por filas
rownames(M)=c("nombre fila a y c","nombre fila b y d")
colnames(M)=c("nombre columnna a y b", "nombre columna c y d")
M => ctrl + enter

X=chisq.test(x=M,correct=TRUE/FALSE("para hacer o no la correción de Yates")

X$observed (valores observados)


X$expected (valores esperados)

MEDIDAS DE RIESGO: RIESGO RELATIVO Y ODDS-RATIO => Instalar el paquete BioProbability

relative.risk(M, conf.int,level) M= Matriz 2*2 donde la fila 1 tiene los casos expuestos a una condición M11 y no 12. la fila 2 contiene a no casos
expuestos a una condición M21 y no expuestos a una condición M22
conf.int= Si se quiere (TRUE) o no (FALSE) calcular el intervalo de confianza
level= valor de alfa del intervalo de confianza (1-alfa) del RR, por defecto es 0.05 (IC al 95)
odds.ratio(M, conf.int, level) Igual que la anterior pero se usa debido a que en la mayor parte de los casos los enfermos son insignificantes
con respecto a los no enfermos

MODELO DE REGRESIÓN LINEAL

modelo=lm(y~x) y = variable dependiente/explicada x = variable indepente/explicada

Sacar Bo: beta0=modelo$coefficients[1]


Sacar B1: beta1=modelo$coefficients[0]

summary(modelo) Call: Se presenta el modelo en lenguaje


Residuals: Mínimo, q1, q2, q3, máximo de los residuos
Coefficients
Estimate: Valor aproximado de B1gorro Bogorro
Std.Error: Errores típicos de los coeficientes
t value: Cocientes estimaciones y errores tipicos. Estadistico de que el coeficiente vale 0.
Pr(>t): P-valor para el contraste de que el coeficiente vale 0

Covariancia: cov(x,y) y = variable dependiente/explicada x = variable indepente/explicada

Graficar las variables por diagrama de dispersión: plot(x,y)


Añadirle la recta de regresión calculada: abline(modelo, col="color")

Predecir valores de y:

A partir de lo que sabemos: Estatura0=x y=b0+b1*Estatura0


Función nueva: predict(modelo, data.frame(x=x0)) x0=variable de x sobre la que queremos predecir y

Función which: Me dice la posición del vector donde se encuentra un dato.Ejemplo: which(x==n)

También podría gustarte