Mean Cords Per Group


1. Mean Number of Cords Per Group

Mean Number of Cords Per Group, including pendant cords, subsidiary cords, top cords, etc.

2.Summary Charts:

Code
# Initialize plotly
import plotly
plotly.offline.init_notebook_mode(connected = False);

# Read in the Fieldmark and its associated dataframe and match dictionary
from fieldmark_khipu_summary import FieldmarkMeanCordsPerGroup
aFieldmark = FieldmarkMeanCordsPerGroup()
fieldmark_dataframe = aFieldmark.dataframes[0].dataframe
raw_match_dict = aFieldmark.raw_match_dict()
Code
import plotly.express as px
# Plot Matching khipu
matching_khipus = aFieldmark.matching_khipus() 
matching_values = [raw_match_dict[aKhipuName] for aKhipuName in matching_khipus]
matching_df =  pd.DataFrame(list(zip(matching_khipus, matching_values)), columns =['KhipuName', 'Value'])
fig = px.bar(matching_df, x='KhipuName', y='Value', labels={"KhipuName": "Khipu Name", "Value": "Mean Number of Cords Per Group", }, 
            title=f"Matching Khipu for Mean Number of Cords Per Group",  width=944, height=450).update_layout(showlegend=True).show()
UR142JC014KH0001MM008AS211AS209UR130UR1131UR189UR063UR277UR218UR206UR242UR078UR057UR151MM021UR191HP056UR278UR123UR1161UR1175UR241UR156AS157AS009UR282AS185UR010UR205UR147UR267BUR221AS133UR018HP025UR199UR095MM018JC003AS069UR084UR249UR1144UR245UR255HP015UR265UR166UR145UR1033CMM016UR050020406080100120
Matching Khipu for Mean Number of Cords Per GroupKhipu NameMean Number of Cords Per Group
Code
import pandas as pd
import utils_khipu as ukhipu

# Plot Significant khipu
significant_khipus = aFieldmark.significant_khipus()
significant_values = [raw_match_dict[aKhipuName] for aKhipuName in significant_khipus]
significant_df =  pd.DataFrame(list(zip(significant_khipus, significant_values)), columns =['KhipuName', 'Value'])
fig = px.bar(significant_df, x='KhipuName', y='Value', labels={"KhipuName": "Khipu Name", "Value": "Mean Number of Cords Per Group", },
             title=f"Significant Khipu  {ukhipu.pct_kfg_khipus(len(significant_khipus))}  for Mean Number of Cords Per Group", width=944, height=450).update_layout(showlegend=True).show()
UR142UR177UR216UR016JC014UR262AS094UR091KH0001AS213JC005UR104MM008UR113UR1146UR260AS211QU004UR058BUR279AS209AS017UR169UR213UR130UR1166UR111UR219UR1131UR005UR259UR207UR189UR238AS101 - Part 2UR1130UR063KH0350UR1123AS153UR277050100
Significant Khipu 122 (18.7%) for Mean Number of Cords Per GroupKhipu NameMean Number of Cords Per Group

3. Exploratory Data Analysis

The smoothness of the graph is perplexing. Despite the mean doing some artificial smoothing, one would expect a stair step function, not a smooth looking curve. Especially with low numbers of cords per group. Another way to measure might be the mode rather than the mean. Let’s do that.

Code
# Khipu Imports
import qollqa_chuspa as qc
from statistics import mode, mean
# Load khipus
khipu_dict, all_khipus = qc.fetch_khipus()

mode_cords_per_group = []
for aKhipu in all_khipus:
    cords_per_group = [aGroup.num_all_cords() for aGroup in aKhipu[:]]
    try:
        mode = mode(cords_per_group) if len(cords_per_group) > 0 else 0
    except:
        mode = round(mean(cords_per_group)) if len(cords_per_group) > 0 else 0
    mode_cords_per_group.append((aKhipu.name(), mode))
sorted_modes = sorted(mode_cords_per_group, key=lambda x: x[1], reverse=True)
mode_cords_per_group_df =  pd.DataFrame(sorted_modes, columns =['KhipuName', 'mode_cords_per_group'])
Code
fig = px.bar(mode_cords_per_group_df, x='KhipuName', y='mode_cords_per_group', labels={"KhipuName": "Khipu Name", "Value": "Mode Number of Cords Per Group", },
             title="Khipu for Mode Number of Cords Per Group", width=944, height=450).update_layout(showlegend=True).show()
UR142JC014KH0001UR194UR271AS026BUR130UR114UR1040UR238HP027HP034UR165UR1084UR137AS043UR012UR157AS085KH0197UR278AS212UR033UR253AS090/N2HP049UR082UR1033FAS160JC007UR071UR282AS044AS215FQU015UR060UR250UR1106AS069AS191HP043MM020UR062UR125UR199UR293UR1162AAS169UR008UR274AAS122UR080UR228HP050UR055020406080100120
Khipu for Mode Number of Cords Per GroupKhipu Namemode_cords_per_group

This seems more reasonable and expected.