EL MODELO DE REGRESIÓN LINEAL CLÁSICO EN R: UN ANÁLISIS TEÓRICO Y APLICADO A LA BIOESTADÍSTICA Y LA ECONOMÍA POLÍTICA

ISADORE NABI

CONTENIDO GENERAL

A. BIOESTADÍSTICA

A.1. Caso de aplicación

Se realizó un estudio para analizar la velocidad de nado de las personas mayores de 18 años que son miembros regulares de un equipo de natación, y se tomaron en cuenta algunas variables que pueden estar relacionadas con esta velocidad. Se hizo una prueba a los participantes y se tomó el tiempo que duraban en nadar 50m. Entonces como medida de la velocidad de nado se tiene el tiempo (en segundos) el cual se puede transformar a la velocidad dividiendo la distancia entre el tiempo. Esta variable se llama veloc. Como variables predictoras se tienen las siguientes:

  • edad: la edad en años cumplidos.
  • sexo: el sexo codificado como 0 (mujeres) y 1 (hombres).
  • imc: el índice de masa corporal se calcula dividiendo el peso en kilogramos entre la altura al cuadrado (en metros), lo cual da una medida en $kg/m^2$.
  • pierna: la longitud promedio de ambas piernas (en centímetros).
  • brazo: la longitud promedio de ambos brazos (en centímetros).

A.2. MÉTODOS Y TÉCNICAS ESTADÍSTICAS ESTUDIADAS Y APLICADAS

  • Análisis descriptivo con la sintaxis xyplot de la librería “lattice”.
  • Análisis descriptivo con la sintaxis scatterplot de la librería “car”.
  • Correlación lineal de Pearson.
  • Correlograma.
  • Estimación del valor esperado de la variable de respuesta.
  • Coeficientes de regresión estandarizados internamente y externamente.
  • Construccción manual y automatizada del modelo de regresión.
  • Construcción y descomposición manual de la suma de cuadrados.
  • Construcción manual y automatizada de intervalos de confianza t de Student.
  • Construcción manual y automatizada de los intervalos de predicción t de Student.
  • Construcción automatizada de los intervalos de tolerancia bayesianos normalmente distribuidos.
  • Ajuste de distribución de probabilidad.
  • Gráfico Q-Q.
  • Gráfico de probabilidad acumulada.
  • Gráfico P-P.
  • Pruebas de normalidad.
  • Simulación de estimación pseudo-aleatoria mediante una sintaxis de tipo bucle.
  • Efectos marginales.
  • Construcción manual de la prueba F.
  • Prueba de hipótesis de significancia global y local de los coeficientes de regresión.

b. ECONOMÍA POLÍTICA

B.1. cASO DE APLICACIÓN

Estudiar estadísticamente, como parte de un ejercicio pedagógico, los determinantes fundamentales lineales de la tasa media de ganancia para el caso de Estados Unidos en el período 1964-2008 mediante un análisis de regresión lineal.

B.2. MÉTODOS Y TÉCNICAS ESTADÍSTICAS ESTUDIADAS Y APLICADAS

  • Análisis descriptivo de tendencias con las sintaxis plot_ly y add_trace.
  • Análisis descriptivo de las influencias o ‘leverages’.
  • Construcción automatizada del modelo de regresión.
  • Verificación del modelo de mejor ajuste vía eliminación hacia atrás mediante el Criterio Bayesiano de Información (BIC).
  • Análisis de la capacidad predictiva del modelo.
  • Ajuste de distribución.
  • Contrastes de normalidad.
  • Distancia de Cook.
  • Pruebas de multicolinealidad.
  • Pruebas de autocorrelación.
  • Pruebas de heterocedasticidad.
  • Errores Estándar Robustos en presencia de Heterocedasticidad y Autocorrelación (Errores Estándar HAC).
  • Pruebas de especificación del modelo.
  • Construcción automatizada de intervalos de confianza t de Student.

UNA APROXIMACIÓN TEÓRICA A LA DETERMINACIÓN DE LA IGUALDAD DE VARIANZAS DE DOS POBLACIONES

