Type: | Package |
Title: | Estimates Economic Variables for Word-of-Mouth-Campaigns |
Version: | 1.2.0 |
Date: | 2025-06-02 |
Maintainer: | Michael Scholz <michael.scholz@th-deg.de> |
Description: | Methods for estimating profit, profit-maximizing price, demand and consumer surplus of Word-of-Mouth-campaigns on mean-field networks. |
License: | GPL-3 |
Depends: | R (≥ 3.0.1), methods, stats, LambertW |
LazyLoad: | yes |
ByteCompile: | yes |
Encoding: | UTF-8 |
RoxygenNote: | 7.3.2 |
NeedsCompilation: | no |
Packaged: | 2025-06-02 07:24:26 UTC; mscholz |
Author: | Michael Scholz [cre, aut], Thomas Woehner [aut], Ralf Peters [ctb] |
Repository: | CRAN |
Date/Publication: | 2025-06-02 08:00:02 UTC |
Estimates Economic Variables for Word-of-Mouth-Campaigns
Description
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
Details
Package: | WordOfMouth |
Type: | Package |
Version: | 1.2.0 |
Date: | 2025-06-02 |
License: | GPL-3 |
Depends: | R (>= 3.0.1), methods |
Author(s)
Michael Scholz michael.scholz@th-deg.de
Thomas Woehner Thomas.Woehner@eah-jena.de
Ralf Peters ralf.peters@wiwi.uni-halle.de
Class WoMCampaign
Description
This class represents a WoM campaign that is performed on a given network to promote a durable good with no variable costs.
Slots
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 from the Class
Objects can be created by calls of the form
new("WoMCampaign", ...)
. This S4 class describes WoMNetwork
objects.
Author(s)
Michael Scholz michael.scholz@th-deg.de
Thomas Woehner Thomas.Woehner@eah-jena.de
Ralf Peters ralf.peters@wiwi.uni-halle.de
Examples
network <- new("WoMNetwork", size = 1000, avgConnections = 5)
campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2)
print(campaign)
Class WoMNetwork
Description
This class represents an average random graph.
Slots
size
(numeric) The number of consumers in the network.
avgConnections
(numeric) Average number of connections per consumer.
Objects from the Class
Objects can be created by calls of the form
new("WoMNetwork", ...)
. This S4 class describes WoMNetwork
objects.
Author(s)
Michael Scholz michael.scholz@th-deg.de
Thomas Woehner Thomas.Woehner@eah-jena.de
Ralf Peters ralf.peters@wiwi.uni-halle.de
Examples
network <- new("WoMNetwork", size = 1000, avgConnections = 5)
print(network)
Compares the welfare of the WoM campaign to that of a fully informed market
Description
Compares the welfare of the WoM campaign to the welfare of a fully informed market assuming a uniformly distributed willingness to pay.
Usage
compareToFIMarket(campaign)
Arguments
campaign |
Word-of-Mouth campaign as instance of class |
Value
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.
Author(s)
Michael Scholz michael.scholz@th-deg.de
Thomas Woehner Thomas.Woehner@eah-jena.de
Ralf Peters ralf.peters@wiwi.uni-halle.de
See Also
computeOptimalPrice
computeProfit
computeConsumerSurplus
Examples
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
Description
Computes the expected cumulative consumer surplus for a given Word-of-Mouth campaign at a given price.
Usage
computeConsumerSurplus(campaign, price)
Arguments
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. |
Value
Expected cumulative consumer surplus.
Author(s)
Michael Scholz michael.scholz@th-deg.de
Thomas Woehner Thomas.Woehner@eah-jena.de
Ralf Peters ralf.peters@wiwi.uni-halle.de
See Also
computeDemand
computeProfit
computeOptimalPrice
Examples
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
Description
Computes the expected demand for a given Word-of-Mouth campaign at a given price.
Usage
computeDemand(campaign, price)
Arguments
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. |
Value
Expected demand in number of persons.
Author(s)
Michael Scholz michael.scholz@th-deg.de
Thomas Woehner Thomas.Woehner@eah-jena.de
Ralf Peters ralf.peters@wiwi.uni-halle.de
See Also
computeRoundDemand
computeProfit
computeConsumerSurplus
computeOptimalPrice
Examples
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 threshold
Description
Computes the information costs that need to be surpassed in order to generate a higher profit than in a transparent market.
Usage
computeInformationCostsThreshold(campaign)
Arguments
campaign |
Word-of-Mouth campaign as instance of class |
Value
Information costs in [0; 1] that need to be surpassed in order to generate a higher profit than in a transparent market.
Author(s)
Michael Scholz michael.scholz@th-deg.de
Thomas Woehner Thomas.Woehner@eah-jena.de
Ralf Peters ralf.peters@wiwi.uni-halle.de
See Also
computeOptimalPrice
computeProfit
Examples
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 price
Description
Computes the profit-maximizing for a given Word-of-Mouth campaign.
Usage
computeOptimalPrice(campaign)
Arguments
campaign |
Word-of-Mouth campaign as instance of class |
Value
Profit-maximizing price in [0; 1] where 0 is the lowest possible and 1 is the highest possible price.
Author(s)
Michael Scholz michael.scholz@th-deg.de
Thomas Woehner Thomas.Woehner@eah-jena.de
Ralf Peters ralf.peters@wiwi.uni-halle.de
See Also
computeDemand
computeProfit
computeConsumerSurplus
Examples
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
Description
Computes the expected profit for a given Word-of-Mouth campaign at a given price.
Usage
computeProfit(campaign, price)
Arguments
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. |
Value
Expected profit as number of persons times price.
Author(s)
Michael Scholz michael.scholz@th-deg.de
Thomas Woehner Thomas.Woehner@eah-jena.de
Ralf Peters ralf.peters@wiwi.uni-halle.de
See Also
computeDemand
computeConsumerSurplus
computeOptimalPrice
Examples
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 per round
Description
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
Usage
computeRoundDemand(campaign, price, round, previousRounds = TRUE)
Arguments
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. |
Value
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.
Author(s)
Michael Scholz michael.scholz@th-deg.de
Thomas Woehner Thomas.Woehner@eah-jena.de
Ralf Peters ralf.peters@wiwi.uni-halle.de
See Also
computeDemand
computeProfit
computeConsumerSurplus
computeOptimalPrice
Examples
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
Description
Computes the WoM intensity in a given Word-of-Mouth campaign.
Usage
computeWoMIntensity(campaign)
Arguments
campaign |
Word-of-Mouth campaign as instance of class |
Value
WoM intensity in [0; 1].
Author(s)
Michael Scholz michael.scholz@th-deg.de
Thomas Woehner Thomas.Woehner@eah-jena.de
Ralf Peters ralf.peters@wiwi.uni-halle.de
Examples
network <- new("WoMNetwork", size = 1000, avgConnections = 5)
campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2)
intensity <- computeWoMIntensity(campaign)
print(intensity)
Calculates the impact of incentivizing WoM communication
Description
Calculates the impact of incentivizing WoM communication. Given a start forward probability and an expected end forward, probability this function calculates changes in demand, consumer surplus, profit, cost for incentivizing and economic welfare for i) keeping the optimal price for the start forward probability or ii) setting the optimized price for the expected forward probability.
Usage
incentivizeWoM(campaign, expProb, rewardCost = 0, keepStartPrice = FALSE)
Arguments
campaign |
Word-of-Mouth campaign as instance of class |
expProb |
Expected forward probability when incentivizing WoM. |
rewardCost |
Cost per consumer acquired through the incentivization strategy. |
keepStartPrice |
Logical value indicating whether or not (default) the optimized price for the start forward probability will also used for the expected forward probability. |
Value
Data frame containing the profit-maximizing price, the resulting demand, profit, consumer surplus and economic welfare for the start WoM intensity and the expected WoM intensity.
Author(s)
Michael Scholz michael.scholz@th-deg.de
Thomas Woehner Thomas.Woehner@eah-jena.de
Ralf Peters ralf.peters@wiwi.uni-halle.de
See Also
computeOptimalPrice
computeProfit
computeConsumerSurplus
Examples
network <- new("WoMNetwork", size = 1000, avgConnections = 5)
campaign <- new("WoMCampaign", network = network, seedingSize = 10, forwardProbability = 0.2)
incentivization <- incentivizeWoM(campaign = campaign, expProb = 0.25, rewardCost = 0.05)
print(incentivization)
Shows a WoMCampaign
object
Description
Shows a WoMCampaign
object
Usage
## S4 method for signature 'WoMCampaign'
show(object)
Arguments
object |
An instance of the |
Methods
- list("signature(object = \"WoMCampaign\")")
Shows an
WoMCampaign
object.
Author(s)
Michael Scholz michael.scholz@th-deg.de
Thomas Woehner Thomas.Woehner@eah-jena.de
Ralf Peters ralf.peters@wiwi.uni-halle.de
Shows a WoMNetwork
object
Description
Shows a WoMNetwork
object
Usage
## S4 method for signature 'WoMNetwork'
show(object)
Arguments
object |
An instance of the |
Methods
- list("signature(object = \"WoMNetwork\")")
Shows an
WoMNetwork
object.
Author(s)
Michael Scholz michael.scholz@th-deg.de
Thomas Woehner Thomas.Woehner@eah-jena.de
Ralf Peters ralf.peters@wiwi.uni-halle.de