Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2013:alunos:trabalho_final:tapardo:start

Tamara Pardo

fotos_spa_002.jpg

Graduada em Antropología Física pela Universidad do Chile, com especialização em Bioarqueologia. Depois de trabalhar em varias pesquisas com osteologia humana pre-hispánica no Deserto de Atacama, tive interesse de desenvolver uma pesquisa com ênfase em Ecologia Humana com comunidades atacameñas que ainda mantém práticas tradicionais nos seus estilos de vida.

Atualmente faço meu Mestrado no Departamento de Ecologia no Instituto de Biociências da USP. A pesquisa que estou desenvolvendo estuda as mudanças dos padrões alimentares em comunidades indígenas do Deserto de Atacama, e sua relação com o status nutricional.

Meu interesse na disciplina é aprendizagem de uma poderosa ferramenta para analisar uma grande quantidade de dados, tanto em Bioarqueologia, quanto em Ecologia Humana.

PROPOSTA DE FUNÇÃO

Análises de dados osteológicos de populações prehispánicas

Fiz uma pesquisa em Bioarqueologia no Chile que coleto uma grande quantidade de dados de mais de 180 exemplares esqueletais pre-hispánicos. O objetivo foi analisar comparativamente indicadores osteológicos de dieta e estresse ambiental em populações de duas áreas ecológicas diferenciadas na região do Deserto de Atacama.

PROPOSTA A

Meu plano A é criar uma função no R que análise os dados de dieta (caries e desgaste oclusal) de acordo com três agrupamentos: população total, população por sexo, e população por idade, calculando as frequencias de caries e a media do grau de desgaste oclusal em cada amostra. A função deverá retornar como output uma tabela com os resultados de cada marcador de dieta de acordo aos agrupamentos mencionados acima.

O input: Uma planilha com os dados dos marcadores de dieta (caries e desgaste oclusa) especificando em cada coluna 1) área de procedência, 2) nome do sitio arqueológico, 3) identificação do individuo (número de inventario por exemplo), 3) sexo, 4) idade, 5) marcador (caries ou desgaste oclusal) e 6) peças dentais. Cada linha desta planilha corresponde a um individuo.

O output: Tabelas como os resultados por indicador de acordo aos agrupamentos de população total e sexo por cada sitio arqueológico, e de acordo aos rangos de idade também por cada sitio arqueológico. População total, sexo e rango de idade seriam as colunas, e os sitios arqueológicos seriam as linhas dessas tabelas.

PROPOSTA B

Meu plano B seria realizar uma função no R que faz os mesmos comandos que o plano A só que com os indicadores de estresse ambiental.

Comentarios

Oi Tamara, o objetivo da funçao nao e fazer uma analise especifica e sim ter uma aplicaçao mais geral. Na sua proposta (ambas!) sao muito voltadas para os seus dados e as questoes metodologicas importantes sao apresentadas de maneira muito vaga, p.ex: “analisar os indicadores de acordo aos testes estatísticos adequados à natureza de cada variável”. Como uma funçao vai tomar essas decisoes? Veja as propostas que sugerimos como exemplo pelo forum:

http://bie5782.138098.n3.nabble.com/Exemplos-de-Projeto-td4025466.html

Vc. precisa repensar as propostas e retornar o mais rapido possivel para que possamos avaliar. Quando fizer nos avise por email (eu e monitores). — Alexandre Adalardo de Oliveira 2013/03/25 10:48


Prezado Professor, considerando seus comentarios deixe a proposta de função só analisando os dados mencionados com um output de resultados dos marcadores. O test estadístico para avaliar a significancia das diferencias seria feito depois ao criterio de cada usuario (pesquisador). Assim a função irá analisar os dados e representa-los em uma tablela com os resultados de frequencias (caries) e medias (desgaste oclusal). Retornei um e-mail para você.

EXERCÍCIOS

Exercício 1

F

Exercício 4

F

Exercício 5

F

Exercício 6

F

Exercício 7

F

Exercício 8

F

Trabalho Final

Código da Função

 dental.data.analysis = function(nome_arquivo, marcador) {
  dental.analysis <- read.table(nome_arquivo, header=TRUE, sep="\t", as.is=TRUE)
  
  data <- dental.analysis[which(dental.analysis$Marcador == marcador), 1:length(dental.analysis)]
  sitios <- unique(data$Sitio)
  idades <- sort(unique(data$Idade))
  
  # Analise do marcador Caries
  
  if (marcador=="Caries") {
    
    # Frequência do marcador na população total e por sexo em cada sitio
    
    freq.sitio <- matrix(nrow = length(sitios), ncol=3) # Cria uma matriz vazia com 3 colunas para conter as frequências da pupulação total, masculina e femenina
    as.data.frame(freq.sitio)
    colnames(freq.sitio) <- c("total","males","females")
    rownames(freq.sitio) <- sitios
    
    # Frequência do marcador por rango de idade em cada sitio
    
    freq.sitio.idade <- matrix(nrow = length(sitios), ncol= length(idades)) # Cria uma matriz vazia com uma coluna para cada rango de idade que contenha sua respectiva frequência
    as.data.frame(freq.sitio.idade)
    colnames(freq.sitio.idade) <- idades
    rownames(freq.sitio.idade) <- sitios
    
    for (i in c(1:length(sitios))) {
            data.sitio <- data[which(data$Sitio == sitios[i]), 1:length(data)]
            
            presence <- length(which(data.sitio[, 7:38] == "1"))
            absence <- length(which(data.sitio[, 7:38] == "0"))
            freq.sitio[i,1] <- presence / (presence + absence)
            
            # Realiza a analise para cada sexo
            for (j in c(1:2)) {
             
              presence <- length(which(data.sitio[which(data.sitio$Sexo==j), 7:38] == "1"))
              absence <- length(which(data.sitio[which(data.sitio$Sexo==j), 7:38] == "0"))
              freq.sitio[i,j+1] <- presence / (presence + absence)              
            }
            
            # Realiza a analise para cada rango de idade
            for (k in c(1:length(idades))) {
              
              cat("sitio =" , i, "; idade = ", k,"\n")
              if (length(which(data.sitio$Idade==idades[k])) ==  0) {
                freq.sitio.idade[i,k] = NA
              } else {
                presence <- length(which(data.sitio[which(data.sitio$Idade==idades[k]), 7:38] == "1"))
                absence <- length(which(data.sitio[which(data.sitio$Idade==idades[k]), 7:38] == "0"))
                freq.sitio.idade[i,k] <- presence / (presence + absence)              
              }
          }        
      }  
 }

  # Analise do marcador Desgaste
  
  if (marcador=="Desgaste") {

      # Media do marcador na população total e por sexo em cada sitio
      
      mean.sitio <- matrix(nrow = length(sitios), ncol=3) # Cria uma matriz vazia com 3 colunas para conter as medias da pupulacao total, masculina e femenina
      as.data.frame(mean.sitio)
      colnames(mean.sitio) <- c("total","males","females")
      rownames(mean.sitio) <- sitios
      
      # Media do marcador por rango de idade em cada sitio
      
      mean.sitio.idade <- matrix(nrow = length(sitios), ncol= length(idades)) # Cria uma matriz vazia com uma coluna para cada rango de idade
      as.data.frame(mean.sitio.idade)
      colnames(mean.sitio.idade) <- idades
      rownames(mean.sitio.idade) <- sitios
      
      for (i in c(1:length(sitios))) {
        data.sitio <- data[which(data$Sitio == sitios[i]), 1:length(data)]
        
        mean.sitio[i,1] <- mean(data.sitio[which(data.sitio > 0, arr.ind = TRUE)])
        
        # Realiza a analise para cada sexo
        
        for (j in c(1:2)) {
          
          mean.sitio [i,j+1] <- mean(data.sitio[which(data.sitio$Sexo==j > 0, arr.ind = TRUE)])         
        }
        
        # Realiza a analise para cada rango de idade
        for (k in c(1:length(idades))) {
          
          cat("sitio =" , i, "; idade = ", k,"\n")
          if (length(which(data.sitio$Idade==idades[k])) ==  0) {
            mean.sitio.idade[i,k] = NA
          } 
          else {
            mean.sitio.idade[i,k] <- mean(data.sitio[which(data.sitio$Idade==idades[k] > 0, arr.ind = TRUE)])
          }
       } 
    }   
  # Tabelas com resultados de todos os sitios analisados por população total e sexo, como também por rango de idade em cada marcador
      
  tabela_results <- list(freq.sitio, freq.sitio.idade, mean.sitio, mean.sitio.idade)
  return(tabela_results)
  } 

Help da Função

 
dental.data.analysis        package:unknown         R Documentation

Calcula a frequência de caries e a media de desgaste oclusal para analise de dieta em amostras esqueletais

Description:

A função retorna uma lista de tabelas (matrix) com as frequências de caries e media de desgaste oclusal em pecas dentais de amostras esqueletais procedentes de n sítios arqueológicos. As tabelas são apresentadas de acordo a dois critérios: população total e por sexo; população por rangos de idade, em cada marcador. 

Usage:
dental.data.analysis(nome_arquivo, marcador)
     
Arguments:

nome_arquivo	O nome do arquivo que contem os dados. 
marcador 	Marcador a ser analisado (Caries ou Desgaste).

Details:
O arquivo de dados precisa estar no formato texto delimitado por tabulações. A planilha deve conter colunas com as informações de registro (standard) de acordo as categorias hierárquicas de: 1) área de procedência, 2) nome do sitio arqueológico, 3) identificação do individuo (número de inventario, tumba, etc), 4) sexo, 5) idade, 6) marcador (caries ou desgaste oclusal) e 7) peças dentais. O registro de caries é em base à notação “1” = presença e “0” = ausência do marcador. A frequência é calcula de acordo a o total de pecas dentais com presença do marcador dividido pelo total de observações. O registro do grau de desgaste é em base aos valores ordinais de “1” até “8” (Buikstra & Ubelaker 1994). A media é calculada somando o valor registrado em cada peca dental dividido pelo total de observações. O registro do sexo foi em base à notação “1” = masculino e “2” = feminino. 

Value:

  comp1 : tabela (matrix) com a frequência da população total e por sexo do marcador Caries. 

  comp2 : tabela (matrix) com a frequência dos rangos de idade do marcador Caries. 

  Comp3 : tabela (matrix) com a media da população total e por sexo do marcador Desgaste. 

  Comp4 : tabela (matrix) com a media dos rangos de idade do marcador Desgaste. 

Warning:

O registro das 32 pecas dentais tem de ser depois de preencher a informação de registro standard (mencionado acima), pois a função começa a calcular a presencia e ausência de caries na data base a partir da coluna 7 até a coluna 38 da seguinte forma:  

presence <- length(which(data.sitio[, 7:38] == "1"))
absence <- length(which(data.sitio[, 7:38] == "0"))

Author(s):

Tamara Pardo
tapardo@ib.usp.br

References:

Buikstra, J. & Ubelaker, D. 1994. Standards for data collection from human skeletal remains. Arkansas: Arkansas Archaeological Survey.
http://www.statmethods.net/index.html
http://ecologia.ib.usp.br/bie5782/doku.php?id=bie5782:01_curso_atual:material:start#slide_das_aulas

Arquivo da Função

05_curso_antigo/r2013/alunos/trabalho_final/tapardo/start.txt · Última modificação: 2020/08/12 06:04 (edição externa)