ISADORE NABI

Si las medias r-ésimas (los r-ésimos estadísticos de prueba) son únicas y existe convergencia en distribución entre las muestras en comparación distribución, estas tendrán también las mismas medias r-ésimas. Para garantizar la unicidad de los momentos debe garantizarse que la muestra y la población sean finitas o, a lo sumo, infinitas numerables (que sea posible poderla poner en correspondencia uno-a-uno con los números naturales); mientras que para garantizar que converjan en distribución debe garantizarse (aunque no es el único camino, más sí el óptimo para estos fines) antes la convergencia en media r-ésima, que para el caso de los espacios euclidianos y sus generalizaciones naturales (los espacios de Hilbert) debe ser convergencia en media cuadrática (porque la norma de tales espacios es de carácter cuadrático y sirve para estimar distancias bajo una lógica también cuadrática). Adicionalmente, en términos matemáticos, que converjan en media cuadrática garantiza que converjan en varianza. Que converjan en media cuadrática se verifica, en el contexto de los espacios ya mencionados, cuando se certifica a través de una prueba de hipótesis rigurosa que las medias de las dos poblaciones no difieren en términos estadísticamente significativos. Si el conjunto de condiciones anteriormente expuesto se cumple, entonces que dos muestras tengan la misma distribución y la misma media implica que su varianza será igual, lo que formalmente hablando implica que sus varianzas tenderán a ser iguales a medida se aproximen al tamaño de la población de la cual son parte. Debido a que una distribución no es caracterizada unívocamente por sus momentos sino por su función característica (si todos sus momentos son finitos), la cual es la solución a la ecuación integral generada tras la aplicación de la transformación de Fourier a la distribución de probabilidad en cuestión, la unicidad de los momentos implica formalmente hablando, además de la restricción antes impuesta sobre el tamaño de la muestra y la población, que las distribuciones de probabilidad tengan la misma función característica. Los parámetros de transformación de Fourier son, por definición, los mismos para todos los casos (a=1, b=1). El hecho de que las poblaciones sean o no sean homogéneas no es explícitamente relevante en términos teóricos puesto que la matemática pura no establece teoremas contemplando aspectos esenciales de los fenómenos que modela de manera abstracta-formal (garantiza que la heterogeneidad no sea un problema -en el terreno asintótico- al establecer los pre-requisitos antes mencionados, como se verá en el contexto aplicado). En términos aplicados es, sin lugar a dudas, completamente relevante porque puede tener implicaciones en que la diferencia en variabilidad de las muestras sea estadísticamente significativa; sin embargo, lo que se desprende en términos prácticos de lo expuesto teóricamente antes es que si dos muestras tienen la misma forma geométrica general (la misma distribución, que implica que los conjuntos de datos siguen el mismo patrón geométrico), más allá de variaciones de escala (producto de variaciones no significativas en los parámetros, es decir, variaciones que no cambian el tipo específico de distribución de la que se trate) y además existe convergencia en media (que es una forma rigurosa de expresar que, aproximadamente hablando, tendrán la misma media), también existirá convergencia en varianza, es decir, que las varianzas, diferirán a lo sumo, en una constante arbitraria C*, que se expresa teóricamente como el residuo de la solución a la ecuación integral antes mencionada. Por lo anterior, no es necesario realizar una prueba de potencia para la igualdad de varianzas establecida con prueba F, simplemente basta con verificar que las poblaciones sean las mismas, tengan el mismo tamaño de muestra y tengan la misma media para saber que tendrán la misma varianza o segundo momento.

FUNDAMENTOS GENERALES DEL PROCESO DE ESTIMACIÓN Y PRUEBA DE HIPÓTESIS EN R STUDIO. PARTE II, CÓDIGO EN R STUDIO CON COMENTARIOS

ISADORE NABI

##ESTABLECER EL DIRECTORIO DE TRABAJO

setwd(“(…)”)

