Foros del Web » Programando para Internet » PHP »

"Encuesta" . . .

Estas en el tema de "Encuesta" . . . en el foro de PHP en Foros del Web. Bueno el titulo del post pueda dar confusion, puesto que al fin y al cabo no creo que se trate de una pregunta mas sobre ...
  #1 (permalink)  
Antiguo 18/11/2008, 17:55
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 11 meses
Puntos: 0
Pregunta "Encuesta" . . .

Bueno el titulo del post pueda dar confusion, puesto que al fin y al cabo no creo que se trate de una pregunta mas sobre encuestas en php.
He buscado en los FAQ's y en google. . . en todo donde he podido, sin embargo no he podido encontrar esto que busco, ni una idea de como hacerlo que es lo que vengo a consultar aqui.

El caso es que yo tengo unas preguntas, 3 por ejemplo, y al igual que en una encuesta unas respuestas, 4, con unos input radio.
Lo que quisiera hacer (ya lo consegui pero no de la forma que quiero) es que segun se den esas respuestas (recordemos 3) se de un resultado (1, 2, 3 o 4). Hasta aqui no he tenido problema en conseguir esto, el problema es
¿como debo hacerlo para que tengan la misma probabilidad de salir 1,2,3 o 4?

No pido un codigo con una idea me servira.

Muchas gracias por la atención, un saludo a todos.
  #2 (permalink)  
Antiguo 18/11/2008, 21:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: "Encuesta" . . .

No entiendo muy bien lo que quieres hacer, podrías explicarte un poco más?

Saludos.
  #3 (permalink)  
Antiguo 19/11/2008, 07:34
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: "Encuesta" . . .

Quizas me explique un poco mal, complicandolo demasiado.
Bueno yo tengo echo una especie de 'test', que consta de 3 preguntas con cuatro respuestas cada una (con input rado al estilo encuesta).
Pregunta 1
· respuesta
· respuesta
· respuesta
· respuesta

Pregunta 2 . . .

Cuando alguien rellene todo el formulario (3 preguntas con tres respuestas).
Se le de el resultado: resultado1, resultado2, resultado3, resultado4.
Ya consegui hacer esto, lo que quiero esque exista la misma posibilidad de salir el resultado 1 que el 4 (y que el 3 y el 2 claro).

Hasta ahora yo le daba un valor numerico a las respuestas y después dependiendo del total daba un resultado, pero no estoy seguro de que asi tenga la misma probabilidad de sacar un resultado u otro.

Espero haberme explicado mejor, me reitero no necesito un script solo si teneis alguna idea como se puede hacer, con eso me basta, no tengo problema en 'traducirlo' a php.

Un saludo.
  #4 (permalink)  
Antiguo 19/11/2008, 07:47
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: "Encuesta" . . .

Los resultados son al azar???
  #5 (permalink)  
Antiguo 19/11/2008, 08:10
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: "Encuesta" . . .

Con el mensaje inicial apenas entendí lo que preguntabas... pero es que ahora tampoco me he aclarado.

Entiendo que tienes tres preguntas, y que para cada pregunta hay 4 opciones. El usuario responde a las tres preguntas seleccionando una opción (de las 4 disponibles) en cada una. OK. Y ahora me pregunto.... ¿Qué son esos 4 resultados que comentas? ¿Guardan alguna relación con las preguntas... o las opciones para cada una de esas preguntas?

Un saludo.
  #6 (permalink)  
Antiguo 19/11/2008, 08:45
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: "Encuesta" . . .

Jeje si quizas me cueste explicarme un poco.
Bueno pues los resutados no son al azar.
Cada una de las respuestas simbolizaria a un resultado, por poner un ejemplo:
Pregunta 1
·Bien
·Regular
·Mal
·deficiente

Pregunta 2
·Bien
·Regular
·Mal
·deficiente

Pregunta 3
·Bien
·Regular
·Mal
·deficiente


Resultados que se puedan dar: Bien, Regular, Mal, Deficiente.(es un ejemplo)

Lo que creo o donde encuentro el problema es hacerlo de forma que tenga la misma probabilidad de salir bien que mal que regular o deficiente.

Un saludo, espero haberme aora ya explicado bien, gracias por la atencion.
  #7 (permalink)  
Antiguo 19/11/2008, 09:06
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: "Encuesta" . . .

