\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{url}

\begin{document}
\title{Implementación de Análisis de Correspondencias}
\maketitle
\section{Objetivo}
Hemos visto que el paquete \texttt{ca} de \texttt{R} produce
un \texttt{summary} con información sobre las dos primeras dimensiones,
pero no más allá.

Se pretende obtener la misma información para dimensiones a partir de
la tercera.
\section{Datos}
Consigue algunos datos para probar las fórmulas.
Puede ser un ejemplo de clase o alguno de los distribuidos en R,
como los que se presentan a continuación.
\subsection{Color de pelo y de ojos}
\begin{verbatim}
Kij = apply (HairEyeColor, 1:2, sum)
\end{verbatim}
\subsection{Hundimiento del \emph{Titanic}}
\begin{verbatim}
D = data.frame(Titanic)          
i = function (cadena) substring(cadena,1,1) # inicial
D$bio = paste0 (i(D$Sex), i(D$Age), i(D$Survived))
Kij = table (D [rep(1:nrow(D),D$Freq), c("Class", "bio")])
class (Kij) = "matrix" # necesario sólo para MASS::corresp
\end{verbatim}
\subsection{Alojamiento en Copenhague}
\begin{verbatim}
Kij = xtabs (Freq ~ abbreviate(paste(Sat,Infl,Cont)) + Type,
             MASS::housing)
\end{verbatim}
\section{Solución 1: modificar el código fuente de \texttt{ca}}
\begin{enumerate}
\item Averiguar la clase del objeto que contiene la información del análisis de correspondencias.
\begin{verbatim}
library (ca) ; a <- ca (Kij) ; class (a)
\end{verbatim}
\item Averiguar la función (método) que produce el \texttt{summary}.
  Su nombre tendrá la forma \texttt{summary.}\emph{clase}.
\begin{verbatim}
methods (summary)
\end{verbatim}
\item Obtener su código fuente.
\begin{verbatim}
getAnywhere (nombreDelMétodo)
\end{verbatim}
\item Identificar en el código fuente dónde se limita el número de dimensiones a dos.
\item Definir una nueva función a partir de ese código fuente, modificándolo para
  que permita más dimensiones.
\end{enumerate}
\section{Solución 2: implementar el análisis de correspondencias}
\begin{enumerate}
\item Ten en cuenta las fórmulas de 
  \url{https://bellman.ciencias.uniovi.es/~carleos/master/manadine/curso1/AnalisisDatos1/}\\
  \url{5-correspondencias/teoria/correspondencias.pdf}
\item Considera las capacidades de cálculo matricial de R:
  \begin{itemize}
  \item \verb+%*%+ para producto matricial.
  \item \texttt{apply} para aplicar una función por filas o columnas.
  \item \texttt{diag} para extraer la diagonal de una matriz o
    crear una matriz diagonal a partir de un vector.
  \item Pre o posmultiplicar por una matriz diagonal equivale a
    multiplicar (elemento a elemento) filas o columnas por el vector
    diagonal.
  \item \texttt{t} para trasponer una matriz.
  \end{itemize}
\item Obtén la matriz $T=X^tX$ (página 5).
\item La información del \texttt{summary} contiene
  \begin{itemize}
  \item inercias principales (autovalores)
  \item por cada fila y cada columna, en milésimas:
    \begin{itemize}
    \item masa relativa
    \item calidad de la reconsttrucción
    \item inercia relativa
    \item por cada dimensión:
      \begin{itemize}
      \item coordenadas
      \item contribución relativa (a la calidad)
      \item contribución absoluta (a la inercia)
      \end{itemize}
    \end{itemize}
  \end{itemize}
\item Autovalores.
  \begin{itemize}
  \item Son los $\lambda_\alpha$
  \item Se obtienen mediante la función \texttt{eigen}
    aplicada a la matriz $T$.
  \item Los acumulados pueden calcularse mediante \texttt{cumsum}.
\end{itemize}
\item Masas relativas: las frecuencias relativas marginales, $f_{i\cdot}$ y $f_{\cdot j}$, en milésimas.
\item Calidad de la reconstrucción en los ejes representados:
  \begin{itemize}
  \item Suma de las contribuciones relativas en los ejes $\alpha$:
    \texttt{qlt} = $\sum_{\alpha}\mbox{Cr}_i(\alpha)$
  \end{itemize}
\item Inercias relativas, en milésimas: es la parte de la variabilidad total debida al punto.
  Puede calcularse a partir de $\psi$ y $\varphi$ o de las contribuciones absolutas
  sumando para todo $\alpha=1,\dots,\min\{n,p\}-1$:
  $$
  \mbox{\texttt{inr}}_i=
  \frac{\sum f_{i\cdot}\psi_{\alpha i}}{\sum\lambda_\alpha}=
  \frac{\sum \lambda_{\alpha}\mbox{Ca}_\alpha(i)}{\sum\lambda_\alpha}
  $$
\item Coordenadas en el eje $\alpha$, en milésimas:
  \begin{itemize}
  \item para filas, $\psi_{\alpha i}$
  \item para columnas, $\varphi_{\alpha j}$
  \end{itemize}
  Ojo, porque pueden tener el signo cambiado.
\item Contribuciones relativas, en milésimas:
  \begin{itemize}
  \item Se calculan a partir de las coordenadas $\psi$ (para filas) y $\varphi$ para columnas.
  \item Para el punto fila $i$ sobre el eje $\alpha$:
    $$
    \mbox{Cr}_i=\frac{\psi_{\alpha i}^2} {\sum_{\beta}\psi_{\beta i}^2}
    $$
  \item Para el punto columna $j$ sobre el eje $\alpha$:
    $$
    \mbox{Cr}_j=\frac{\varphi_{\alpha j}^2} {\sum_{\beta}\varphi_{\beta j}^2}
    $$
  \end{itemize}
\item Contribuciones absolutas, en milésimas:
  \begin{itemize}
  \item Se calculan a partir de las coordenadas $\psi$ (para filas) y $\varphi$ para columnas.
  \item Para el punto fila $i$ sobre el eje $\alpha$:
    $$
    \mbox{Ca}_i=\frac{f_{i\cdot}\psi_{\alpha i}^2} {\lambda_\alpha}
    $$
  \item Para el punto columna $j$ sobre el eje $\alpha$:
    $$
    \mbox{Ca}_j=\frac{f_{\cdot j}\varphi_{\alpha j}^2} {\lambda_\alpha}
    $$
  \end{itemize}
\end{enumerate}
\end{document}