##LEER EL ARCHIVO DE DATOS. EN ESTE CASO, SUPÓNGASE QUE LOS DATOS SON DE UNA MUESTRA ALEATORIA DE 21 TIENDAS UBICADAS EN DIFERENTES PARTES DEL PAÍS Y A LAS CUALES SE LES REALIZÓ VARIOS ESTUDIOS. PARA ELLO SE MIDIERON ALGUNAS VARIABLES QUE SE PRESENTAN A CONTINUACIÓN

###- menor16= es un indicador de limpieza del lugar, a mayor número más limpio. 

###- ipc= es un indice de producto reparado con defecto, indica el % de producto que se pudo reparar y posteriormente comercializar.

###- ventas= la cantidad de productos vendidos en el último mes.

read.table(“estudios.txt”)

## CREAR EL ARCHIVO Y AGREGAR NOMBRES A LAS COLUMNAS

estudios = read.table(“estudios.txt”, col.names=c(“menor16″,”ipc”,”ventas”))

names(estudios)

nrow(estudios)

ncol(estudios)

dim(estudios)

## REVISAR LA ESTRUCTURA DEL ARCHIVO Y CALCULAR LA MEDIA, LA DESVIACIÓN ESTÁNDAR Y LOS CUANTILES PARA LAS VARIABLES DE ESTUDIO Y, ADICIONALMENTE, CONSTRÚYASE UN HISTOGRAMA DE FRECUENCIAS PARA LA VARIABLE “VENTAS”

str(estudios)

attach(estudios)

ventas

###Nota: la función “attach” sirve para adjuntar la base de datos a la ruta de búsqueda R. Esto significa que R busca en la base de datos al evaluar una variable, por lo que se puede acceder a los objetos de la base de datos simplemente dando sus nombres.

###Nota: Al poner el comando “attach”, la base de datos se adjunta a la dirección de búsqueda de R. Entonces ahora pueden llamarse las columnas de la base de datos por su nombre sin necesidad de hacer referencia a la base de datos ventas es una columna -i.e., una variable- de la tabla estudios). Así, al escribrlo, se imprime (i.e., se genera visualmente para la lectura ocular)

## CALCULAR LOS ESTADÍSTICOS POR VARIABLE Y EN CONJUNTO

mean(ventas)

sd(ventas)

var(ventas)

apply(estudios,2,mean)

apply(estudios,2,sd)

###Nota: la función “apply” sirve para aplicar otra función a las filas o columnas de una tabla de datos

###Nota: Si en “apply” se pone un “1” significa que aplicará la función indicada sobre las filas y si se pone un “2” sobre las columnas

## APLICAR LA FUNCIÓN “quantile”.

quantile(ventas) ###El cuantil de función genérica produce cuantiles de muestra correspondientes a las probabilidades dadas. La observación más pequeña corresponde a una probabilidad de 0 y la más grande a una probabilidad de 1.

apply(estudios,2,quantile)

###Nótese que para aplicar la función “apply” debe haberse primero “llamado” (i.e., escrito en una línea de código) antes la función que se aplicará (en este caso es la función “quantile”).

(qv = quantile(ventas,probs=c(0.025,0.975)))

###Aquí se está creando un vector de valores correspondientes a determinada probabilidad (las ventas, en este caso), que para este ejemplo son probabilidades de 0.025 y 0.975 de probabilidad, que expresan determinada proporción de la unidad de estudio que cumple con una determinada característica (que en este ejemplo esta proporción es el porcentaje de tiendas que tienen determinado nivel de ventas -donde la característica es el nivel de ventas-).

## GENERAR UN HISTOGRAMA DE FRECUENCIAS PARA LA COLUMNA “ventas”

hist(ventas)

abline(v=qv,col=2)

###Aquí se indica con “v” el conjunto de valores x para los cuales se graficará una línea. Como se remite a “qv” (que es un vector numérico de dos valores, 141 y 243) en el eje de las x, entonces graficará dos líneas color rojo (una en 141 y otra en 243).

###Aquí “col” es la sintaxis conocida como parte de los “parámetros gráficos” que sirve para especificar el color de las líneas

