This is a wonderful educational experience for a Ventity beginner. The problem to solve is in the model I’m currently designing and building. The model simulates behavior of the democratic backsliding problem, which involves elections.
Each voter has a Belief Memes (BM) entity type with attractiveness, country, politician, voter. There is one entity for each meme the voter has been exposed to, so there can be many entities with the same politician. In this early stage of the model, BM is populated by an init table.
The problem is how to determine the most attractive politician in a voter’s BM. This would be the maximum of the average attractiveness for each politician. This becomes a voter’s politician supported.
The model is attached. On the Voter diagram you will see a 4-step procedure of using triggers and actions to do this. (See image)
Can this be done? Is this a good procedure? It’s incredibly complex, but this is how the real-world works. This is similar to the way customer see ads and eventually make relative buy decisions. There are many similar business problems.
As far as I can tell, this would be so much easier if Ventity allowed something like SELECT PoliticianID, attractiveness FROM Belief Memes WHERE country =, voter=, GROUP BY PoliticianID, ORDER BY AVG(attractiveness) DESC. If Ventity 5.0 has this feature as an action kind, I think a lot of problems could be much more easily modeled. There’s a reason SQL is so common.
I can already see some barriers. Presently the model generates one warning per time step: “Unable to reference Entity Type [politician] from politician_attraction [politician_attraction[politician_attraction_0001]] using Attribute [Politician] = "" This is because of a missing Value To Match for PoliticianID in the Politician Attraction work table. Setting Value to Match to “Politician AttractionID” makes no difference. Why does Ventity demand the key to the table be set? I will never use it. It’s a hidden key.
Another anticipated barrier is determining the count for Create the work table. How does one calculate the number of different PoliticianIDs in Belief Memes?
And then how does one use a Process List to walk a Belief Memes table, and in the work table, add a record if not there or increment one if there? A lot of challenges here. Note how I’ve slipped into talking about tables and records, since that's what entities are. They are declarative language OO tables.
Thanks for your help here. I’m hoping that I’ll learn so much from this that the rest of developing the model will be a piece of cake!
And thanks for sharing your thought process on a recent reply. That is so important. I haven’t yet worked on that area, I've been so busy with the above problem.
How to determine most attractive politician?
-
- Senior Member
- Posts: 68
- Joined: Wed Sep 15, 2004 9:01 pm
- Vensim version: DSS
How to determine most attractive politician?
- Attachments
-
- Ventity Voter Diagram.png (27.13 KiB) Viewed 3439 times
-
- RDem3.zip
- (20 KiB) Downloaded 309 times
-
- Senior Member
- Posts: 68
- Joined: Wed Sep 15, 2004 9:01 pm
- Vensim version: DSS
Re: How to determine most attractive politician?
I made a small change on the Politician Attraction diagram and added an image of the high level design of the model to the Model diagram. So others can see this image without opening the model, here it is.
- Attachments
-
- RDem3.zip
- (129.36 KiB) Downloaded 304 times
-
- High level structure of model.png (116.07 KiB) Viewed 3429 times
Re: How to determine most attractive politician?
Thinking about this in a bit of a rush, I was expecting to see something more like the following entities:
Voters
Voter Beliefs [ voter x bMeme ]
Belief Memes (likely only contains properties of the meme)
Politician Beliefs [ politician x bMeme ]
Politicians
Attraction [ voter x politician ] (might be a process list action rather than an entity)
The 'beliefs' entitytypes are what we typically call 'relationship entities' (mirroring the RDBMS lingo of table relations).
Voter choice would then be driven by some measure of coherence between their beliefs and politician beliefs (setting aside deception, cynicism, etc.), computed or stored in the Attraction thing.
It seems like the attraction computation is going to be a very expensive operation - something like a join of the Voter Beliefs and Politician Beliefs. That might be prohibitive in the model, but it might also be prohibitive in reality. This suggests to me that voters might actually be doing something much simpler, like following a few politicians at a time and only scanning for new information if they get dissatisfied.
For speed, it might be attractive to avoid the 'beliefs' relationship entities. You could do this by hard coding some named stocks or attributes within the voters and politicians, representing positions on each meme. This would limit the practical # of memes by your tolerance for copy/pasting, but would avoid a lot of entity/collection overhead. Computing attraction would be an easier Voter x Politician process list.
Voters
Voter Beliefs [ voter x bMeme ]
Belief Memes (likely only contains properties of the meme)
Politician Beliefs [ politician x bMeme ]
Politicians
Attraction [ voter x politician ] (might be a process list action rather than an entity)
The 'beliefs' entitytypes are what we typically call 'relationship entities' (mirroring the RDBMS lingo of table relations).
Voter choice would then be driven by some measure of coherence between their beliefs and politician beliefs (setting aside deception, cynicism, etc.), computed or stored in the Attraction thing.
It seems like the attraction computation is going to be a very expensive operation - something like a join of the Voter Beliefs and Politician Beliefs. That might be prohibitive in the model, but it might also be prohibitive in reality. This suggests to me that voters might actually be doing something much simpler, like following a few politicians at a time and only scanning for new information if they get dissatisfied.
For speed, it might be attractive to avoid the 'beliefs' relationship entities. You could do this by hard coding some named stocks or attributes within the voters and politicians, representing positions on each meme. This would limit the practical # of memes by your tolerance for copy/pasting, but would avoid a lot of entity/collection overhead. Computing attraction would be an easier Voter x Politician process list.
/*
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/
-
- Senior Member
- Posts: 68
- Joined: Wed Sep 15, 2004 9:01 pm
- Vensim version: DSS
Re: How to determine most attractive politician?
Thanks for taking a look at this. It’s not an easy nut to crack!
The literature reports beliefs are caused by exposure to information, followed by processing. The misinformation and how voters process information literature is huge and there’s not much consensus, since how the brain works is so opaque. So, what we’ve done, using root cause analysis, is focus on the role of truth and deception in politician appeals to voters. What is the simplest way to model how voters form beliefs about potentially deceptive politicians, and use that knowledge to make voting decisions?
Yes, voters use many heuristics to satisfice. The one we’ve used is sampling and comparison, based on the “attractiveness” of each chunk of information about candidate politicians. People don’t do this perfectly. But voting based on small sampling has been experimentally proven to be very close to what voters would decide if they had full information about a mock election. See Voting Correctly, Lau and Redlawsk, 1997. But this “full information” is assumed to not be deceptive. We know this is a false assumption, given the high amount of political deception we see these days. The paper stayed away from how voting criteria beliefs are formed.
The model we are building makes these assumptions: (1) People act to maximize their own self-interests. They don’t do this perfectly. Instead, they satisfice. (2) Politicians uses deception of varying amounts to be attractive to voters. (3) If a person’s political truth literacy is low, they will believe deceptive info is true, and form beliefs accordingly. (4) People use sampling and comparison to make decision. These assumptions agree with what the literature has been able to agree on. What is an adequate way to model these assumptions?
As far as I can tell, it’s what I’m trying to do in the model. A voter samples the memes in Media Memes. (Media Memes are shown in the model design diagram, but are not yet in the model I’m building. I first what to get the which politician to support decision working, using Belief Memes.) The voter remembers those memes that are the most attractive, based on their truth literacy and meme attractiveness. These become their Belief Memes. To make a decision, they then compare what they believe about each candidate, and choose the most attractive.
Does that sound like a reasonable approximation to real world elections?
Thinking about this right now, instead of accumulating Belief Memes, we could optimize by accumulating the data in a manner that makes the decision much faster. An example is to accumulate for each politician, total attractiveness and count of memes as the voter collects each sample meme. Using this to calculate an average, we average attractiveness for each politician. To make a decision, we use Process List, sort by average attractiveness in descending order. The first record is the most attractive politician.
"voters might actually be doing something much simpler" - Yes, they are sampling and then using that small sample to make a comparative decisions.
Yes. But what causes voter beliefs to grow and change? Can we set deception aside in a world where deception dominates news and elections? If we want to analyze and solve a social behavior problem, which requires changing behavior, we are forced to answer such questions. We can’t simplify and assume people make voting choices based on their beliefs and what politicians are running in an election. We must dig deeper. What shapes those beliefs?Voter choice would then be driven by some measure of coherence between their beliefs and politician beliefs (setting aside deception, cynicism, etc.), computed or stored in the Attraction thing. … You could do this by hard coding some named stocks or attributes within the voters and politicians, representing [voter belief] positions on each meme.
The literature reports beliefs are caused by exposure to information, followed by processing. The misinformation and how voters process information literature is huge and there’s not much consensus, since how the brain works is so opaque. So, what we’ve done, using root cause analysis, is focus on the role of truth and deception in politician appeals to voters. What is the simplest way to model how voters form beliefs about potentially deceptive politicians, and use that knowledge to make voting decisions?
Yes, voters use many heuristics to satisfice. The one we’ve used is sampling and comparison, based on the “attractiveness” of each chunk of information about candidate politicians. People don’t do this perfectly. But voting based on small sampling has been experimentally proven to be very close to what voters would decide if they had full information about a mock election. See Voting Correctly, Lau and Redlawsk, 1997. But this “full information” is assumed to not be deceptive. We know this is a false assumption, given the high amount of political deception we see these days. The paper stayed away from how voting criteria beliefs are formed.
The model we are building makes these assumptions: (1) People act to maximize their own self-interests. They don’t do this perfectly. Instead, they satisfice. (2) Politicians uses deception of varying amounts to be attractive to voters. (3) If a person’s political truth literacy is low, they will believe deceptive info is true, and form beliefs accordingly. (4) People use sampling and comparison to make decision. These assumptions agree with what the literature has been able to agree on. What is an adequate way to model these assumptions?
As far as I can tell, it’s what I’m trying to do in the model. A voter samples the memes in Media Memes. (Media Memes are shown in the model design diagram, but are not yet in the model I’m building. I first what to get the which politician to support decision working, using Belief Memes.) The voter remembers those memes that are the most attractive, based on their truth literacy and meme attractiveness. These become their Belief Memes. To make a decision, they then compare what they believe about each candidate, and choose the most attractive.
Does that sound like a reasonable approximation to real world elections?
Wow, do I agree it's going to be expensive. But one rule of programming is first get the algorithm right, then optimize later.It seems like the attraction computation is going to be a very expensive operation - something like a join of the Voter Beliefs and Politician Beliefs. That might be prohibitive in the model, but it might also be prohibitive in reality. This suggests to me that voters might actually be doing something much simpler, like following a few politicians at a time and only scanning for new information if they get dissatisfied.
Thinking about this right now, instead of accumulating Belief Memes, we could optimize by accumulating the data in a manner that makes the decision much faster. An example is to accumulate for each politician, total attractiveness and count of memes as the voter collects each sample meme. Using this to calculate an average, we average attractiveness for each politician. To make a decision, we use Process List, sort by average attractiveness in descending order. The first record is the most attractive politician.
"voters might actually be doing something much simpler" - Yes, they are sampling and then using that small sample to make a comparative decisions.
-
- Senior Member
- Posts: 68
- Joined: Wed Sep 15, 2004 9:01 pm
- Vensim version: DSS
Re: How to determine most attractive politician?
Also, earlier I wrote:
![Very Happy :D](./images/smilies/icon_biggrin.gif)
I'm still unable to solve this mysterious warning problem. Where's my magic wand?!Presently the model generates one warning per time step: “Unable to reference Entity Type [politician] from politician_attraction [politician_attraction[politician_attraction_0001]] using Attribute [Politician] = "" This is because of a missing Value To Match for PoliticianID in the Politician Attraction work table. Setting Value to Match to “Politician AttractionID” makes no difference. Why does Ventity demand the key to the table be set? I will never use it. It’s a hidden key.
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Re: How to determine most attractive politician?
If the attribute isn't used, I'm not sure why its there? A quick hack would be to unset the "Refers To" type (i.e. set it to <none>). Then it won't look for a politician. You can still use it to populate a reference to a politician if needed later.
/*
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/
Re: How to determine most attractive politician?
Voters randomly sampling politicians sounds pretty reasonable.
What I'm questioning is the need for memes to have an independent existence as entities. I can think of some reasons to do it (you want the ability to create an arbitrary number of new memes, or n-dimensional memes). But it strikes me as an expensive luxury that doesn't necessarily add much. Having large collections of VoterMemes and PolMemes that have little or no dynamics within each entity instance moves you outside the design envelope for Ventity (though I've certainly done similar things).
What I'm suggesting instead is that there be a fixed number of memes that exist as state variables inside the voter, politician and anywhere else needed (media if that becomes an entitytype). So, for example, there might be a meme for "AttentionToIndividualValues" or "LikesCats" or just "m1" which would be a stock, varying around 0 or on the 0-1 range. It would then be easy for a voter to scan a sample of politicians to see whose memes match best, or a politician to survey a sample of voters to see how they should adapt their memes for greater attraction. Voters could also cluster into social networks based on meme compatibility, and adapt views toward meme-streams delivered by media, which might be reports about politician memes, randomly adjusted toward the outlet's own meme-slant.
In exchange for some restrictions on arbitrary numbers or dimensionality of memes, you'd have more direct visibility of what's in the voter's head, less reference hopping and collection maintenance, and more speed.
What I'm questioning is the need for memes to have an independent existence as entities. I can think of some reasons to do it (you want the ability to create an arbitrary number of new memes, or n-dimensional memes). But it strikes me as an expensive luxury that doesn't necessarily add much. Having large collections of VoterMemes and PolMemes that have little or no dynamics within each entity instance moves you outside the design envelope for Ventity (though I've certainly done similar things).
What I'm suggesting instead is that there be a fixed number of memes that exist as state variables inside the voter, politician and anywhere else needed (media if that becomes an entitytype). So, for example, there might be a meme for "AttentionToIndividualValues" or "LikesCats" or just "m1" which would be a stock, varying around 0 or on the 0-1 range. It would then be easy for a voter to scan a sample of politicians to see whose memes match best, or a politician to survey a sample of voters to see how they should adapt their memes for greater attraction. Voters could also cluster into social networks based on meme compatibility, and adapt views toward meme-streams delivered by media, which might be reports about politician memes, randomly adjusted toward the outlet's own meme-slant.
In exchange for some restrictions on arbitrary numbers or dimensionality of memes, you'd have more direct visibility of what's in the voter's head, less reference hopping and collection maintenance, and more speed.
/*
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/
Advice to posters (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391
Blog: http://blog.metasd.com
Model library: http://models.metasd.com
Bookmarks: http://delicious.com/tomfid/SystemDynamics
*/
-
- Senior Member
- Posts: 68
- Joined: Wed Sep 15, 2004 9:01 pm
- Vensim version: DSS
Re: How to determine most attractive politician?
Thanks, that worked fine. I really appreciate your help here!If the attribute isn't used, I'm not sure why its there? A quick hack would be to unset the "Refers To" type (i.e. set it to <none>). Then it won't look for a politician. You can still use it to populate a reference to a politician if needed later.
It’s there because it’s used as a work table. The value of PoliticianID is unknown until a voter takes a sample of memes, each of which refers to a politician.
Certainly a good question to consider. A Media Meme represents a statement in an article, speech, TV show, etc. A meme has lots of properties that must be considered to be modeled realistically. See the attached diagram. The most important properties are truthfulness, inflation, and expiration year. Attractiveness is calculated using four inputs, so that the meme is easily processed by a voter during a survey where they randomly sample memes about politicians.What I'm questioning is the need for memes to have an independent existence as entities. I can think of some reasons to do it (you want the ability to create an arbitrary number of new memes, or n-dimensional memes). But it strikes me as an expensive luxury that doesn't necessarily add much. Having large collections of VoterMemes and PolMemes that have little or no dynamics within each entity instance moves you outside the design envelope for Ventity (though I've certainly done similar things).
Thanks, but this looks like oversimplification and hard coding of what we hope will be enough representative memes to correctly model the problem. So that you can see where my difference of opinion comes from, I’ve attached the image mentioned earlier.What I'm suggesting instead is that there be a fixed number of memes that exist as state variables inside the voter, politician and anywhere else needed (media if that becomes an entitytype).
Examples of specific memes we need to model are populism, false common enemy, racism, ad homonym attack, the big lie, the truth about a budget, etc. Each follows a certain pattern of appeal, as condensed into its truthfulness and inflation. Later models will have more complex meme elements, like meme prerequisites which multiply the power of this one, and all sorts of unanticipated things. What we are building here is a stage 1 proof-of-concept model.
And very soon, in this model, memes will have data about incumbent politician performance. This allows a feedback loop, where voters base their politician selection choices on performance.
- Attachments
-
- Media Meme diagram.png (26.56 KiB) Viewed 3285 times