GICUNED / GridFCM.practicum

GNU General Public License v3.0
0 stars 0 forks source link

RtC - desarrollo función para calcular consecuencias y retroalimentaciones #14

Open MaiteBenitez opened 8 months ago

MaiteBenitez commented 8 months ago

Nombre de la función cyr_index

Objetivo de la función Calcular consecuencias y retroalimentaciones para cada constructo

Parámetros de la función

Resultado de la función dataframe con las consecuencias y retroalimentaciones para cada constructo

Requisitos previos reflexionar sobre la estandarización, valorar la influencia de la centralidad

Comentarios

Pseudocódigo

extraer la wimp
alinear la wimp entorno al yo-ideal
extraer la matriz de pesos
sumar las filas para calcular las consecuencias
trasponer la matriz para multiplicar ambas 
sumar las filas del resultado de esta multiplicación para obtener las retroalimentaciones
componer el dataframe con las consecuencias y retroalimentaciones de cada constructo
devolver el dataframe
guillecalleja commented 7 months ago

@Asanfe @MaiteBenitez

Con respecto al tema de la estandarización, os propondría lo que comentábamos el otro día: añadirle un parámetro a la función que pueda tomar 3 valores:

std = 0 sería utilizar las piuntuaciones directas de la wimpgrid std = 1 sería utilizar puntuaciónes z (media = 0 y desviación típica = 1) std = 2 Min-Max, Escalar las puntuaciones a valores entre -1 y 1 ¿Tal vez sea la más reveladora al representar gráficamente?

Me encuentro con un par de obstáculos que tienen que ver con mi ineptitud : ) 1) Cómo probar mi código sin cargarme la función 2) ¿El usuario usuario sólo verá los 2 parámetros de la función si nosotros le ponemos

cyr_index <- function(wimp, std = 0) {
  # Alineamos el objeto 'wimp'
  wimp <- .align.wimp(wimp)

  # Estandarización según 'std'
  if (std == 1) {
    # Estandarización puntuación z
    wimp$scores$weights <- scale(wimp$scores$weights)
  } else if (std == 2) {
    # Estandarización Min-Max
    wimp$scores$weights <- (wimp$scores$weights - min(wimp$scores$weights)) /
                          (max(wimp$scores$weights) - min(wimp$scores$weights))
  }

  consequence <- apply(wimp$scores$weights, MARGIN = 1, FUN = sum)
  feedback <- wimp$scores$weights * t(wimp$scores$weights)
  feedback <- apply(feedback, MARGIN = 1, FUN = sum)
  result <- data.frame(feedback, consequence)
  return(result)
}

Os va porr email también, quería escribiros por aquí y me temo que esta no es la manera