hist(ventas, breaks=7, col=”red”, xlab=”Ventas”, ylab=”Frecuencia”,

     main=”Gráfico

   Histograma de las ventas”)

detach(estudios)

###”breaks” es la indicación de cuántas particiones tendrá la gráfica (número de rectángulos, para este caso).

## GENERAR UNA DISTRIBUCIÓN N(35,4) CON NÚMEROS PSEUDOALEATORIOS PARA UN TAMAÑO DE MUESTRA n=1000

y = rnorm(1000,35,2)

hist(y)

qy = quantile(y,probs=c(0.025,0.975))

hist(y,freq=F)

abline(v=qy,col=2)

lines(density(y),col=2) #”lines” es una función genérica que toma coordenadas dadas de varias formas y une los puntos correspondientes con segmentos de línea.

## GENERAR UNA FUNCIÓN CON LAS VARIABLES n (CANTIDAD DE DATOS), m (MEDIA MUESTRAL) y  s (DESVIACIÓN ESTÁNDAR MUESTRAL) QUE ESTIME Y GRAFIQUE, ADEMÁS DE LOS CÁLCULOS DEL INCISO ANTERIOR, LA MEDIA.

plot.m = function(n,m,s) {

  y = rnorm(n,m,s)

  qy = quantile(y,probs=c(0.025,0.975))

  hist(y,freq=F)

  abline(v=qy,col=2)

  lines(density(y),col=2) ###Aquí se agrega una densidad teórica (una curva que dibuja una distribución de probabilidad -de masa o densidad- de referencia), la cual aparece en color rojo.

  mean(y)

}

## OBTENER UNA MUESTRA DE TAMAÑO n=10 DE N(100, 15^2)

plot.m(10000,100,15)

###Nótese que formalmente la distribución normal se caracteriza siempre por su media y varianza, aunque en la sintaxis “rnorm” de R se introduzca su media y la raíz de su varianza (la desviación estándar muestral)

##Generar mil repeticiones e ingresarlas en un vector. Compárense sus medias y desviaciones estándar.

n=10000; m=100;s=15

I = 1000 ###”I” son las iteraciones

medias = numeric(I)

for(i in 1:I)           {#”for” es un bucle (sintaxis usada usualmente para crear funciones personalizadas)

  sam=rnorm(n,m,s) ###Aquí se crea una variable llamada “sam” (de “sample”, i.e., muestra) que contiene una la distribución normal creada con números pseudoaleatorios.

  medias[i]=mean(sam)   } ###”sam” se almacena en la i-ésima posición la i-ésima media generada con “rnorm” que le corresponde dentro del vector numérico de iteraciones (el que contiene las medias de cada iteración) medias[i] (que contiene los elementos generados con la función “mean(sam)”).

###Un bucle es una interrupción repetida del flujo regular de un programa; pueden concebirse como órbitas (en el contexto de los sistemas dinámicos) computacionales. Un programa está diseñado para ejecutar cada línea ordenadamente (una a una) de forma secuencial 1,2,3,…,n. En la línea m el programa entiende que tiene que ejecutar todo lo que esté entre la línea n y la línea m y repetirlo, en orden secuencial, una cantidad x de veces. Entonces el flujo del programa sería, para el caso de un flujo regular  1,2,3,(4,5,…,m),(4,5,…,m),…*x,m+1,m+2,…,n.

## UTILIZAR LA VARIABLE “medias[i]” GENERADA EN EL INCISO ANTERIOR PARA DETERMINAR LA DESVIACIÓN ESTÁNDAR DE ESE CONJUNTO DE MEDIAS (ALMACENADO EN “medias[i]”) Y DETERMINAR SU EQUIVALENCIA CON EL ERROR ESTÁNDAR DE LA MEDIA (e.e.)

###Lo anterior evidentemente implica que se está construyendo sintéticamente (a través de bucles computacionales) lo que, por ejemplo, en un laboratorio botánico se registra a nivel de datos (como en el que Karl Pearson y Student hacían sus experimentos y los registraban estadísticamente) y luego se analiza en términos de los métodos de la estadística descriptiva e inferencial (puesto que a esos dominios pertenece el e.e.).

