Crear una matriz de proporciones para datos categóricos multivariados.
Supongamos que tengo estos datos simulados a partir del siguiente código R:
library(RNGforGPD)
set.seed(1)
sample.size = 10; no.gpois = 3
lambda.vec = c(-0.2, 0.2, -0.3); theta.vec = c(1, 3, 4)
M = c(0.352, 0.265, 0.342); N = diag(3); N[lower.tri(N)] = M
TV = N + t(N); diag(TV) = 1
cstar = CmatStarGpois(TV, theta.vec, lambda.vec, verbose = TRUE)
data = GenMVGpois(sample.size, no.gpois, cstar, theta.vec, lambda.vec, details = FALSE)
> prop.table(table(data[,1]))
0 1 2
0.3 0.4 0.3
> prop.table(table(data[,2]))
2 3 6 8 10
0.2 0.4 0.1 0.2 0.1
> prop.table(table(data[,3]))
2 3 4 5 6
0.2 0.3 0.1 0.3 0.1
> table(data)
data
0 1 2 3 4 5 6 8 10
3 4 7 7 1 3 2 2 1
Me gustaría crear una matriz de proporciones para cada una de las tres variables categóricas. Si falta una categoría en una columna específica, se identificará como 0.
Cat | X1 | X2 | X3 |
---|---|---|---|
0 | 0.3 | 0.0 | 0.0 |
1 | 0.4 | 0.0 | 0.0 |
2 | 0.3 | 0.2 | 0.2 |
3 | 0.0 | 0.4 | 0.3 |
4 | 0.0 | 0.0 | 0.1 |
5 | 0.0 | 0.0 | 0.3 |
6 | 0.0 | 0.1 | 0.1 |
8 | 0.0 | 0.2 | 0.0 |
10 | 0.0 | 0.1 | 0.0 |
Este es el objeto data
:
structure(c(1, 0, 2, 1, 0, 0, 1, 2, 2, 1, 3, 8, 3, 3, 2, 2, 6,
3, 10, 8, 2, 5, 2, 6, 3, 3, 4, 3, 5, 5), .Dim = c(10L, 3L), .Dimnames = list(
NULL, NULL))
davy.ai
Para crear una matriz de proporciones para cada una de las tres variables categóricas, podemos usar la función
prop.table()
a lo largo de las columnas del objetodata
, y luego convertir la tabla resultante en una matriz utilizando la funciónas.matrix()
. Aquí está el código:Las matrices de proporciones resultantes son:
Para combinar estas matrices de proporciones en una sola tabla, podemos usar la función
cbind()
:La tabla de proporciones resultante es: