Mostrando entradas con la etiqueta R. Mostrar todas las entradas
Mostrando entradas con la etiqueta R. Mostrar todas las entradas

viernes, 16 de diciembre de 2022

Cálculo matricial con R. Un ejemplo sencillo

Un ejemplo sencillo:

Introduzcamos una matriz 3x2; por ejemplo,
> A <- matrix(c(1,2,3,4,5,6),nrow=3,ncol=2)
> A
     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6

Sea (otra) matriz 2x3, que, por ejemplo, introducimos modificando A
sumando 1 a cada componente escalar de la matriz
> B=t(A+1)
> B
     [,1] [,2] [,3]
[1,]    2    3    4
[2,]    5    6    7

Calculamos el producto AB
> A%*%B
     [,1] [,2] [,3]
[1,]   22   27   32
[2,]   29   36   43
[3,]   36   45   54

-oOo-

Nota: No debe confundirse el producto de dos matrices $C$ por $D$, con $C$ de tamaño $m \times n$ y $D$ de tamaño $n\times p$, el cual da lugar a una matriz $CD$ de tamaño $m \times p$ —para realizar dicho producto en R se utiliza el operador C%*%D (tal como se ha hecho en el ejemplo anterior)—, con el producto componente a componente de sendas matrices (con el operador *), que da lugar a otra matriz del mismo tamaño/dimensión que éstas. Así, por ejemplo, con las siguientes matrices de la misma dimensión

> C <- matrix(c(1,2,3,4,5,6),nrow=2,ncol=3)
> D <- matrix(c(2,3,4,5,6,7),nrow=2,ncol=3)

> C
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

> D
     [,1] [,2] [,3]
[1,]    2    4    6
[2,]    3    5    7

el producto componente a componente da lugar a otra matriz de las mismas 
dimensiones que C y D

> C*D
     [,1] [,2] [,3]
[1,]    2   12   30
[2,]    6   20   42

Démonos cuenta de que plantear el producto de matrices 
C%*%D no tiene sentido, pues $C$ es $2 \times 3$ (esto es, $m=2$ y $n=3), 
al igual que $D$, y por tanto, al no ser igual el número de columnas 
del primer factor (la matriz C tiene $3$ columnas) al número de filas 
del segundo factor (la matriz D tiene $2$ columnas), 
no está definido dicho producto matricial, por lo que el resultado
de aplicar dicho comando daría lugar a un error del programa.

En efecto,
> C%*%D
Error in C %*% D : argumentos no compatibles

-oOo-

Referencias

[1] The UIB-AprendeR team: https://aprender-uib.github.io/AprendeR1/
[2] The UIB-AprendeR team: https://aprender-uib.github.io/AprendeR2/
[3] The R Development Core Team: https://cran.r-project.org/manuals.html

$\diamond$

jueves, 20 de enero de 2022

Ejemplo de resolución de un sistema de ecuaciones lineales compatible determinado utilizando R

En este breve artículo voy a mostraros cómo podemos resolver un sistema de ecuaciones lineales compatible determinado utilizando el programa de cálculo R, que se emplea en análisis numérico matricial y, especialmente, en estadística y probabilidad. Veamos el siguiente ejemplo: $$\left\{\begin{matrix}x+y+z=1\\x-y+z=0\\x-y-z=2\end{matrix}\right.$$ Este sistema de ecuaciones podemos escribirlo en forma matricial $$\begin{pmatrix}1&1&1\\1&-1&1\\ 1&-1&-1\end{pmatrix}\begin{pmatrix}x\\y\\z\end{pmatrix}=\begin{pmatrix}1\\0\\2\end{pmatrix}$$ Una vez identicados los elementos de la matriz de los coeficientes del sistema y los de la matriz de los términos independientes, basta utilizar las siguientes instrucciones de R


para obtener la solución:


esto es: $$x=\dfrac{3}{2}, y=\dfrac{1}{2}, z=-1$$

Aplicaciones de la distribución multinomial. Cálculo con R

ENUNCIADO
En un grupo de diez profesores hay tres de inglés, cuatro de matemáticas, dos de lengua y uno de física. Se selecciona al azar un comité de cuatro profesores. Calcúlese la probabilidad de que el comité esté formado por dos profesores de matemáticas, uno de física y uno de lengua

SOLUCIÓN.

Éste es un caso de distribución multinomial $$P(x_1,x_2,x_3,x_4)=\dfrac{(x_1+x_2+x_3+x_4)!}{x_{1}!\,x_{2}!\,x_{3}!\,x_{4}!}\,p_{1}^{x_1}\,p_{2}^{x_2}\,p_{3}^{x_3}\,p_{4}^{x_4}$$ donde:
|---------------------------------------|
|probabilidad de elegir un profesor de: | 
|---------------------------------------|
|inglés | matemáticas | lengua | física |
|---------------------------------------|
|  3/10 |    4/10     |  2/10  |  1/10  |
|---------------------------------------|

|---------------------------------------|
|integrantes de la comisión:            | 
|---------------------------------------|
|inglés | matemáticas | lengua | física |
|---------------------------------------|
|  0    |    2        |    1  |    1    |
|---------------------------------------|

Así pues debemos calcular $$P(0,2,1,1)=\dfrac{(0+2+1+1)!}{0!\cdot 2!\cdot 1!\cdot 1!}\cdot (3/10)^{0}\cdot (2/10)^{2}\cdot (1/10)^{1}\cdot (1/10)^{1}$$

A modo de práctica de aprendizaje de la herramienta R, vamos a realizar el cálculo con dicho software matemático orientado a la probabilidad y la estadística ( si bien también al cálculo numérico y a la programación científica ). La siguiente imagen es una captura de pantalla de la sesión de trabajo en el entorno RCommander de R, en la que aparecen las instrucciones que hemos dado para calcular la probabilidad pedida:

y hemos obtenido el siguiente resultado: $$P(0,2,1,1)=0,0384$$

$\square$