sd(medias)     ### desviación de la distribución de las medias

(ee = s/sqrt(n)  )### equivalencia teórica

## COMPARAR LA DISTRIBUCIÓN DE MEDIAS

m

mean(medias)

## GRAFICAR LA DISTRIBUCIÓN DE MEDIAS GENERADA EN EL INCISO ANTERIOR

hist(medias)

qm = quantile(medias,probs=c(0.025,0.975))

hist(medias,freq=F)

abline(v=qm,col=2)

lines(density(medias),col=2)

## GENERAR UN INTERVALO DE CONFIANZA CON UN NIVEL DE 0.95 PARA LA MEDIA DE LAS VARIABLES SUJETAS A ESTUDIO

attach(estudios)

### Percentil 0.975 de la distribución t-student para 95% de área bajo la curva

n = length(ventas) ###Cardinalidad o módulo del conjunto de datos

t = qt(0.975,n-1) ###valor t de la distribución t de student correspondiente a un nivel de probabilidad y n-1 gl

###Se denominan pruebas t porque todos los resultados de la prueba se basan en valores t. Los valores T son un ejemplo de lo que los estadísticos llaman estadísticas de prueba. Una estadística de prueba es un valor estandarizado que se calcula a partir de datos de muestra durante una prueba de hipótesis. El procedimiento que calcula la estadística de prueba compara sus datos con lo que se espera bajo la hipótesis nula (fuente: https://blog.minitab.com/en/adventures-in-statistics-2/understanding-t-tests-t-values-and-t-distributions).

###”qt” es la sintaxis que especifica un valor t determinado de la variable aleatoria de manera que la probabilidad de que esta variable sea menor o igual a este determinado valor t es igual a la probabilidad dada (que en la sintaxis de R se designa como p)

###Para más información véase https://marxianstatistics.com/2021/09/05/analisis-teorico-de-la-funcion-cuantil-en-r-studio/

###”n-1″ son los grados de libertad de la distribución t de student.

#### Error Estándar

ee = sd(ventas)/sqrt(n)

### Intervalo

mean(ventas)-t*ee

mean(ventas)+t*ee

mean(ventas)+c(-1,1)*t*ee ###c(-1,1) es un vector que se introduce artificialmente para poder construir el intervalo de confianza al 95% (u a otro nivel de confianza deseado) en una sola línea de código.

## ELABORAR UNA FUNCIÓN QUE PERMITA CONSTRUIR UN INTERVALO DE CONFIANZA AL P% DE NIVEL DE CONFIANZA PARA LA VARIABLE X

ic = function(x,p) {

  n = length(x)

  t = qt(p+((1-p)/2),n-1)

  ee = sd(x)/sqrt(n)

  mean(x)+c(-1,1)*t*ee

}

###Intervalo de 95% confianza para ventas

ic(ventas,0.95)

ic(ventas,0.99)

###El nivel de confianza hace que el intervalo de confianza sea más grande pues esto implica que los estadísticos de prueba (las versiones muestrales de los parámetros poblacionales) son más estadísticamente más robustos, por lo que su vecindario de aplicación es más amplio.

ic(ipc,0.95)

ic(menor16,0.95)

## REALIZAR LA PRUEBA DE HIPÓTESIS (PARA UNA MUESTRA) DENTRO DEL INTERVALO DE CONFIANZA GENERADO AL P% DE NIVEL DE CONFIANZA

t.test(ventas,mu=180) ###Por defecto, salvo que se cambie tal configuración, R realiza esta prueba a un nivel de confianza de 0.95.

### Realizando manualmente el cálculo anterior:

(t2=(mean(ventas)-180)/ee) ###Aquí se calcula el valor t por separado (puesto que la sintaxis “t.test” lo estima por defecto, como puede verificarse en la consola tras correr el código). Se denota con “t2” porque anteriormente se había definido en la línea de código 106 t = qt(0.975,n-1) para la construcción manual de los intervalos de confianza.

2*(1-pt(t2,20)) ###Aquí se calcula manualmente el valor p. Se multiplica por dos para tener la probabilidad acumulada total (considerando ambas colas) al valor t (t2, siendo más precisos) definido, pues esta es la definición de valor p. Esto se justifica por el hecho de la simetría geométrica de la distribución normal, la cual hace que la probabilidad acumulada (dentro de un intervalo de igual longitud) a un lado de la media sea igual a la acumulada (bajo la condición especificada antes) a la derecha de la media.

2*(pt(-t2,20)) ###Si el signo resultante de t fuese negativo. Además, 20 es debido a n-1 = 21-1 = 20.

###La sintaxis “pt” calcula el valor de la función de densidad acumulada (cdf) de la distribución t de Student dada una determinada variable aleatoria x y grados de libertad df (degrees of freedom, equivalente a gl en español), véase https://www.statology.org/working-with-the-student-t-distribution-in-r-dt-qt-pt-rt/

## CREAR UNA VARIABLE QUE PERMITA SEPARAR ESPACIALMENTE (AL INTERIOR DE LA GRÁFICA QUE LOS REPRESENTA) AQUELLOS ipc MENORES A UN VALOR h (h=117) DE AQUELLOS QUE SON IGUALES O MAYORES QUE h (h=117)

(ipc1 = 1*(ipc<17)+2*(ipc>=17))

ipc2=factor(ipc1,levels=c(1,2),labels=c(“uno”,”dos”))

plot(ipc2,ipc)

abline(h=17,col=2)

## GENERAR GRÁFICO DE DIAMENTE CON LOS INTERVALOS DE CONFIANZA AL 0.95 DE NdC CENTRADOS EN LAS MEDIAS DE CADA GRUPO CREADO ALREDEDOR DE 17 Y UN BOX-PLOT

library(gplots)

plotmeans(ventas~ipc2) ###Intervalos del 95% alrededor de la media (GRÁFICO DE DIMANTES)

boxplot(ventas~ipc2)

## REALIZAR LA PRUEBA DE HIPÓTESIS DE QUE LA MEDIA ES LA MISMA PARA LOS DOS GRUPOS GENERADOS ALREDEDOR DE h=17

(med = tapply(ventas,ipc1,mean))

(dev = tapply(ventas,ipc1,sd))

(var = tapply(ventas,ipc1,var))

(n   = table(ipc1))

dif=med[1]-med[2]

###La sintaxis “tapply” aplica una función a cada celda de una matriz irregular (una matriz es irregular si la cantidad de elementos de cada fila varía), es decir, a cada grupo (no vacío) de valores dados por una combinación única de los niveles de ciertos factores.

### PRUEBA DE HIPÓTESIS EN ESCENARIO 1: ASUMIENDO VARIANZAS IGUALES (SUPUESTO QUE EN ESCENARIOS REALES DEBERÁ VERIFICARSE CON ANTELACIÓN)

varpond= ((n[1]-1)*var[1] + (n[2]-1)*var[2])/(n[1]+n[2]-2) ###Aquí se usa una varianza muestral ponderada como medida más precisa (dado que el tamaño de los grupos difiere) de una varianza muestral común entre los dos grupos construidos alrededor de h=17

e.e=sqrt((varpond/n[1])+(varpond/n[2]))

dif/e.e

t.test(ventas~ipc1,var.equal=T)

t.test(ventas~ipc1)  #Por defecto la sintaxis “t.test” considera las varianzas iguales, por lo que en un escenario de diferentes varianzas deberá ajustarse esto como se muestra a continuación.

### PRUEBA DE HIPÓTESIS EN ESCENARIO 2: ASUMIENDO VARIANZAS DESIGUALES (AL IGUAL QUE ANTES, ESTO DEBE VERIFICARSE)

e.e2=sqrt((var[1]/n[1])+(var[2]/n[2]))

dif/e.e2

