INTRODUCTION TO MARKETING MODELS
by
Scott M. Smith
and
William R. Swinyard
Internet Text January 1999
May Not Reproduced without the Permission of the Authors
TABLE OF CONTENTS
| Preface | Preface |
| Chapter 1 | The Use of Models in Marketing |
| Chapter 2 | An Excel Spreadsheet Primer |
| Chapter 3 | Advanced Commands: Graphics and Database |
| Functions for Finance, Logic, Statistics
Assignment1: Mathematical Functions |
|
| Chapter 4 | Modeling Marketing Phenomenon |
| Chapter 5 | Segmentation Concepts and Models |
|
Cougar Visa: Developing a Means-End Chain |
|
| Chapter 6 | Product Planning Models |
| Product Planning Technical Notes
AMF, Inc.: New Product Trial MooSoda I: Trial-Repurchase Air Jordan: Purchase - Repeat Quite Write, Inc.: Product Portfollio Analysis | |
| Chapter 7 | Sales Management Models |
|
SALTFLATS, INC., Sales Force Allocation Model |
|
| Chapter 8 | Distribution and Production Models |
|
RAW Manufacturing, EOQ Model
THE AZTEC COPY CENTER, EOQ Problem Set Acme Filter Company, EOQ Problem Set |
|
| Chapter 9 | Advertising Models |
|
Rivergrove Out-Patient Clinic: Media Planning
Guthrie Gourmet Foods: Media Planning MooSoda II: Advertising Budgeting ADBUDG: Advertising and Budgeting Model |
APPENDIX 1
FUNCTIONS AND SYNTAX
Financial Functions
ACCRINT: Returns the accrued interest for a security that pays periodic interest.
Syntax: ACCRINT(issue,first_interest,settlement,rate,par,frequency,basis)
ACCRINTM: Returns the accrued interest for a security that pays interest at maturity.
Syntax: ACCRINTM(issue,maturity,rate,par,basis)
AMORDEGRC: Returns the depreciation for each accounting period. This function is provided for the French accounting system. If an asset is purchased in the middle of the accounting period, then the prorated depreciation is taken into account. The function is similar to AMORLINC, except that a depreciation coefficient is applied in the calculation depending on the life of the assets.
Syntax: AMORDEGRC(cost,date_purchased,first_period,salvage,period,rate,basis)
AMORLINC Returns the depreciation for each accounting period. This function is provided for the French accounting system. If an asset is purchased in the middle of the accounting period, then the prorated depreciation is taken into account.
Syntax: AMORLINC(cost,date_purchased,first_period,salvage,period,rate,basis)
COUPDAYBS Returns the number of days from the beginning of the coupon period to the settlement date.
Syntax: COUPDAYBS(settlement, maturity, frequency, basis)
COUPDAYS Returns the number of days in the coupon period that contains the settlement date.
Syntax: COUPDAYS(settlement, maturity, frequency, basis)
COUPDAYSNC Returns the number of days from the settlement date to the next coupon date
Syntax: COUPDAYSNC(settlement, maturity, frequency, basis)
COUPNCD Returns the next coupon date after the settlement date
Syntax: COUPNCD(settlement, maturity, frequency, basis)
COUPNUM Returns the number of coupons payable between the settlement date and maturity date
Syntax: COUPNUM(settlement, maturity, frequency, basis)
COUPPCD Returns the previous coupon date before the settlement date.
Syntax: COUPPCD(settlement, maturity, frequency, basis)
CUMIPMT Returns the cumulative interest paid between two periods
Syntax: CUMIPMT(rate,nper,pv,start_period,end_period,type_payment)
CUMPRINC Returns the cumulative principal paid on a loan between two periods
Syntax: CUMPRINC(rate,nper,pv,start_period,end_period,type_payment)
DB Returns the depreciation of an asset for a specified period using the fixed-declining balance method
Syntax: DB(cost,salvage,life,period,month)
DDB Returns the depreciation of an asset for a specified period using the double-declining balance method
Syntax: DDB(cost,salvage,life,period,month)
DISC Returns the discount rate for a security.
Syntax: DISC(settlement,maturity,pr,redemption,basis)
DOLLARDE Converts a dollar price, expressed as a fraction, into a dollar price, expressed as a decimal number.
Syntax: DOLLARDE(fractional_dollar,fraction)
DOLLARFR Converts a dollar price, expressed as a decimal number, into a dollar price, expressed as a fraction.
Syntax: DOLLARFR(decimal_dollar,fraction)
DURATION Returns the annual duration of a security with periodic interest payments
Syntax DURATION(settlement, maturity,coupon, yld, frequency, basis)
EFFECT Returns the effective annual interest rate.
Syntax: EFFECT(nominal_rate,npery)
FV Returns the future value of an investment based on periodic, constant payments and a constant interest rate
Syntax: FV(rate,nper,pmt,pv,type)
FVSCHEDULE Returns the future value of an initial principal after applying a series of compound interest rates.
Syntax: FVSCHEDULE(principal,schedule)
INTRATE Returns the interest rate for a fully invested security
Syntax: INTRATE(settlement,maturity,investment,redemption,basis)
IPMT Returns the interest payment for a given period for an investment, based on periodic, constant payments and a constant interest rate.
Syntax: IPMT(rate,per,nper,pv,fv,type)
IRR Returns the internal rate of return for a series of cash flows
Syntax: IRR(values,guess)
MDURATION Returns the Mccauley modified duration for a security with an assumed par value of $100
Syntax: MDURATION(settlement,maturity,coupon,yld,frequency,basis)
MIRR Returns the internal rate of return for a series of periodic cash flows, considering both cost of investment and interest on reinvestment of cash.
Syntax: MIRR(values,finance_rate,reinvest_rate)
NOMINAL Returns the annual nominal interest rate
Syntax: NOMINAL(effect_rate,npery)
NPER Returns the number of periods for an investment based on periodic, constant payments and a constant interest rate
Syntax: NPER(rate,pmt,pv,fv,type)
NPV Returns the net present value of an investment based on a discount rate and future payments (negative values) and incomes (positive values).
Syntax: NPV(rate,value1,value3,...)
ODDPFPRICE Returns the price per $100 face value of a security with an odd first period
Syntax: ODDFPRICE(settlement,maturity,issue,first_coupon,rate,yld,...)
ODDFYIELD Returns the yield of a security with an odd first period.
Syntax: ODDFYIELD(settlement,maturity,issue,first_coupon,rate,pr,...)
ODDLPRICE Returns the price per $100 face value of a security with an odd last period
Syntax: ODDLPRICE(settlement,maturity,last_interest,rate,yld,...)
ODDLYIELD Returns the yield of a security with an odd last period
Syntax: ODDLYIELD(settlement,maturity,last_interest,rate,pr,...)
PMT Calculates the payment for a loan based on constant payments and a constant interest rate
Syntax: PMT(rate,nper,pv,fv,type)
PPMT Returns the payment on the principal for a given investment based on periodic, constant payments and a constant interest rate
Syntax: PPMT(rate,nper,pv,fv,type)
PRICE Returns the price per $100 face value of a security that pays periodic interest
Syntax: PRICE(settlement,maturity,rate,yld,redemption,frequency,basis)
PRICEDISC Returns the price per $100 face value of a discounted security
Syntax: PRICEDISC(settlement,maturity,discount,redemption,basis)
PRICEMAT Returns the price per $100 face value of a security that pays interest at maturity
Syntax: PRICEMAT(settlement,maturity,issue,rate,yld,basis)
PV Returns the present value of an investment; the total amount that a series of future payments is worth now.
Syntax: PV(rate,nper,pmt,fv,type)
RATE Returns the interest rate per period of a loan or an annuity
Syntax: RATE(nper,pmt,pv,fv,type,guess)
RECEIVED Returns the amount received at maturity for a fully invested security.
Syntax: RECEIVED(settlement,maturity,investment,discount,basis)
SLN Returns the straight-line depreciation of an asset for one period
Syntax: SLN(cost,salvage,life)
SYD Returns the sum of the years' digits depreciation of an asset for a specified period
Syntax: SYD(cost,salvage,life,per)
TBILLEQ Returns the bond-equivalent yield for a treasury bill
Syntax: TBILLEQ(settlement,maturity,discount)
TBILLPRICE Returns the price per $100 face value for a treasury bill
Syntax: TBILLPRICE(settlement,maturity,discount)
TBILLYIELD Returns the yield for a treasury bill
Syntax: TBILLYIELD(settlement,maturity,pr)
VDB Returns the depreciation of an asset for any period you specify, including partial periods, using hte double-declining balance method or some other method you specify
Syntax: VDB(cost,salvage,life,start_period,end_period,factor,no-switch)
XIRR Returns the internal rate of return for a schedule of cash flows
Syntax: XIRR(values,dates,guess)
XNPV Returns the net present value for a schedule of cash flows
Syntax: XNPV(rate,values,dates)
YIELD Returns the yield on a security that pays periodic interest.
Syntax: YIELD(settlement,maturity,rate,par,redemption,frequncy,basis)
YIELDDISC Returns the annual yield for a discounted security such as a treasury bill
Syntax: YIELDDISC(settlement,maturity,pr,redemption,basis)
YIELDMAT Returns the annual yield of a security that pays interest at maturity
Syntax: YIELDMAT(settlement,maturity,issue,rate,pr,basis)
LOGICAL FUNCTIONS
AND Returns true if all its arguments are TRUE; returns FALSE if any argument is FALSE
Syntax: AND(logical1,logical2,...)
FALSE Returns the logical value FALSE
Syntax: FALSE()
IF Returns one value if a condition you specify evaluates to TRUE and another value if it evaluates to FALSE
Syntax: IF(logical_test,value_if_true,value_if_false)
NOT Reverses the logic of its arguments; returns FALSE for a TRUE argument and TRUE for a FALSE argument
Syntax: NOT(logical)
OR Returns TRUE if any argument is TRUE; returns FALSE if all arguments are FALSE
Syntax: OR(logical1,logical2,...)
TRUE Returns the logical value TRUE
Syntax: TRUE()
STATISTICAL FUNCTIONS
Eighty statistical functions are available in EXCEL
AVEDEV Returns the average of the absolute deviations of data points from their mean. Arguments can be numbers or names, arrays, or references that contain numbers.
Syntax: AVEDEV(number1,number2,...)
AVERAGE Returns the average (arithmetic mean) of its arguments, which can be numbers or names, arrays, or references than contain numbers
Syntax: AVERAGE(number1,number2,...)
AVERAGEA Returns the average (arithmetic mean) of its arguments, evaluating text and FALSE in arguments as 0; TRUE evaluates as 1. Arguments can be numbers, names, arrays, or references.
Syntax: AVERAGEA(number1,number2,...)
BETADIST Returns the cumulative beta probability density function
Syntax: BETADIST(x,alpha,beta,A,B)
BETAINV Returns the inverse of the cumulative beta probability density function (BETADIST)
Syntax: BETAINV(probability,alpha,beta,A,B)
BINOMDIST Returns the individual term binomial distribution probability
Syntax: BINOMDIST(number_s,trials,probability_s,cumulative)
CHIDIST Returns the one-tailed probability of the chi-squared distribution
Syntax: CHIDIST(x,deg_freedom)
CHIINV Returns the inverse of the one-tailed probability of the chi-squared distribution
Syntax: CHIINV(probability,deg_freedom)
CHITEST Returns the test for independence; the value from the chi-squared distribution for the statistic and the appropriate degrees of freedom.
Syntax: CHITEST(actual_range,expected_range)
CONFIDENCE Returns the confidence interval for a population mean.
Syntax: CONFIDENCE(alpha,standard_dev,size)
CORREL Returns the correlation coefficient between two data sets.
Syntax: CORREL(array1,array2)
COUNT Counts the number of cells that contain numbers and numbers within the list of arguments
Syntax: COUNT(value1,value2,...)
COUNTA Counts the number of cells that are not empty and the values within the list of arguments.
Syntax: COUTNA(value1,value2,...)
COUNTBLANK Counts empty cells in a specified range of cells
Syntax: COUNTBLANK(range)
COUNTIF Counts the number of cells within a range that meets the given condition
Syntax: COUTNIF(range,criteria)
COVAR Returns the covariance, the average of the products of deviations for each data point pair in two data sets.
Syntax: COVAR(array1,array2)
CRITBINOM Returns the smallest value for which the cumulative binomial distribution is greater than or equal to a criterion value
Syntax: CRITBINOM(trials,probability_s,alpha)
DEVSQ Returns the sum of squares of deviations of data points form their sample mean
Syntax: DEVSQ(number1,number2,...)
EXPONDIST Returns the exponential distribution
Syntax: EXPONDIST(x,lambda,cumulative)
FDIST Returns the F probability distribution (degree of diversity) for two data sets
Syntax: FDIST(x,deg_freedom1,deg_freedom2)
FINV Returns the inverse of the F probability distribution: if p=FDIST(x,...), then FINV(p,...)=x
Syntax: FINV(probability,deg_freedom1,deg_freedom2)
FISHER Returns the Fisher transformation
Syntax: FISHER(x)
FISHERINV Returns the inverse of the Fisher transformation: if y=FISHER(x), then FISHERINV(y)=x
Syntax: FISHERINV(y)
FORECAST Calculates, or predicts a future value along a linear trend by using existing values
Syntax: FORECAST(x,known_y's,known_x's)
FREQUENCY Calculates how often values occur within a range of values and then returns a vertical array of numbers having one more element than Bins_array
Syntax: FREQUENCY(data-array,bins_array)
FTEST Returns the result of an F-test, the one-tailed probability that the variances in Array1 and Array2 are not significantly different
Syntax: FTEST(array1,aray2)
GAMMADIST Returns the gamma distribution
Syntax: GAMMADIST(x,alpha,beta,cumulative)
GAMMAINV Returns the inverse of the gamma distribution: if p=GAMMADIST(x,...), then GAMMAINV(p,...)=x
Syntax: GAMMAINV(probability,alpha,beta)
GAMMALN Returns the natural logarithm of the gamma function
Syntax: GAMMALN(x)
GEOMEAN Returns the geometric mean of an array or range of positive numeric data
Syntax: GEOMEAN(number1,number2,...)
GROWTH Calculates predicted exponential growth by using existing data, returning the y-values for a series of new x-values you specify
Syntax: GROWTH(known_y's,known_x's,new_x's,const)
HARMEAN Returns the harmonic mean of a data set of positive numbers; the reciprocal of the arithmetic mean of reciprocals
Syntax: HARMEAN(number1,number2,...)
HYPERGEOMDIST Returns the hypergeometric distribution
Syntax: HYPERGEOMDIST(sample_s,number_sample,population_s,...)
INTERCEPT Calculates the point at which the line will intersect the y-axis by using a best-fit regression line plotted through the known x-values and y-values
Syntax: INTERCEPT(known_y's,known_x's)
KURT Returns the kurtosis of a data set
Syntax: KURT(number1k,number2,...)
LARGE Returns the k-th largest value in a data set
Syntax: LARGE(array,k)
LINEST Returns an array that describes a straight line that best fits your data, calculated by the least squares method
Syntax: LINEST(known_y's,known_x's,const,stats)
LOGEST Returns an array of values that describes an exponential curve calculated in regression analysis to fit your data
Syntax: LOGEST(known_y's,known_x's,const,stats)
LOGINV Returns the inverse of the lognormal cumulative distribution function of x, where ln(x) is normally distributed with parameters Mean and Standard_dev
Syntax: LOGINV(probability,mean,standard_dev)
LOGNORMDIST Returns the cumulative lognormal distribution of x, where ln(x) is normally distributed with parameters Mean and Standard_dev
Syntax: LOGNORMDIST(x,mean,standard_dev)
MAX Returns the largest value in a set of values. Ignores logical values and text
Syntax: MAX(number1,number2,...)
MAXA Returns the largest value in a set of values. Does not ignore logical values and text.
Syntax: MAXA(value1,value2,...)
MEDIAN Returns the median, or the number in the middle of the set of given numbers
Syntax: MEDIAN(number1,number2,...)
MIN Returns the minimum of a set of numbers
Syntax: MIN(number1,number2,...)
MINA Returns the minimum value in a set of values. Does not ignore logical values and text.
Syntax: MINA(value1,value2,...)
MODE Returns the most frequently occurring, or repetitive, value in an array or range of data
Syntax: MODE(nubmer1,number2,...)
NEGBINOMDIST Returns the negative binomial distribution, the probability that there will be Number_f failures before the Number_s-th success, with Probability_s probability of a success
Syntax: NEGBINOMDIST(number_f,number_s,probability_s)
NORMDIST Returns the normal cumulative distribution for the specified mean and standard deviation
Syntax: NORMDIST(x,mean,standard_dev,cumulative)
NORMINV Returns the inverse of the normal cumulative distribution for the specified mean and standard deviation
Syntax: NORMINV(probability,mean,standard_dev)
NORMSDIST Returns the standard normal cumulative distribution (mean=0, std. Dev.=1)
Syntax: NORMSDIST(z)
NORMSINV Returns the inverse of the standard normal cumulative distribution (mean=0, std. Dev.=1)
Syntax: NORMSINV(probability)
PEARSON Returns the Pearson product moment correlation coefficient, r
Syntax: PEARSON(array1,array2)
PERCENTILE Returns the k-th percentile of values in a range
Syntax: PERCENTILE(array,k)
PERCENTRANK Returns the rank of a value in a data set as a percentage of the data set
Syntax: PERCENTRANK(array,x,significance)
PERMUT Returns the number of permutations for a given number of objects that can be selected fromt he total objects
Syntax: PERMUT(number,number_chosen)
POISSON Returns the Poisson distribution
Syntax: POISSON(x,mean,cumulative)
PROB Returns the probability that values in a range are between two limits or equal to a lower limit
Syntax: PROB(x_range,prob_range,lower_limit,upper_limit)
QUARTILE Returns the quartile of a data set
Syntax: QUARTILE(array,quart)
RANK Returns the rank of a number in a list of numbers: its size relative to other values in the list
Syntax: RANK(number,ref,order)
RSQ Returns the square of the Pearson product moment correlation coefficient for the given data points
Syntax: RSQ(known_y's,known_x's)
SKEW Returns the skewness of a distribution (degree of asymmetry around its mean)
Syntax: SKEW(number1,number2)
SLOPE Returns the slope of the linear regression line through the given data points
Syntax: SLOPE(known_y's,known_x's)
SMALL Returns the k-th smallest value in a data set
Syntax: SMALL(array,k)
STANDARDIZE Returns a normalized value from a distribution characterized by a mean and standard deviation
Syntax: STANDARDIZE(x,mean,standard-dev)
STDEV Estimates standard deviation based on a sample (ignores logical values and text in the sample)
Syntax: STDEV(number1,number2,...)
STDEVA Estimates standard deviation based on a sample (includes logical values and text). Text and the logical value FALSE have the value 0; the logical value TRUE has the value 1.
Syntax: STDEV(number1,number2,...)
STDEVP Estimates standard deviation based on the entire population given as arguments (ignores logical values and text in the sample)
Syntax: STDEVP(number1,number2,...)
STDEVPA Calculates standard deviation based on the entire population (includes logical values and text). Text and the logical value FALSE have the value 0; the logical value TRUE has the value 1.
Syntax: STDEVPA(number1,number2,... )
STEYX Returns the standard error of the predicted y_value for each x in a regression
Syntax: STEYX(known_y's,known_x's)
TDIST Returns the Student's t-distribution
Syntax: TDIST(x,deg_freedom,tails)
TINV Returns the inverse of the Student's t-distribution
Syntax: TINV(probability,deg_freedom)
TREND Returns values along a linear trend by fitting a straight line using hte least squares method to the known values
Syntax: TREND(known_y's,known_x's,new_x's,const)
TRIMMEAN Returns the mean of the interior portion of a set of data values
Syntax: TRIMMEAN(array,percent)
TTEST Returns the probability associated with a Student's t-test
Syntax: TTEST(array1,array2,tails,type)
VAR Estimates variance based on a sample (ignores logical values and text in the sample)
Syntax: VAR(number1,number2,...)
VARA Estimates variance based on a sample, (includes logical values and text). Text and the logical value FALSE have the value 0; the logical value TRUE has the value 1.
Syntax: VARA(number1,number2,... )
VARP Calculates variance based on the entire population (ignores logical values and text in the population)
Syntax: VARP(number1,number2,...)
VARPA Calculates variance based on the entire population (includes logical values and text). Text and the logical value FALSE have the value 0; the logical value TRUE has the value 1.
Syntax: VARPA(value1,value2,... )
WEIBULL Returns the Weibull distribution
Syntax: WEIBULL(x,alpha,beta,cumulative)
ZTEST Returns the two-tailed P-value of a z-test
Syntax: ZTEST(array,x,sigma)