Title: | Estimates Economic Variables for Word-of-Mouth-Campaigns |
---|---|
Description: | Methods for estimating profit, profit-maximizing price, demand and consumer surplus of Word-of-Mouth-campaigns on mean-field networks. |
Authors: | Michael Scholz [cre, aut], Thomas Woehner [aut], Ralf Peters [ctb] |
Maintainer: | Michael Scholz <[email protected]> |
License: | GPL-3 |
Version: | 1.1.0 |
Built: | 2024-12-10 05:39:00 UTC |
Source: | https://github.com/cran/WordOfMouth |
This packages provides classes, methods and functions for modeling Word-of-Mouth-campaigns. General model assumptions are:
monopoly market
no variable costs
network is the mean-field case of percolation
only those persons who bought a product will forward information about it
Package: | WordOfMouth |
Type: | Package |
Version: | 1.1.0 |
Date: | 2021-10-04 |
License: | GPL-3 |
Depends: | R (>= 3.0.1), methods |
Michael Scholz [email protected]
Thomas Woehner [email protected]
Ralf Peters [email protected]
Compares the welfare of the WoM campaign to the welfare of a fully informed market assuming a uniformly distributed willingness to pay.
compareToFIMarket(campaign)
compareToFIMarket(campaign)
campaign |
Word-of-Mouth campaign as instance of class |
Data frame containing the profit-maximizing price, the resulting demand, profit, consumer surplus and economic welfare for a fully informed market and a WoM market.
Michael Scholz [email protected]
Thomas Woehner [email protected]
Ralf Peters [email protected]
computeOptimalPrice
computeProfit
computeConsumerSurplus
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) comparison <- compareToFIMarket(campaign) print(comparison)
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) comparison <- compareToFIMarket(campaign) print(comparison)
Computes the expected cumulative consumer surplus for a given Word-of-Mouth campaign at a given price.
computeConsumerSurplus(campaign, price)
computeConsumerSurplus(campaign, price)
campaign |
Word-of-Mouth campaign as instance of class |
price |
Price as number in [0; 1] where 0 is the minimal and 1 is the maximal price. |
Expected cumulative consumer surplus.
Michael Scholz [email protected]
Thomas Woehner [email protected]
Ralf Peters [email protected]
computeDemand
computeProfit
computeOptimalPrice
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) surplus <- computeConsumerSurplus(campaign, price = 0.5) print(surplus)
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) surplus <- computeConsumerSurplus(campaign, price = 0.5) print(surplus)
Computes the expected demand for a given Word-of-Mouth campaign at a given price.
computeDemand(campaign, price)
computeDemand(campaign, price)
campaign |
Word-of-Mouth campaign as instance of class |
price |
Price as number in [0; 1] where 0 is the minimal and 1 is the maximal price. |
Expected demand in number of persons.
Michael Scholz [email protected]
Thomas Woehner [email protected]
Ralf Peters [email protected]
computeRoundDemand
computeProfit
computeConsumerSurplus
computeOptimalPrice
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) demand <- computeDemand(campaign, price = 0.5) print(demand)
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) demand <- computeDemand(campaign, price = 0.5) print(demand)
Computes the information costs that need to be surpassed in order to generate a higher profit than in a transparent market.
computeInformationCostsThreshold(campaign)
computeInformationCostsThreshold(campaign)
campaign |
Word-of-Mouth campaign as instance of class |
Information costs in [0; 1] that need to be surpassed in order to generate a higher profit than in a transparent market.
Michael Scholz [email protected]
Thomas Woehner [email protected]
Ralf Peters [email protected]
computeOptimalPrice
computeProfit
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) threshold <- computeInformationCostsThreshold(campaign) print(threshold)
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) threshold <- computeInformationCostsThreshold(campaign) print(threshold)
Computes the profit-maximizing for a given Word-of-Mouth campaign.
computeOptimalPrice(campaign)
computeOptimalPrice(campaign)
campaign |
Word-of-Mouth campaign as instance of class |
Profit-maximizing price in [0; 1] where 0 is the lowest possible and 1 is the highest possible price.
Michael Scholz [email protected]
Thomas Woehner [email protected]
Ralf Peters [email protected]
computeDemand
computeProfit
computeConsumerSurplus
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) price <- computeOptimalPrice(campaign) profit <- computeProfit(campaign, price) print(price) print(profit)
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) price <- computeOptimalPrice(campaign) profit <- computeProfit(campaign, price) print(price) print(profit)
Computes the expected profit for a given Word-of-Mouth campaign at a given price.
computeProfit(campaign, price)
computeProfit(campaign, price)
campaign |
Word-of-Mouth campaign as instance of class |
price |
Price as number in [0; 1] where 0 is the minimal and 1 is the maximal price. |
Expected profit as number of persons times price.
Michael Scholz [email protected]
Thomas Woehner [email protected]
Ralf Peters [email protected]
computeDemand
computeConsumerSurplus
computeOptimalPrice
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) profit <- computeProfit(campaign, price = 0.5) print(profit)
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) profit <- computeProfit(campaign, price = 0.5) print(profit)
Computes the expected demand for a given Word-of-Mouth campaign at a given price and a given round or a given round and all previous rounds
computeRoundDemand(campaign, price, round, previousRounds = TRUE)
computeRoundDemand(campaign, price, round, previousRounds = TRUE)
campaign |
Word-of-Mouth campaign as instance of class |
price |
Price as number in [0; 1] where 0 is the minimal and 1 is the maximal price. |
round |
Round at which or until which the demand per round will be computed. |
previousRounds |
Should the demand of all previous rounds be returned or not. Default is TRUE. |
Expected demand in number of persons. Note that the first value in the demand vector is the number of initial consumers when previousRounds is TRUE. The number of initial consumers is (1-p)*seedingSize.
Michael Scholz [email protected]
Thomas Woehner [email protected]
Ralf Peters [email protected]
computeDemand
computeProfit
computeConsumerSurplus
computeOptimalPrice
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) demand <- computeRoundDemand(campaign, price = 0.5, round = 3) print(demand)
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) demand <- computeRoundDemand(campaign, price = 0.5, round = 3) print(demand)
Computes the WoM intensity in a given Word-of-Mouth campaign.
computeWoMIntensity(campaign)
computeWoMIntensity(campaign)
campaign |
Word-of-Mouth campaign as instance of class |
WoM intensity in [0; 1].
Michael Scholz [email protected]
Thomas Woehner [email protected]
Ralf Peters [email protected]
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) intensity <- computeWoMIntensity(campaign) print(intensity)
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) intensity <- computeWoMIntensity(campaign) print(intensity)
WoMCampaign
objectShows a WoMCampaign
object
## S4 method for signature 'WoMCampaign' show(object)
## S4 method for signature 'WoMCampaign' show(object)
object |
An instance of the |
Shows an WoMCampaign
object.
Michael Scholz [email protected]
Thomas Woehner [email protected]
Ralf Peters [email protected]
WoMNetwork
objectShows a WoMNetwork
object
## S4 method for signature 'WoMNetwork' show(object)
## S4 method for signature 'WoMNetwork' show(object)
object |
An instance of the |
Shows an WoMNetwork
object.
Michael Scholz [email protected]
Thomas Woehner [email protected]
Ralf Peters [email protected]
WoMCampaign
This class represents a WoM campaign that is performed on a given network to promote a durable good with no variable costs.
network
(WoMNetwork) The network to which the WoM campaign is applied.
seedingSize
(numeric) Number of consumers who are initially informed about the good by the firm.
forwardProbability
(numeric) Probability at which a consumer forwards information about the good to others.
informationCosts
(numeric) Costs to information one consumer about the good.
Objects can be created by calls of the form
new("WoMCampaign", ...)
. This S4 class describes WoMNetwork
objects.
Michael Scholz [email protected]
Thomas Woehner [email protected]
Ralf Peters [email protected]
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) print(campaign)
network <- new("WoMNetwork", size = 1000, avgConnections = 5) campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2) print(campaign)
WoMNetwork
This class represents an average random graph.
size
(numeric) The number of consumers in the network.
avgConnections
(numeric) Average number of connections per consumer.
Objects can be created by calls of the form
new("WoMNetwork", ...)
. This S4 class describes WoMNetwork
objects.
Michael Scholz [email protected]
Thomas Woehner [email protected]
Ralf Peters [email protected]
network <- new("WoMNetwork", size = 1000, avgConnections = 5) print(network)
network <- new("WoMNetwork", size = 1000, avgConnections = 5) print(network)