Puedes utilizar el siguiente ejercicio solamente te solicitaría los créditos, el código a utilizar está en azul
Imagina que tienes dos variables clasificadas, la primera si una persona esta saludable o no, la segunda la cantidad de soda que consume al día(1 = un vaso, 2 = dos vasos, 3 = 3 vasos o más):
Salud = c("S","N","S","S","N","N","S","N","S","S")
soda = c(1,2,2,3,3,1,2,1,3,2)
t = table(Salud, soda) # Genera tabla de contingencias
t
soda
Salud 1 2 3
N 2 1 1
S 1 3 2
options(digits=2) # Limitamos a 2 decimales
prop.table(t) #La sumatoria de todos los valores de la tabla sera igual a 1
soda
Salud 1 2 3
N 0.2 0.1 0.1
S 0.1 0.3 0.2
Con esto podrías generar un histograma
barplot(t, beside = TRUE,
+ col = c("lightblue", "red"),
+ legend = rownames(Salud), ylim = c(0, 3))
title(main = "Salud de las personas segun cantidad de soda al día", font.main = 4)
Pero si te interesa obtener el valor de contingencia entonces te recomiendo lo siguiente
Primero construye una matriz con tus resultados, según te muestro:
saludable <- matrix(scan(), ncol=3, byrow=2) # Genera la canTidad de columnas y la cantidad de registros
saldrá el número uno, donde debeás anotar los valores del primer renglón completo de la tabla "t"
2 1 1 #En este caso, no pongas comas, ni nada, presiona enter
1 3 2 # Ahora anota los valores del segundo registro de la tabla t, ya no hay más, presiona enter
Te saldra un nuevo valor deberas presionar enter de nuevo y saldra la leyenda "Read 6 items"
cambia el nombre de título de las columnas si es necesario
colnames(t) <- c("Un vaso", "dos vasos", "tres o más vasos")
Ahora cambia el título de las observaciones o registros si es necesario
rownames(t) <- c("Sano", "Enfermo")
Ahora puedes ver como queda tu tabla tan solo con imprimirla
t #Por si las dudas así imprimes la matriz que generaste
Ahora si vamos a generar el coeficiente de contingencia
chisq.test(t)
El resultado que saldrá es parecido al siguiente:
Pearson's Chi-squared test
data: t
X-squared = 1.3, df = 2, p-value = 0.517
Warning message:
In chisq.test(t) : Chi-squared approximation may be incorrect
Recuerda que este resultado se utiliza para comprobar la hipótesis , así que utiliza la siguiente fórmula:
valor p 0= 0.517 > Alfa(0.05)
por lo cual en este caso demostraría que las personas sanas toman menos soda que las enfermas, teniendo en cuenta que esa sea la H0 y eliminando la H1.
Después obtenemos el tamaño de nuestra muestra que en este caso s obtiene con el siguiente código (aunque probablemente ya lo sepas).
sum(t)
La formula es la siguient
2 √. X2
N+X2
lo cual quiere decir que debes obtener la raiz cuadrada de Chi cuadrada entre la cantidad de la muestra más chi cuadrada, lo que se realiza en R de la siguiente manera
sqrt(1.3/(10+1.3))
A partir de cuyo resultado puedes decir si existe alguna relación entre tomar soda y estar sano o enfermo
En cuanto al grafico de sectores en 3d lo consigues de la siguinete manera:
Normal en sectores
datos.iris <- as.matrix(iris)
frecuencias.iris <- table(datos.iris)
pie(frecuencias.iris)
En 3d te recomiendo instalar plotrix con todas sus dependencias y después el código
library(plotrix)
pieval<-c(2,4,6,8)
pielabels<-c("We hate\n pies","We oppose\n pies", "We don't\n care","We just love pies")
# grab the radial positions of the labels
lp<-pie3D(pieval,radius=0.8,labels=pielabels,explode=0.1, labelrad=1.4,main="3D PIE OPINIONS")
O siguiendo el mismo ejemplo
library(plotrix)
pieSalud<-c(2,4,6,1)
pielabels<-c("No opina","La soda no hace nada","La soda cura","La soda enferma")
# grab the radial positions of the labels
lp<-pie3D(pieval,radius=0.8,labels=pielabels,explode=0.1, labelrad=1.4,main="Opiniones sobre salud y bebidas azucaradas")
o bien este otro
pieval<-c(2,1,1,1,3,2)
pielabels<- c("Sano 1 vaso","Sano 2 vasos", "sano 3 vasos", "Enfermo 1 vaso","Enfermo 2 vasos", "Enfermo 3 vasos")
pie3D(pieval,labels=pielabels,start=4,main="Salus según vasos de agua azucarada tomadas al día")
Muchas gracias por su ayuda, he podido calcular el coeficiente de contingencia sin problemas. En cambio, me es imposible hacer el gráfico de sectores 3D. A continuación escribo los comandos usados y los errores que ha dado R-commander.
library(plotrix)
ERROR: there is no package called 'plotrix'
require(plotrix)
[13] NOTA: Loading required package: plotrix
> pie3D(frec,labels = lbls, explode=0.2,col=rainbow(length(lbls)),main="Distribución porcentual de las provincias")
ERROR:
no se pudo encontrar la función "pie3D"
He probado a escribir
pie3D(example)
Error: no se pudo encontrar la función "pie3D"
¿Qué es lo que estoy haciendo mal?¿Por qué dice que no existe la función?
Además tengo una nueva duda de R-commander. Intento crear un nuevo conjunto de datos.
Son dos variables:
data.sexo obs5
2 20
2 3
1 19
1 10
2 14
1 1
2 11
1 2
2 13
2 9
1 1
2 16
2 10
1 6
1 1
cuando las introduzco en la tabla y le doy a aceptar aparece esto:
[4] NOTA: Error in read.table(textConnection(data), header = TRUE) :
duplicate 'row.names' are not allowed
No entiendo qué hago mal.Por favor, podría aclararme algo?
Mil gracias!
Hola!!Sí, conseguí hacer el 3Dpie!!Mira qué hermoso!!
Felicidades Me da gusto saber que funcionó, pero aún lo puedes hacer con el código que te escribi siempre y cuando bajes el paquete plotrix, lo cual puedes realizar escribiendo el siguiente código en tu consola:
install.packages("plotrix")