Sospecho que lo que tú llamas 'probabilidad' no es más que una forma equivocada de referirse a los pesos de cada una de las cuatro evaluaciones finales, es decir, que del conjunto total de formas posibles de responder la encuesta, cada "resultado" se corresponda con un subconjunto de cardinalidad idéntico al resto.

Si fuese así...

1) Tienes 64 formas distintas (que llamaré "resultados") de responder la encuesta (4 x 4 x 4)
2) Tienes 4 de "tus resultados" (prefiero llamarlos evaluaciones para no liarme)
3) Para que cada una de esas 4 evaluaciones se corresponda con el 25% del total de resultados... es obvio que debes asignarle 16 resultados (64 / 4).
4) Simplemente te queda definir qué 16 resultados de los 64 posibles corresponde a cada evaluación.

Pero no veo otra forma de resolverlo que ... asignando a huevo. Porque todo depende de qué valoración hagas tú. Por ejemplo, ¿si las tres respuestas fuesen: bien-bien-deficiente, el resultado final sería "bueno" o "regular" o cuál?

PD/ ¿Y PHP dónde entra en todo esto? :)
  #8 (permalink)  
Antiguo 19/11/2008, 09:31
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: "Encuesta" . . .

Bueno creo que la forma mas simple para todos de aclarar esto es poner el script que yo tengo (echo por mi), que en un principio funciona correctamente.

Hago un formulaio con la estructura que puse antes de pregunta y respuesta, Le doy a cada respuesta un valor, respuesta1(5), respuesta2(3), respuesta3(1) y respuesta4(0).

Y después lo paso por php para sacar el resultado:
si el las respuestas suman 3 o menos se da 'muy mal' (por ejemplo)
si da mas de 3 y menos o igual a 7 de pone 'mal'
si suma 8 o mas hasta 11 (este incluido) se da como resultado 'bien'
si suma mas de 12 el resultado en 'muy bien'.

El problema que lo de bien, mal, muy bien . . . es un ejemplo.
Lo que quiero esque sea igual de posible sacar (en este ejmplo): muy mal, mal, bien, muy bien.

Un saludo y gracias por las respuestas.
  #9 (permalink)  
Antiguo 19/11/2008, 10:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: "Encuesta" . . .

Sigo sin entender claramente lo que deseas, o sea si quieres que tengas la misma posibilidad, entonces le tienes que dar el mismo peso a las preguntas, ya que como tu dices no son al azar y son escogidas por los usuarios, de esa forma no hay posibilidad ni forma de garantizar la misma probabilidad, ya que depende de una entrada variable.

Saludos.
  #10 (permalink)  
Antiguo 19/11/2008, 11:14
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: "Encuesta" . . .

Ok.
De todas formas como has dicho que no lo entendiste bien y como yo tambien pienso que no lo explique bien voy a intentarlo otra vez.

Uso este formulario para dibidir los usuarios que entran en mi web en grupos.

El formulario tiene la 'estructura' que ya dije antes, tres preguntas con cuatro respuestas cada una, solo se puede escojer una respuesta por cada pregunta.

Cada respuesta la asocio con un grupo ("los usuarios no saben que las respustas estan asociadas").

Y al final se da el grupo al que pertenece (funciona como dije en mi anterior mensaje dandole un valor a cada respuesta y sumandolo).

He observado que muchos usuarios estan perteneciendo a un grupo, por lo que creo que el sistema no es "justo". Y estoy buscando la forma de arreglar esto . . .
  #11 (permalink)  
Antiguo 19/11/2008, 11:26
Avatar de bakemono  
Fecha de Ingreso: noviembre-2008
Mensajes: 3
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: "Encuesta" . . .

bueno mi estimado salathar, primero que nada debes de planetar bien la pregunta, porque el principio si estubo fatal no se te entiende nada, ahora mira yo estoy de acuerdo con el consejo de deschamps porque es ovio si quieres sacar la probabilidad equitativa de todas las posibles respuestas por igual asignales un valor del 25 y listo aunque es inconsiste en el caso del ejemplo que pusiste mejor seria que asignas un valor a esas variables es decir bien=3pts, regular=2pts, mal=1pts, deficiente=0 asi valdra la pena tu encuesta, claro esta en base al ejemplo que pusiste.

saludos....

Última edición por bakemono; 19/11/2008 a las 11:28 Razón: faltas de ortografia
  #12 (permalink)  
Antiguo 19/11/2008, 11:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: "Encuesta" . . .

Mmm ok ya entiendo mucho mejor, en ese caso aun asi aplica lo que te digo, como la entrada es muy variable, es dificil que puedas hacer algo equitativo a menos que les des el mismo peso a todas las preguntas y entonces evalues por tamaño del grupo a que grupo pertenecen.
  #13 (permalink)  
Antiguo 19/11/2008, 11:32
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: "Encuesta" . . .

Siento haberles liado, admito que me haya explicado mal, hasta yo mismo me llegue a liar, jeje . . .
Gracias por las respuestas y por la ayuda.

Un saludo a todos.

PD: voy a llevar a cabo las conclusiones que saque de este post.
  #14 (permalink)  
Antiguo 19/11/2008, 23:02
 
Fecha de Ingreso: noviembre-2008
Mensajes: 279
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: "Encuesta" . . .

bueno la verdad yo te entiendo pero no se la respuesta te digo que te entiendo por que yo kiero hacer esto y tampoco se como se hace mira

escoja los parametros que dese ( selecione de 1 a 20 parametros de la lista)

0 1
0 2
0 3
0 4
....

se supones que donde esta el 0 si le dan click selecionan si le dan otro clic y esta seleccionado lo quita o des seleciona me explico

esas opciones de la 1 a la 4 estan en una base de datos mysql la idea es imprimirlas en pantalla con la opcion de escojer; luego despues de escojida la opcion que se la guarde directamente a la tabla que esta en el nombre de la persona por ejemplo
asi kedaria la tabla

roberto/1/2/4

un ejemplo
se guardaria entonces el ID de la respuesta no toda la respuesta por que es un lio y muy pesado cuando ayan mas personas
  #15 (permalink)  
Antiguo 20/11/2008, 04:34
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: "Encuesta" . . .

Bueno creo que puedo ayudarte.
No se donde tienes el problema, o si ya tienes algo hecho, pero si las "respuestas" las tienes en una tabla, pues haces una consulta a la base de datos, muestras las 20 "respuestas", y les das en el fomulario el valor de la id, para asi guardarlo en otra tabla, la de usuarios.

Yo creo segun entendi que la cosa seria asi.

Un saludo.
  #16 (permalink)  
Antiguo 20/11/2008, 04:45
Avatar de Shagraarath  
Fecha de Ingreso: agosto-2008
Mensajes: 151
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: "Encuesta" . . .

Una encuesta es un fraude si el resultado es al azar :S
  #17 (permalink)  
Antiguo 20/11/2008, 06:13
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: "Encuesta" . . .

Si lo dices por mi post, yo no intento hacer una encuesta, si es cierto que llamo al post asi, pero porque para hacer eso me base en una encuesta.
Y en un principio busque como una especie de varias encuestas en un solo formulario para darme el resultado final.
Pero no intento hacer ninguna encuesta, eso llega o deberia llegar a cabeza de todos que una encuesta al azar es un fraude.
Un saludo.
  #18 (permalink)  
Antiguo 21/11/2008, 04:03
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: "Encuesta" . . .

Buenas,

Ahora que tengo algo más de tiempo, te amplío un poco la respuesta que te di antes:

Cita:
Iniciado por Salathar Ver Mensaje
(..) al final se da el grupo al que pertenece (funciona como dije en mi anterior mensaje dandole un valor a cada respuesta y sumandolo). He observado que muchos usuarios estan perteneciendo a un grupo, por lo que creo que el sistema no es "justo". (..)
Como ya te había comentado antes, no puedes hacer un reparto "justo" con unos valores discretos. Según tu planteamiento, el total de posibles respuestas que obtienes se corresponde con las variaciones con repetición de 4 elementos, tomados de 3 en 3. Como ya te dije, esto da un total de 64 posibles situaciones finales. Para que el "reparto" fuese equitativo deberías asignar a cada resultado final (el grupo de destino) una cantidad idéntica de situaciones (16 en este caso, ya que son 4 grupos).

El caso es que, asignando puntuaciones a cada opción de las preguntas, no obtienes 64 resultados "distintos" sino que estableces "clases de puntuaciones", y esas clases sólo pueden dividirse de forma arbitraria... o como dije antes, "a huevo". Para explicarme mejor, te detallo con código la idea:

Código PHP:
$preguntas 3;
$opciones = array( 531);

function 
cuentaVarR($opc$r$p, &$arr) {
    if (
$r == 0) {
        isset(
$arr[$p]) ? $arr[$p]++ : $arr[$p] = 1;
    } else {
        foreach(
$opc as $o)
            
cuentaVarR($opc$r-1$p+$o$arr);
    }

En ese código, defino el número de preguntas totales (3 en tu caso) y el array para las opciones por pregunta donde se incluye la puntuación para cada opción (el número de opciones lo determina el número de elementos del array). En tu caso, son 4 opciones, con puntuación de 5,3,1 y 0 respectivamente. La función cuentaVarR es una función recursiva con la que literalmente recorro todas las variaciones con repetición para N elementos (el total de elementos definidos en $opciones) tomados de R en R (el número de preguntas) y para cada variación sumo la puntuación que le corresponde. Posteriormente, clasifico estas puntuaciones, generando un array donde el índice se corresponde con los puntos totales y el valor de ese elemento se corresponde con la cantidad de variaciones que suman esa puntuación.

Si llamas a la función e imprimes el resultado:

Código PHP:
cuentaVarR($opciones$preguntas0$prueba);
ksort($prueba);
print_r($prueba); 
... obtienes:

Código:
Array
(
    [15] => 1
    [13] => 3
    [11] => 6
    [10] => 3
    [9] => 7
    [8] => 6
    [7] => 6
    [6] => 9
    [5] => 6
    [4] => 6
    [3] => 4
    [2] => 3
    [1] => 3
    [0] => 1
)
... donde puedes ver todos los casos posibles. Por ejemplo, para obtener una puntuación final de 9 hay 7 maneras distintas de responder la "encuesta" (el elemento con índice 9 tiene como valor 7). Con esto, y atendiendo al reparto de grupos que definías en un mensaje anterior:

Cita:
Iniciado por Salathar Ver Mensaje
(..)
si el las respuestas suman 3 o menos se da 'muy mal' (por ejemplo)
si da mas de 3 y menos o igual a 7 de pone 'mal'
si suma 8 o mas hasta 11 (este incluido) se da como resultado 'bien'
si suma mas de 12 el resultado en 'muy bien'.
(..)
... estás repartiendo los 64 casos de esta manera: 11 - 27 - 22 - 4, con una desproporción evidente entre los distintos grupos.
Nota: ten en cuenta que con las puntuaciones que asignas es imposible obtener puntuaciones finales de 12 y 14.

Cita:
(..) Y estoy buscando la forma de arreglar esto (..)
Si no quieres cambiar de planteamiento para definir el reparto... las opciones pasan por cambiar las puntuaciones, aumentar el número de pregunas o de opciones para cada una... o de todo un poco. Pero nunca vas a conseguir un 25% exacto con este procedimiento.

Un saludo.

Última edición por Deschamps; 21/11/2008 a las 05:20 Razón: correcciones
  #19 (permalink)  
Antiguo 21/11/2008, 12:40
 
Fecha de Ingreso: noviembre-2008
Mensajes: 279
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: "Encuesta" . . .

bueno en si lo que el quiere hacer y yo tiene la estructura de una encuesta pero el resultado del uso es diferente a tal por ejeplo yo kiero hacer una lista donde tines la oportunidad de elegir habilidades para un personaje de rol play las escoge de una lista y las agrega al la tabla del personaje pero solo las ID o Keys de la tabla no toda la tabla
  #20 (permalink)  
Antiguo 21/11/2008, 20:47
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: "Encuesta" . . .

Deschamps, muchas gracias.
Te has molestado mucho en tu respuesta, y te has explicado bien, quizas en el otro mensaje no lo entendi bien. Muchas gracias, con eso me servira yo creo para igualar la "probabilidad" (creo que me entiendes).

Un saludo, estoy agradecido.
  #21 (permalink)  
Antiguo 22/11/2008, 07:27
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: "Encuesta" . . .

Perdonen el doble post.
Bueno como ya habia dicho antes gracias por la respuesta tan completa y detallada. Con eso me di cuenta de lo despropocionado de mi sistema.
Habria otra forma de hacer que fuese mas igualado, es decir dandole quizas otro valor a los input, o algo, pero diferente a esto. ¿Se les ocurre algo?

Un saludo a todos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 3 personas




La zona horaria es GMT -6. Ahora son las 03:41.