a=((var[1]/n[1]) + (var[2]/n[2]))^2

b=(((var[1]/n[1])^2)/(n[1]-1)) +(((var[2]/n[2])^2)/(n[2]-1))

(glmod=a/b)

t.test(ventas~ipc1,var.equal=F)

###Para aceptar o rechazar la hipótesis nula el intervalo debe contener al cero (porque la Ho afirma que la verdadera diferencia en las medias -i.e., su significancia estadística- es nula).

###Conceptualmente hablando, una diferencia estadísticamente significativa expresa una variación significativa en el patrón geométrico que describe al conjunto de datos. Véase https://marxianstatistics.com/2021/08/27/modelos-lineales-generalizados/. Lo que define si una determinada variación es significativa o no está condicionado por el contexto en que se realiza la investigación y la naturaleza misma del fenómeno estudiado.

## REALIZAR PRUEBA F PARA COMPARAR LA VARIANZA DE LOS GRUPOS Y LA PROBABILIDAD ASOCIADA

(razon.2 = var[1]/var[2]) ###Ratio de varianzas (asumiendo que las varianzas poblacionales son equivalentes a la unidad, en otro caso su estimación sería matemáticamente diferente; véase https://sphweb.bumc.bu.edu/otlt/mph-modules/bs/bs704_power/bs704_power_print.html y https://stattrek.com/online-calculator/f-distribution.aspx).

pf(razon.2,n[1]-1,n[2]-1) ###Al igual que “pt” (para el caso de la t de Student que compara medias de dos grupos o muestras), “pf” en el contexto de la prueba F (que compara la varianza de dos grupos o muestras) calcula la probabilidad acumulada que existe hasta determinado valor.

###La forma general mínima (más sintética) de la sintaxis “pf” es “pf(x, df1, df2)”, en donde “x” es el vector numérico (en este caso, de un elemento), df1 son los gl del numerador y df2 son los grados de libertad del denominador de la distribución F (cuya forma matemática puede verificarse en la documentación de R; véase https://stat.ethz.ch/R-manual/R-devel/library/stats/html/Fdist.html).

(2*pf(razon.2,n[1]-1,n[2]-1)) ###Aquí se calcula el valor p manualmente.

###Realizando de forma automatizada el procedimiento anterior:

var.test(ventas~ipc1)

detach(estudios)

###Para aceptar o rechazar la hipótesis nula el intervalo debe contener al 1 porque la Ho afirma que la varianza de ambas muestras es igual (lo que implica que su cociente o razón debe ser 1), lo que equivale a afirmar que la diferencia real entre desviaciones (la significancia estadística de esta diferencia) es nula.

## EN EL ESCENARIO DEL ANÁLISIS DE MUESTRAS PAREADAS, ANALIZAR LOS DATOS SOBRE EL EFECTO DE DOS DROGAS EN LAS HORAS DE SUEÑO DE UN GRUPO DE PACIENTES (CONTENIDOS EN EL ARCHIVO “sleep” DE R)

attach(sleep) ###”sleep” es un archivo de datos nativo de R, por ello puede “llamarse” sin especificaciones de algún tipo.

plot(extra ~ group)

plotmeans(extra ~ group,connect=F)  ###Intervalos del 95% alrededor de la media. El primer insumo (entrada) de la aplicación “plotmeans” es cualquier expresión simbólica que especifique la variable dependiente o de respuesta (continuo) y la variable independiente o de agrupación (factor). En el contexto de una función lineal, como la función “lm()” que es empleada por “plotmeans” para graficar (véase la documentación de R sobre “plotmeans”), sirve para separar la variable dependiente de la o las variables independientes, las cuales en este caso de aplicación son los factores o variables de agrupación (puesto que se está en el contexto de casos clínicos y, en este contexto, las variables independientes son las variables que sirven de criterio para determinar la forma de agrupación interna del conjunto de datos; este conjunto de datos contiene las observaciones relativas al efecto de dos drogas diferentes sobre las horas de sueño del conjunto de pacientes-).

