Git Product home page Git Product logo

moneca's People

Contributors

antongrau avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

etb

moneca's Issues

pheat-funktion

Fandt en funktion til at lave virkelig flotte heatmaps. Den bliver normalt brugt til at se på DNA-strenge, men den fungerer også fremragende til moneca, fordi den muliggør at man kan "underopdele" heatmappet, således at man i heatmappet kan skelne forskellige segmenter (eller lavere niveauer i et segment) fra hinanden. Her er et screendump, koden er lidt omstændig men er sådan set (nogenlunde) generaliserbar.

showcase.pdf

Mulig forkert udregning i segment.quality() - within mobilitiy (men heldigvis nærmest uden konsekvenser)

Skriver det her for at for at huske de forskellige ting vi skal tale om i næste måned, og for at få en praksis op at stå om det her:

i segment.quality-funktionen benyttes følgende til at udregne den interne mobilitet:

 niveau.qual <- round(diag(mat.niveau)/((rowSums(mat.niveau) + 
            colSums(mat.niveau))/2), 3)

Det vil sige, der summers både række-vis og kolonnevis, og gennemsnittet af dette tages. Men, intern mobilitet handler vel om en node, og hvor mobilitet fra den bevæger sig hen. Derfor bør kun række-summen medtages, så det kun er fra denne node:

niveau.qual <- round(diag(mat.niveau)/(rowSums(mat.niveau)), 3)

funktion til at lave mobilitetsanalyser

Jeg har lavet et par funktioner til at se på inflow og outflow af mobilitet på specifikke discogrupper/segmenter, og sætte dem op i en dataframe. Jeg har arbejdet en hel del med Moneca nu og jeg tror faktisk det er det her, der virkelig er hvor dens (næste) potentiale ligger, udover at lave selve klyngedannelsen og kortet: specifikke mobilitetsanalyser.

tilføj enkelt observation til diagonal i mobility matricen, så unik identifikation er mulig

ændrer en enkelt observation i de diagonaler der er dupletter af andre, dvs så diagonalen i mob.mat kan bruges til at identificere hver enkelt element unikt. Meget vigtigt i det jeg laver lige nu.

diag(mob.mat)[which(duplicated(diag(mob.mat)))] <-  diag(mob.mat+1)[which(duplicated(diag(mob.mat)))]
diag(mob.mat)[which(duplicated(diag(mob.mat)))] <-  diag(mob.mat+1)[which(duplicated(diag(mob.mat)))]

function til kun at se på bestemte segmenters interesse

Med segment.edges-funktionen kan man jo inputte RR-mobilitetsmatricen til gg.jonas. Jeg har gerne ville fokusere på bestemte mobilitetskanaler, og bruger denne her metode til at fremhæve de edges, jeg er interesserede i. Følgende legetøjseksempel burde dækkke de fleste brugseksempler:

jobnames <- c("job 1","job 2","job 3","job 4","job 5","job 6","job 7")
jobdat <- matrix(c(
99, 5, 5, 0, 0, 5, 5,
5, 99, 2, 5, 5, 1, 5,
1, 5, 99, 5, 0, 0, 1,
1, 0, 5, 99, 8, 0, 1,
0, 5, 0, 0, 99, 5, 1,
0, 0, 5, 5, 0, 99, 5,
0, 1, 0, 0, 5, 1, 99
),
nrow = 7, ncol = 7, byrow = TRUE,
dimnames = list(jobnames,jobnames
))

mat.e <- jobdat
work.list <- c(1,2,3)
################ avanceret2: segment + ties (uden edges ml ties)
irr.job.indices <- which(!(seq_len(7) %in% work.list))

first, keep diagonal values for irr.job.indices

dvals <- diag(mat.e)

set sub-matrix to zero (this will also set diagnal elements to zero)

mat.e[irr.job.indices,irr.job.indices] <- 0

#fjerner interne ties i segmenter af interesse (hvis vi bare vil se hvor de går hen)
mat.e[work.list,work.list] <- 0

#kun fra segmenter af interesse til andre segmenter
mat.e[irr.job.indices,work.list] <- 0
#kun til segmenter af interesse fra andre segmenter (modstridende ihft ovenstående)

mat.e[work.list,irr.job.indices] <- 0

diag(mat.e) <- dvals

udregning af forventede sandsynligheder

Det her er et gammelt issue, ved ikke om I har rettet det, men skrev med Jonas om det, og ved at Moneca helt sikkert regner forkert her:

_Hej igen Jonas,

Jeg har et spørgsmål til om monecas måde at udregne ikke relativ Risiko, men de forventede sandsynligheder i cellerne, altså skridtet før det. Du skrev engang til mig at når Moneca benyttede marginale distributioner fra to andre variable (altså for alle beskæftigede i to forskudte tidsperioder), så summerede den de marginale sandsynligheder for række og kolonne distributionerne og dividerede den med to, og dette blev brugt til at beregne distributionen. Men det betyder jo at sandsynlighederne for den forventede fordeling i cellerne ikke summer til 1. Det gør det imidlertidig hvis man benytter summen af de marginale frekvenser hver for sig, fremfor at summere og dividere med to. Jeg har vedlagt eksempler på dette vedhæftet.
_

Jeg har vedhæftet et regneeksempel. der både benytter Monecas nuværende forkerte måde, og den korrekte. Det er heldigvis kun hvis der er stor forskel på den marginale fordeling af række og kolonne variablen (dvs i mit og jeres tilfælde, til og fra jobs), at det giver fejlberegninger med betydning, hvilket sjældent er tilfældet, indtil videre har det jo bare været antallet af beskæftigede forskudt med et år, altså ikke den store forskel. Men det bliver et reelt problem hvis man benytter Moneca på noget, hvor "til" og "fra" indeholder større forskelle.

monecaudregninertiljonas.xlsx

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.