PS:此为 mlogit
包的学习笔记,学习材料主要为原 mlogit 包官方说明书。其中数据框部分没有给出详尽翻译,除此之外的主要函数及功能均做了介绍。在学习R语言 多项logit 模型时可作为参考材料。有任何问题欢迎联系交流。
Package 'mlogit'
标题:多项Logit模型
[TOC]
Beef | Choice of a beef product
牛肉产品选择
描述
面板数据
观测数量:47个个体的5种观测
观测对象:个人
国家:美国
用法
data(Beef)
Format
数据框包含:
- ID
- 产品
- 方案
- 选择
- 价格
Car | Stated Preferences for Car Choice
汽车选择偏好,数据框
Catsup | Choice of Brand for Catsup
番茄酱品牌选择
correlation | Correlation structure of the random parameters
随机参数的相关结构
描述:
函数,提取一个mlogit对象的相关性结构
用法:
cor.mlogit(x)
cov.mlogit(x)
参数:
x 一个有随机参数mlogit对象(correlation=TRUE)
值:
返回相关关系矩阵或协方差矩阵
Cracker Choice of Brand for Crakers
饼干品牌选择
distribution Functions used to describe the characteristics of estimated random parameters
函数:用来描述随机变量的估计特征
描述:
rpar对象包含有关随机参数分布的所有相关信息。函数能够获得描述性统计结果,包括分布密度、概率和分位数。
用法:
med(x, ...)
stdev(x, ...)
标准差
rg(x, ...)
qrpar(x, ...)
prpar(x, ...)
drpar(x, ...)
## S3 method for class 'rpar'
mean(x, norm = NULL, ...)
## S3 method for class 'rpar'
med(x, norm = NULL, ...)
## S3 method for class 'rpar'
stdev(x, norm = NULL, ...)
## S3 method for class 'rpar'
rg(x, norm = NULL, ...)
## S3 method for class 'mlogit'
mean(x, par = NULL, norm = NULL, ...)
## S3 method for class 'mlogit'
med(x, par = NULL, norm = NULL, ...)
## S3 method for class 'mlogit'
stdev(x, par = NULL, norm = NULL, ...)
## S3 method for class 'mlogit'
rg(x, par = NULL, norm = NULL, ...)
参数:
- x:
- norm:对变量进行标准化:在mlogit方法中为变量名,在rpar方法中是参数的绝对值。
- par:mlogit方法的必需参数(参数名或位置),如果为NULL则使用所有随机变量。
- y:函数必须估计的值
细节:
mean、med、stdev、rg
平均值、中位数、标准偏差、随机参数范围
qrpar、prpar、drpar
随机参数分位数、概率、密度
(注意:标准差sd即stdev和中位数median并不是R中常规函数计算的,)
值:
qrpar、drpar、prpar返回一个数值向量
mean、med、stdev返回一个数值向量
rg返回一个数值矩阵
参见:
mlogti估计随机参数logit模型
rpar描述rpar对象
effects.mlogit Marginal effects of the covariates
effects.mlogt 协变量的边际影响
描述:
mlogit对象的effects方法将计算选择的协变量在给定可选方案的可能性上的边际影响。
用法:
## S3 method for class 'mlogit'
effects(object, covarite = NULL, type = c("a", "ar", "rr", "ra"), data = NULL, ...)
参数:
- object:一个mlogit对象
- covariate:需要计算影响的协变量名称
- type:影响是概率和协变量的两个边际变化的比率;这个变化可以是绝对值'a'或相对值'r'。这个参数是一个包含两个字母的字符串,第一个指向概率,第二个指向协变量。
- data:一个数据框,包含了需要计算的影响。数据框的行为应等于可选择的数量。
值:
如果协变量对每个可选方案是特定的,则返回一个$J*J$数据框,$J$是可选方案数量。每一行包含一个可选方案的协变量在任何可选方案的概率上的边际效应。如果协变量是具体特定的,则返回长度为$J$的向量。
例子:
library(mlogit)
#effects.mlogit
data("Fishing", package = "mlogit")
Fish <- mlogit.data(Fishing, varying = c(2:9), shape = "wide", choice= "mode")
m <- mlogit(mode ~ price | income | catch, data = Fish)
#计算一个数据框包含的协变量均值
z <- with(Fish, data.frame(price = tapply(price, index(m)$alt, mean),
catch = tapply(catch, index(m)$alt, mean),
income = mean(income)))
#计算边界影响(第二个是弹性)
effects(m, covariate = "income", data = z)
effects(m, covariate = "price", type = "rr", data = z)
effects(m, covariate = "catch", type = "ar", data = z)
Electricity Stated preference data for the choice of electricity suppliers
电力供应商的选择偏好数据
Examples Examples of mixed logit and multinomial probit models
混合logit以及多项probit模型实例
描述:
文件包含一些已经拟合过的混合logit模型及多项probit模型。这些例子用于手册中的小节,存储在文件中是因为结果的计算需要大量时间。
用法:
data(Examples)
Fishing Choice of Fishing Mode
捕鱼模式选择
Game Ranked data for gaming platforms
赌博平台排名数据
描述:
横截面数据(在同一时点或大约同一时点收集的数据)
观测数量:91
观测对象:个人
国家:荷兰
用法:
data(Game)
格式:
数据框
HC Heating and Cooling System Choice in Newly Built House in California
加州新建冷热交换系统选择数据
Heating Heating System Choice in California House
加州房屋的供暖系统选择
hmftest Hausman-McFadden Test
Hausman-McFadden测试
描述:
对多项logit模型做不相关选择独立性假设检验。
用法:
hmftest(x, ...)
## S3 method for class 'mlogit'
hmftest(x, z, ...)
## S3 method for class 'formula'
hmftest(x, alt.subset, ...)
参数:
- x:一个mlogit或formula对象;
- z:一个mlogit对象或mlogit可选方案中的一个子集(与x为统一模型);
- alt.subset:可选方案的一个子集;
细节:
这是一种多项logit模型Haumans's一致性检验的实施方案。如果不相关备选方案的独立性适用,则每两个备选方案的概率比仅取决于这些替代方案的特征。因此使用所有替代方案或仅对其自己进行分析获得的结果是一致的。但前者效率更高。相反只有从相关子集中得到的结果是一致的。要计算检验结果,需要使用所有替代选择的估计模型以及替代方案自己的估计模型。计算需要提供mlogit的两个对象,一个mlogit对象以及一个替代方案子集的特征向量,或者一个公式和替代方法的自己。
值:
一个'htest'对象
例子:
#hmftest
library(mlogit)
data("TravelMode", package="AER")
TravelMode <- mlogit.data(TravelMode, choice="choice", shape="long",
alt.var = "mode", chid.var="individual")
TravelMode$avinc <- with(TravelMode, (mode == 'air') * income)
x <- mlogit(choice ~ wait + gcost + avinc, TravelMode)
g <- mlogit(choice ~ wait + gcost, TravelMode, reflevel = "car",
alt.subset = c("car", "bus", "train"))
hmftest(x, g)
# ***返回结果***
> hmftest(x, g)
Hausman-McFadden test
data: TravelMode
chisq = -10.77, df = 4, p-value = 1
alternative hypothesis: IIA is rejected
Ketchup Choice of Brand for Ketchup
番茄酱品牌选择
mFormula Model formula for logit models
描述:
logit模型中有两种变量:可选变量和个体特定变量。mFormula提供了一个相关的类来处理这种特异性并用合适的方法来提取模型的元素。
用法:
mFormula(object)
# S3 method for class 'formula'
mFormula(object)
is.mFormula(object)
## S3 method for class 'mFormula'
model.matrix(object, data, ...)
## S3 method for class 'mFormula'
model.frame(formula, data, ... , lhs = NULL, rhs = NULL)
参数:
- object:
- formula
- data
- lhs
- rhs
细节:
让J成为替代品的数量。该公式可能包括替代性特定变量和个体特定变量。对于后者,估计每个变量的J-1系数。对于前者,可以仅估计一个(通用)系数或J个不同系数。
mFormula是一个公式,右侧可能包含三个部分:第一个包含具有通用系数的替代特定变量,即所有替代方案的唯一系数;第二个包含个别具体变量,除了其中一个变量,其中一个系数被估计用于所有替代品;第三个包含具有替代特定系数的备选特定变量。不同的部分由“|”分隔“ 标志。如果写入标准公式,则假设只有其他具体变量
通用系数。
截距是必要的替代特定的(通用截距不被识别,因为只有效用差异是相关的)。因此,它涉及公式的第二部分。在R中通常是默认的行为是包含一个截取。没有截距的模型(几乎不具有意义)可以通过公式的第二个rhs部分中的inclint +0或-1来指定。公式的第一部分和第三部分中的+0或-1将被忽略。提供具体的方法来正确构建模型矩阵并更新公式。 mFormula函数不是直接使用的。在使用mlogit函数时,第一个参数被自动强制为mFormula对象。
值:
返回一个mFormula类对象
案例:
> #mFormula
> data("Fishing", package = 'mlogit')
> Fish <- mlogit.data(Fishing, varying = c(2:9), shape = "wide", choice = "mode")
> f1 <- mFormula(mode ~ price + catch)
> head(model.matrix(f1, Fish), 2)
boat:(intercept) charter:(intercept) pier:(intercept) price catch
1.beach 0 0 0 157.93 0.0678
1.boat 1 0 0 157.93 0.2601
>
> f2 <- mFormula(mode ~ price + catch | income)
> head(model.matrix(f2, Fish), 2)
boat:(intercept) charter:(intercept) pier:(intercept) price catch boat:income charter:income
1.beach 0 0 0 157.93 0.0678 0.000 0
1.boat 1 0 0 157.93 0.2601 7083.332 0
pier:income
1.beach 0
1.boat 0
>
> f3 <- mFormula(mode ~ price + catch | income + 0)
> head(model.matrix(f3, Fish), 2)
price catch income:boat income:charter income:pier
1.beach 157.93 0.0678 0.000 0 0
1.boat 157.93 0.2601 7083.332 0 0
>
> f4 <- mFormula(mode ~ price | income | catch)
> head(model.matrix(f4, Fish), 2)
boat:(intercept) charter:(intercept) pier:(intercept) price boat:income charter:income
1.beach 0 0 0 157.93 0.000 0
1.boat 1 0 0 157.93 7083.332 0
pier:income beach:catch boat:catch charter:catch pier:catch
1.beach 0 0.0678 0.0000 0 0
1.boat 0 0.0000 0.2601 0 0
mlogit Multinomial logit model
描述:
多项logit模型的极大似然估计,with alternative-specific and/or individual specific variables。
用法:
mlogit(formula, data, subset, weights, na.action, start = NULL,
alt.subset = NULL, reflevel = NULL,
nests = NULL, un.nest.el = FALSE, unscaled = FALSE,
heterosc = FALSE, rpar = NULL, probit = FALSE,
R = 40, correlation = FALSE, halton = NULL,
random.nb = NULL, panel = FALSE, estimate = TRUE,
seed = 10, ...)
## S3 method for class 'mlogit'
print(x, digits = max(3, getOption("digits") - 2),
width = getOption("width"), ...)
## S3 method for class 'mlogit'
summary(object, ...)
## S3 method for class 'summary.mlogit'
print(x, digits = max(3, getOption("digits") - 2),
width = getOption("width"), ...)
## S3 method for class 'mlogit'
print(x, digits = max(3,getOption("digits") - 2),
width = getOption("width"), ...)
## S3 method for class 'mlogit'
logLik(object, ...)
## S3 method for class 'mlogit'
residuals(object, outcome = TRUE, ...)
## S3 method for class 'mlogit'
fitted(object, outcome = TRUE, ...)
## S3 method for class 'mlogit'
predict(object, newdata, returnData = FALSE, ...)
## S3 method for class 'mlogit'
df.residual(object, ...)
## S3 method for class 'mlogit'
terms(x, ...)
## S3 method for class 'mlogit'
model.matrix(object, ...)
参数:
- x,object:mlogit对象
- formula:待估计模型的象征性描述
- new:更新方法的更新公式
- newdata:用于预测方法的数据框
- returnData:若为TRUE,则返回数据作为属性
- data:mlogit数据对象或普通数据框
- subset:指向观察对象子集的可选向量
- weights:一个可选的权重向量
- na.action:数据包含NA时的指示函数
- start:一个起始值向量
- alt.subset:包含模型需要估计的可选方案子集的字符串特征向量
- reflevel:基础的可选方案
- nests:一个命名的字符向量列表,每个名称都是一个嵌套,相应的向量是属于这个嵌套的一组替代
- un.nest.el:一个布尔值,若为TRUE,则对嵌套logit模型加强弹性假设
- unscaled:一个布尔值,若为TRUE,估计嵌套logit模型的unscaled
- heterosc:一个布尔值,若为TRUE,估计异方差logit模型
- rpar:一个命名矢量,其名称是随机参数,值分布:正常为'n',对数正态为'l',截断正态为't',均匀为'u'
- probit:若为TRUE,估计多项probit模型
- R:如果heterosc = TRUE,则使用高斯正交方法的函数评估次数,如果rpar不为NULL,则伪随机数的绘制次数
- correlation:只有在rpar不为NULL的情况下才是相关的,如果为真,则考虑随机参数之间的相关性
- halton:只有当rpar不为NULL时才有效,如果不为NULL,则使用哈顿序列而不是伪随机数。 如果halton = NA,则序列的素数使用一些默认值(实际上,素数按顺序使用),并且删除的元素数量。 否则,哈顿应该是一个列表,其中包含素数素数(使用素数)和下降(元素数量下降)
- random.nb:只有当rpar不为NULL时才相关,用户提供的矩阵是随机的
- panel:仅当rpar不为NULL且数据是同一单元的重复观察值时才相关; 如果为TRUE,则使用面板技术估计混合logit模型
- estimate:一个布尔值,指示模型是否应该被估计:若为not,则返回model.frame
- seed:随机因子
- digits:闲书小数位数
- width:打印宽度
- outcome:一个布尔值,表示对于拟合和残差方法,是应该返回一个矩阵(每个选择,每个选择的一个值)还是一个向量(对于每个选择,仅选择所选择的替代值)
细节:
有关如何使用公式参数,请参阅mFormula。
数据参数可以是普通的数据框架。在这种情况下,应提供一些补充参数,并将其传递给mlogit.data。请注意,从公式推导出不必要指出选择参数。
该模型是使用mlogit.optim函数估计的
可以估计该模型的基本多项Logit模型和三个重要程度
如果heterosc = TRUE,则估计异方差logit模型。 J-1额外的系数被估计代表J-1替代的比例参数,参考替代的标度参数被归一化为1.概率没有封闭形式,它们是使用高斯正交法估计的
如果nests不为NULL,则估计嵌套logit模型
如果rpar不为NULL,则估计随机参数模型。使用R绘制的模拟近似概率,如果哈顿不为空,则使用哈顿序列。伪随机数字是从标准法线绘制的,并执行相关变换以获得从正常,对数正态,截尾正态或均匀分布绘制的数字。如果correlation = TRUE,则通过估计协方差矩阵的cholesky分解的分量来考虑随机参数之间的相关性。使用G个随机参数,无相关性G估计G标准偏差,估计相关G *(G + 1)/ 2系数。
值:
一个mlogit对象包含下列元素:
- coefficients
- logLik:对数似然值
- hessian:对数似然收敛度的黑塞矩阵
- gradient:对数似然收敛度的梯度矩阵
- call:匹配
- est.stat:关于估计的信息,使用时间,优化方法
- freq:选择的频率
- residuals:残差
- fited.values:拟合值
- formula:公式
- expanded.formula:公式
- model:使用的模型结构
- index:选择的指标和替选方案
作者:
Yves Croissant
例子:
#mlogit
data("Fishing", package = "mlogit")
#mlogit.data生成mlogit函数可以调用的数据框
Fish <- mlogit.data(Fishing, varying = c(2:9), shape = "wide", choice = "mode")
#varying选择特定的指标变量,shape厡数据格式,choice选择变量
#summary查看模型基本信息
summary(mlogit(mode ~ price + catch, data = Fish)) #条件模型
summary(mlogit(mode ~ 0 | income, data = Fish)) #多项模型
library("nnet") #nnet包能够估计多项模型
summary(multinom(mode ~ income, data = Fishing))
#一个混合模型
m <- mlogit(mode ~ price + catch | income, data = Fish)
summary(m)
#同样的模型,选取Charter为参考水平
m <- mlogit(mode ~ price + catch | income, data = Fish, reflevel = "charter")
#同样的模型,包含子集字符串向量
m <- mlogit(mode ~ price + catch | income, data = Fish, alt.subset = c("charter", "pier", "beach"))
#观测中含有不完整数据的情况
##含有缺失数据
Fishing2 <- Fishing
Fishing2[1, "price.pier"] <- Fishing2[3, "price.beach"] <- NA #缺失price自变量
mlogit(mode ~ price + catch | income, Fishing2, shape = "wide", choice = "mode", varying = 2:9)
##含有缺失行的数据
data("TravelMode", package = "AER")
Tr2 <- TravelMode[-c(2, 7, 9),]
mlogit(choice ~ wait + gcost | income + size, Tr2, shape = "long",
chid.var = "individual", alt.var = "mode", choice = "choice")
#异方差logit模型
data("TravelMode", package = "AER")
h1 <- mlogit(choice ~ wait + travel + vcost, TravelMode,
shape = "long", chid.var = "individual", alt.var = "mode",
method = "bfgs", heterosc = TRUE, tol = 10)
#一个嵌套logit模型
TravelMode$avincome <- with(TravelMode, income * (mode == "air"))
TravelMode$time <- with(TravelMode, travel + wait)/60
TravelMode$timeair <- with(TravelMode, time * I(mode == "air"))
TravelMode$income <- with(TravelMode, income / 10)
#以上为数据准备
TravelMode$incomeother <- with(TravelMode, ifelse(mode %in% c('air', 'car'), income, 0))
n1 <- mlogit(choice ~ gcost + wait + incomeother, TravelMode,
shape = 'long', alt.var = 'mode',
nests = list(public = c('train', 'bus'), other = c('car', 'air'))) #嵌套结构
#类似的弹性嵌套
n12 <- update(n1, un.nest.el = TRUE) #将iv.public 与 iv.other 合并
#Probit模型
pr <- mlogit(choice ~ wait + travel + vcost, TravelMode,
shape = "long", chid.var = "individual", alt.var = "mode",
probit = TRUE) #无法运行
#一个混合logit模型 Not Run
rp1 <- mlogit(mode ~ price + catch | income, Fishing, varying = c(2:9),
shape = 'wide', rpar = c(price = 'n', catch = 'n'),
correlation = TRUE, halton = NA,
R = 10, tol = 10, print.level = 0)
summary(rp1)
rpar(rpl)
cor.mlogit(rp1)
cov.mlogit(rp1)
rpar(rp1, "catch")
summary(rpar(rp1, "catch"))
#一个有序归类模型
data("Game", package = "mlogit")
g <- mlogit(ch ~ own | hours, Game, choice = 'ch', varying = 1:2,
ranked = TRUE, shape = "wide", reflevel = "PC")
mlogit.data | data.frame for logit model
logit数据库格式
描述:
形成一个mlogit函数能够调用的数据框。
用法:
mlogit.data(data, choice, shape = c("wide", "long"), varying = NULL,
sep = ".", alt.var = NULL, chid.var = NULL, alt.levels = NULL,
id.var = NULL, opposite = NULL, drop.index = FALSE,
ranked = FALSE, ...)
## S3 method for class 'mlogit.data'
mean(x, ...)
## S3 method for class 'pseried'
print(x, ...)
参数:
- data:
- x:mlogit数据框或调和级数对象
- choice:
- shape
- varying:宽形数据
- sep:分隔符
- alt.var:alternative
- chid.var:choice
- alt.levels:方案标签
- id.var
- oppisite
- drop.index
- ranked
值:
- index of choice made (chid.var)
- index of the alternative (alt)
- index of the individual (id)
作者:
Yves Croissant
案例:
#mlogit.data
#案例一long data.frame
data("TravelModel", package = "AER")
TM1 <- mlogit.data(TravelMode, choice = "choice", shape = "long",
alt.levels = c("air", "train", "bus", "car"))
#alt variable -- mode
TM2 <- mlogit.data(TravelMode, choice = "choice", shape = "long",
alt.var = "mode")
#chid variable -- individual
TM3 <- mlogit.data(TravelMode, choice = "choice", shape = "long",
id.var = "individual",
alt.levels = c("air", "train", "bus", "car"))
#two own provided variables(id--alt)
TM4 <- mlogit.data(TravelMode, choice = "choice", shape = "long",
id.var = "individual", alt.var = "mode")
#deleted two own provided variables(id--alt)
TM5 <- mlogit.data(TravelMode, choice = "choice", shape = "long",
id.var = "individual", alt.var = "mode", drop.index = TRUE)
#案例二Train wide data.frame
data("Train", package = "mlogit")
Train0 <- mlogit.data(Train, choice = "choice", shape = "wide",
varying = 4:11, alt.levels = c("ch1", "ch2"), sep = "",
opposite = c("price", "time", "change", "comfort"))
#Car (wide data.frame)
data("Car", package = "mlogit")
Car1 <- mlogit.data(Car, varying = 5:70, shape = "wide", sep = "",
choice = "choice", alt.levels = 1:6)
#HC
data("HC", package = "mlogit")
HC1 <- mlogit.data(HC, choice = "depvar", varying = c(2:8, 10:16), shape = "wide")
#Game 相应变量为排名变量
data("Game", package = "mlogit")
G <- mlogit.data(Game, shape = "wide", varying = 1:12, alt.var = "platform",
drop.index = TRUE, choice = "ch", ranked = TRUE)
data("Game2", package = "mlogit")
G2 <- mlogit.data(Game2, shape = "long", choice = "ch", alt.var = "platform", ranked = TRUE)
mlogit.optim | Non-linear minimization routine
非线性最优化
描述:
该函数执行多项logit模型的似然函数优化
用法:
mlogit.optim(loglik, start, method = c('hfgs', 'nr', 'bhhh'), iterlim = 2000,
tol = 1E-06, ftol = 1e-08, steptol = 1e-10,
print.level = 0, constPar = NULL, ...)
参数:
- loglik
- start
- method
- iterlim
- tol
- ftol
- steptol
- print.level
- constPar
细节:
值:
返回一个列表,包括以下内容:
- optimum:
- coefficients:
- est.stat
MobilePhones | Stated Preferences survey for mobile phones
用法:
data(MobilePhones)
Mode | Mode Choice
用法:
data(Mode)
ModeCanada | Mode Choice for the Montreal-Toronto Corridor
用法:
data(ModeCanada)
案例:
#ModeCanada 数据
data("ModeCanada", package = "mlogit")
bususers <- with(ModeCanada, case[choice == 1 & alt == "bus"])
ModeCanada <- subset(ModeCanada, !case %in% bususers)
ModeCanada <- subset(ModeCanada, nchoice == 4)
ModeCanada <- subset(ModeCanada, alt != "bus")
ModeCanada$alt <- ModeCanada$alt[drop = TRUE] #???
KoppWen00 <- mlogit.data(ModeCanada, shape = 'long', chid.var = 'case',
alt.var = 'alt', choice = 'choice',
drop.index = TRUE) #删除索引
pc1 <- mlogit(choice ~ freq + cost + ivt + ovt, KoppWen00, reflevel = 'car', #reflevel基础方案
nests = 'pcl', constPar = c('iv.train.air'))
plot.mlogit | Plot of the distribution of estimated random paramenters
绘制随机参数估计的分布
描述:
对rpar及mlogit对象绘制随机参数估计分布的方法。
用法:
## S3 method for class 'mlogit'
plot(x, par = NULL, norm = NULL,
type = c('density', 'probability'), ...)
## S3 method for class 'rpar'
plot(x, norm = NULL, type = c('density', 'probability'), ...)
参数:
- x:rpar或mlogit对象
- type:要绘制的函数,密度或概率密度函数
- par:随机参数的一个子集,若为NULL,则选择所有参数
- norm:系数名
细节:
对rpar对象绘制一幅图形,mlogit一幅图包含所选的随机变量。
作者:
Yves Croissant
rpar | random parameter objects
随机参数对象
描述:
rpar对象包含随机参数估计的相关信息。mlogit的rpar对象的同名函数。
用法:
rpar(x, par = NULL, norm = NULL, ...)
参数:
- x:mlogit对象
- par:提取参数的子集,若NULL,选择所有参数
- norm:用于归一化的系数(如果有的话)
细节:
mlogit对象包含一个名为rpar的元素,其中包含rpar对象列表,每个随机参数的估计。打印为每个参数的分布及名称,形式类似一个数值向量。
值:
一个rpar对象包括
- dist:分布名称
- mean:
- sigma:第二个
- name:参数名
作者:
Yves Croissant
scoretest | The three tests for mlogit models
mlogit模型的三种检验
概述:
mlogit模型的三种检验:Wald检验,似然比检验以及新的score检验。
用法:
scoretest(object, ...)
## S3 method for class 'mlogit'
scoretest(object, ...)
## S3 method for class 'mlogit'
waldtest(object, ...)
## S3 method for class 'mlogit'
lrtest(object, ...)
参数:
- object:mlogit / formula
两种参数可用。
mlogit参数引入,起始模型使用该参数
formula / mlogit 引入,'waldtest' and ‘lrtest’
细节:
“lmtest”包中“waldtest”和“lrtest”的“scoretest”功能和“mlogit”方法提供了基础设施来计算“mlogit”对象假设的三个检验。
第一个参数必须是'mlogit'对象,第二个参数为拟合模型或公式,如果第二个是拟合模型或公式,则三个函数的行为是“waldtest”和“lrtest”的默认方法之一:提供的两个模型应该嵌套,并且测试的假设是约束模型 是“正确”模式。
如果没有提供第二个模型,并且提供的模型是约束模型,则应该提供一些具体的“mlogit”参数来描述如何更新初始模型。如果第一个模型是无约束模型,则将一自然约束模型一起测试;例如,异方差logit模型对应的约束是多项logit模型。
值:
一个htest
对象
作者:
Yves Croissant
案例:
#scoretest
library('mlogit')
data('TravelMode', package = "AER")
m1 <- mlogit(choice ~ wait + travel + vcost, TravelMode,
shape = 'long', chid.var = 'individual', alt.var = 'mode')
h1 <- mlogit(choice ~ wait + travel + vcost, TravelMode,
shape = 'long', chid.var = 'individual', alt.var = 'mode',
method = 'bfgs', heterosc = TRUE)
lrtest(m1, h1)
waldtest(h1)
scoretest(m1, heterosc = TRUE)
Telephone | Choice anmong residential telephone service options for local calling
概述:
数据框
用法:
data(Train)
TollRoad | Stated Preferences survey for a toll road
概述:
数据框
用法:
data(TollRoad)
Train | Stated Preferences for Train Traveling
描述:
数据框
用法:
data(Train)
Tuna | Choice of Brand for Tuna
概述:
数据框
用法:
data(Tuna)
vcov.mlogit | vcov method for mlogit objects
概述:
vcov
函数提取mlogit对象的协方差矩阵、误差、随机参数
用法:
## S3 method for class 'mlogit'
vcov(object, what = c('coefficient', 'errors', 'rpar'),
type = c('cov', 'cor', 'sd'), reflevel = NULL, ...)
参数:
- object:
- what:指示哪个协方差矩阵必须被提取:默认值是系数,此时vcov像往常一样行事。 如果等于误差,返回模型误差的协方差矩阵。 最后,如果等于rpar,则提取随机参数的协方差矩阵
- type:使用次参数,返回协方差矩阵(默认);还可提取相关系数矩阵和标准差向量
- reflevel:提取多项式概率模型的误差的相关性; 在这种情况下,协方差矩阵的误差差异被返回,并且通过该参数,指示用于区分的替代方法
细节:
取代了 cor.mlogit 以及 cov.mlogit。
作者:
Yves Croissant
Yogurt | Choice of Brand for Yogurts
概述:
数据框
用法:
data(Yogurt)
——2017.4.10
——云塘校区510
今天突然记了个时间、位置。
因为据传下学期要搬去金盆岭。
网友评论