A = sleep[sleep$group == 1,] ###El símbolo “$” sirve para acceder a una variable (columna) de la matriz de datos, en este caso la número 1 (por ello el “1”).

B = sleep[sleep$group == 2,]

plot(1:10,A$extra,type=”l”,col=”red”,ylim=c(-2,7),main=”Gráfico 1

Horas de sueño entre pacientes con el tratamiento A y B”,ylab=”Horas”,xlab=”Numero de paciente”,cex.main=0.8)

lines(B$extra,col=”blue”)

legend(1,6,legend=c(“A”,”B”),col=c(“red”,”blue”),lwd=1,box.col=”black”,cex=1)

t.test(A$extra,B$extra)

t.test(A$extra,B$extra,paired=T)

t.test(A$extra-B$extra,mu=0)

###Una variable de agrupación (también llamada variable de codificación, variable de grupo o simplemente variable) clasifica las observaciones dentro de los archivos de datos en categorías o grupos. Le dice al sistema informático (sea cual fuere) cómo el usuario ha clasificado los datos en grupos. Las variables de agrupación pueden ser categóricas, binarias o numéricas.

###Cuando se desea realizar un comando dentro del texto (en un contexto de formato Rmd) se utiliza así,por ejemplo se podría decir que la media del sueño extra es `r mean(sleep$extra)` y la cantidad de datos son `r length(sleep$extra)`

## ESTIMACIÓN DE LA POTENCIA DE UNA PRUEBA DE HIPÓTESIS (PROBABILIDAD BETA DE COMETER ERROR TIPO II)

library(pwr) ###”pwr” es una base de datos nativa de R

delta=3 ###Nivel de Resolución de la prueba. Para un valor beta (probabilidad de cometer error tipo II) establecido el nivel de resolución es la distancia mínima que se desea que la prueba sea capaz de detectar, es decir, que si existe una distancia entre los promedios tal que la prueba muy probablemente rechace la hipótesis nula Ho. Para el cálculo manual de la probabilidad beta véase el complemento de este documento (FUNDAMENTOS GENERALES DEL PROCESO DE ESTIMACIÓN Y PRUEBA DE HIPÓTESIS EN R STUDIO. PARTE I, TEORÍA ESTADÍSTICA)

s=10.2 ###Desviación estándar muestral

(d=delta/s) #Tamano del efecto.

pwr.t.test(n=NULL,d=d,power =0.9,type=”one.sample”)

## ESTIMAR CON EL VALOR ÓPTIMO PARA EL NIVEL DE RESOLUCIÓN, PARTIENDO DE n=40 Y MANTENIENDO LA POTENCIA DE 0.9

(potencia=pwr.t.test(n=40,d=NULL,power =0.9,type=”one.sample”))

potencia$d*s  #Delta

## GRAFICAR LAS DIFERENTES COMBINACIONES DE TAMAÑO DE MUESTRA Y NIVEL DE RESOLUCIÓN PARA UNA POTENCIA DE LA PRUEBA FIJA

s=10.2

deltas=seq(2,6,length=30)

n=numeric(30)

for(i in 1:30) {

  (d[i]=deltas[i]/s)

  w=pwr.t.test(n=NULL,d=d[i],power =0.9,type=”one.sample”)

  n[i]=w$n

}

plot(deltas,n,type=”l”)

## SUPÓNGASE QUE SE QUIERE PROBAR SI DOS GRUPOS PRESENTAN DIFERENCIAS ESTADÍSTICAMENTE SIGNIFICATIVAS EN LOS NIVELES PROMEDIO DE AMILASA, PARA LO CUAL SE CONSIDERA IMPORTANTE DETECTAR DIFERENCIAS DE 15 UNIDADES/ML O MÁS ENTRE LOS PROMEDIOS

s2p=290.9  ###Varianza ponderada de los dos grupos

(sp=sqrt(s2p)) ###Desviación estándar ponderada de los dos grupos

delta=15

(d=delta/sp)

pwr.t.test(n=NULL,d=d,power =0.9,type=”two.sample”)