From 5b438d208ca3f0fe0f015cecb217b2180cb0f068 Mon Sep 17 00:00:00 2001 From: Alexander Rind <1217527+alex-rind@users.noreply.github.com> Date: Wed, 2 Nov 2022 18:47:10 +0100 Subject: [PATCH] korr. Beziehungsgewicht & korr. Dichte=mittlerer Degree Table 1 und CSV #55 --- src/components/StatisticsTable.vue | 37 ++++++++++++++++++++++++++++++ src/data/NetworkAnalysis.ts | 18 +++++++++++++++ src/data/statisticsCSV.ts | 31 +++++++++++++++++++++++++ 3 files changed, 86 insertions(+) diff --git a/src/components/StatisticsTable.vue b/src/components/StatisticsTable.vue index b28a297..dee178e 100644 --- a/src/components/StatisticsTable.vue +++ b/src/components/StatisticsTable.vue @@ -27,6 +27,21 @@ {{ naehenSum }} + + + korrigiertes Beziehungsgewicht + + + {{ + (naehenSum / networkSize).toLocaleString(undefined, { + minimumFractionDigits: 3, + maximumFractionDigits: 3, + }) + }} + + + + + Durchschnittlicher Degree + + + {{ + averageDegree.toLocaleString(undefined, { + minimumFractionDigits: 3, + maximumFractionDigits: 3, + }) + }} + + { + const { alterConnectable, intConnCount } = networkAnalysis.value; + return calculateAverageDegree(alterConnectable, intConnCount); + }); + const stars = computed(() => { const alteri = networkAnalysis.value.stars; if (alteri.length > 0 && networkAnalysis.value.maxDegree > 0) { @@ -176,6 +212,7 @@ export default defineComponent({ networkSize: computed(() => networkAnalysis.value.alterConnected), naehenSum: computed(() => networkAnalysis.value.naehenSum), density, + averageDegree, stars, isolated: makeComputedAlterGroup("isolated"), alterZeroEdge: makeComputedAlterGroup("alterZeroEdge"), diff --git a/src/data/NetworkAnalysis.ts b/src/data/NetworkAnalysis.ts index 60e9116..5e7f0da 100644 --- a/src/data/NetworkAnalysis.ts +++ b/src/data/NetworkAnalysis.ts @@ -194,6 +194,24 @@ export function calculateDensity( } } +/** + * + * Based on formula by Joseph Richter Mackensteiner (20-Mar-2022) + * @param alterCount + * @param connectionsCount + * @returns + */ +export function calculateAverageDegree( + alterCount: number, + connectionsCount: number +): number { + if (alterCount < 2) { + return 0.0; + } else { + return (2.0 * connectionsCount) / alterCount; + } +} + // export function calculateExternalDensity( // alterCount: number, // externalAlterCount: number, diff --git a/src/data/statisticsCSV.ts b/src/data/statisticsCSV.ts index 11825ab..f653a72 100644 --- a/src/data/statisticsCSV.ts +++ b/src/data/statisticsCSV.ts @@ -4,6 +4,7 @@ import { } from "@/data/AlterCategories"; import { analyseNWKbyCategory, + calculateAverageDegree, calculateDensity, getOrInit, NetworkAnalysis, @@ -42,6 +43,19 @@ export function statisticsCSV( output += SEP + getOrInit(networkAnalysis, label).naehenSum.toFixed(0); } + output += "\nkorrigiertes Beziehungsgewicht"; + for (const label of categorization.categories) { + output += + SEP + + ( + getOrInit(networkAnalysis, label).naehenSum / + getOrInit(networkAnalysis, label).alterConnected + ).toLocaleString(undefined, { + minimumFractionDigits: 3, + maximumFractionDigits: 3, + }); + } + output += "\nDichte der Kategorie"; for (const label of categorization.categories) { const { alterConnectable, intConnCount } = getOrInit( @@ -59,6 +73,23 @@ export function statisticsCSV( ); } + output += "\nDurchschnittlicher Degree"; + for (const label of categorization.categories) { + const { alterConnectable, intConnCount } = getOrInit( + networkAnalysis, + label + ); + output += + SEP + + calculateAverageDegree(alterConnectable, intConnCount).toLocaleString( + undefined, + { + minimumFractionDigits: 3, + maximumFractionDigits: 3, + } + ); + } + output += "\nStar(s)"; output += categorization.categories .map((label) => {