r有不用aic准则和bic准则的逐步回归吗

Logistic&Regression&in&R
1.模型简介:
说起统计中最常用的模型,非回归莫属。在挖掘中,也只有回归能很好的解决因变量为连续型变量的预测问题,这篇文章主要对回归中一种特殊的形式:Logistic回归。
Logistic回归解决的是分类问题,特别在二项分布中,Logistic是最重要的模型(没有之一)。Logistic回归根据因变量类别不同,又可以分为Binary
Logistic 回归分析和Multinomial Logistic 回归分析,Binary
Logistic回归模型中因变量只能取两个值1和0虚拟因变量),而Multinomial Logistic
回归模型中因变量可以取多个值。本文主要基于R讨论Binary Logistic回归。
2.主要思想:
Logistic回归主要通过构造一个重要的指标:发生比来判定因变量的类别。
在这里我们引入概率的概念,把事件发生定义为Y=1,事件未发生定义为Y=0,那么事件发生的概率为p,事件未发生的概率为1-p,把p看成x的线性函数;
首先看简单的概率线性模型:
回归中,最常用的估计是最小二乘估计,因为使得p在[0,1]之间变换,最小二乘估计不太合适,有木有一种估计法能让p在趋近与0和1的时候变换缓慢一些(不敏感),这种变换是我们想要的,于是引入Logit变换:
我们对p/(1-p)也就是发生与不发生的比值取对数,也称对数差异比。经过变换后,p对x就不是线性关系了。
于是,模型为:
用p来代替θ,公式变换为:
我们用r来看一下曲线的形状:
library(ggplot2)
x=seq(-10,10,by=0.2)
p=exp(x)/(1+exp(x))
df=data.frame(x,p)
qplot(x,p,data=df,geom="line",group=1)
p在0和1附近变化不敏感,ps:这条曲线帮了我一个大忙,最近做RTB竞价算法时,需要按照CTR设定一个CTR指导价,然后以CPC做曲线的修正,出于成本考虑,我们的出价不会高于某个固定值K,所以把这条曲线变换一下就派上大用场了。(扯远了)
这条曲线的主要特性是θ函数取值可以在-∞变到+∞,p的取值在[0,1],且极值端变化不敏感。这就是我们想要的。值得注意的是,经过logit变换,已经不是线性模型。
3.基于R的案例
以下这个例子主要参考《Introduction to statistical learning with
R》,强烈推荐这本书。尤其是回归部分,讲解的很透彻。
数据以Smarket为例,该数据包含年标准普尔500指数1250个观测值,9个变量。9个变量分别为:年份,前5个交易日的收益率,前一个交易日和交易额(单位:billions),今天的回报率和走势(上升或下降)。
df=read.csv("house.csv",header=TRUE)
data.frame': 1250 obs. of &9 variables:
&$ Year & & :
&$ Lag1 & & :
num &0.381 0.959 1.032 -0.623 0.614 ...
&$ Lag2 & & :
num &-0.192 0.381 0.959 1.032 -0.623 ...
&$ Lag3 & & :
num &-2.624 -0.192 0.381 0.959 1.032 ...
&$ Lag4 & & :
num &-1.055 -2.624 -0.192 0.381 0.959 ...
&$ Lag5 & & :
num &5.01 -1.055 -2.624 -0.192 0.381 ...
&$ Volume & : num
&1.19 1.3 1.41 1.28 1.21 ...
&$ Today & &:
num &0.959 1.032 -0.623 0.614 0.213 ...
&$ Direction: Factor w/ 2 levels "Down","Up": 2 2
1 2 2 2 1 2 2 2 ...
#以前5个交易日的收益率和前一个工作日的交易额为自变量,今天的走势做因变量做Logistic回归;
glm.fit=glm(Direction~Lag1+Lag2+Lag3+Lag4+Lag5+Volume,
data=Smarket,family="binomial")
summary(glm.fit)
glm(formula = Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Lag5
& & Volume, family = "binomial",
data = Smarket)
Deviance Residuals:&
& &1Q &Median
-1.446 &-1.203 & 1.065
& 1.145 & 1.326
Coefficients:
&Estimate Std. Error z value
(Intercept) -0.126000 & 0.240736
Lag1 & & &
&-0.073074 & 0.050167
Lag2 & & &
&-0.042301 & 0.050086
Lag3 & & &
& 0.011085 & 0.049939
Lag4 & & &
& 0.009359 & 0.049974
Lag5 & & &
& 0.010313 & 0.049511
Volume & & &
0.135441 & 0.158360 & 0.855
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1731.2 &on 1249
&degrees of freedom
Residual deviance: 1727.6 &on 1243
&degrees of freedom
AIC: 1741.6
Number of Fisher Scoring iterations: 3
有时候,预测股市就是这么不靠谱。很多自变量没通过验证,接下来我们基于AIC准则用逐步回归做一下变量筛选;
注:AIC一般公式为 AIC=2k-ln(L),其中k为参数的个数,L为估计模型最大化的似然函数值;
step(glm.fit)
Start: &AIC=1741.58
Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Lag5 + Volume
& &Df Deviance &
- Lag4 & &1 &
- Lag5 & &1 &
- Lag3 & &1 &
- Lag2 & &1 &
- Volume &1 & 0.3
& & &1727.6
- Lag1 & &1 &
#此处略去一百字;
Direction ~ 1
Call: &glm(formula = Direction ~ 1, family =
"binomial", data = Smarket)
Coefficients:
(Intercept) &
& & 0.07363
Degrees of Freedom: 1249 Total (i.e. Null); &1249
Null Deviance: &&
Residual Deviance: 1731&AIC:
这个结果足以让你崩溃,扔硬币都比这靠谱。原来不用任何变量预测是最靠谱的。
#模型的评估
glm.probs =predict(glm.fit,type ="response")
glm.probs[1:10]
#生成哑变量
contrasts(Smarket$Direction)
glm.pred=rep ("Down " ,1250)
glm.pred[glm .probs &.5]=" Up"
table(glm .pred ,Direction )
mean(glm.pred== Direction )
[1] 0.5216
通过混淆矩阵计算分类的准确性仅有52%,很不乐观;
挖掘本质上是挖掘有趣的的模式,以上数据说明我们白忙活了一场,但是我们通过实例学习了Logistic模型。
当然我们还可以通过数据变换或构造新的变量来提升拟合降低AIC,最终,模型讲究的还是泛化能力;
有时候:拟合很丰满,泛化很骨感。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。自回归模型选择的多准则方法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
自回归模型选择的多准则方法
上传于||暂无简介
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢苹果/安卓/wp
苹果/安卓/wp
积分 659, 距离下一级还需 141 积分
权限: 自定义头衔, 签名中使用图片
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡, 匿名卡, 抢沙发下一级可获得
权限: 隐身
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
开心签到天数: 141 天连续签到: 1 天[LV.7]常住居民III
书接上回如果存在着严重的多重共线性,则需要使用合适的方法尽量地降低多重共线性,有两种比较常用的方法:一、逐步回归逐步回归主要分为向前逐步回归(forward)、向后逐步回归(backward)和向后向前逐步回归(both)。逐步回归本身并不是一种新的回归或者参数的估计方法,所用到的参数估计方法都是原来的,是从众多的变量中选出最优模型的变量的一套方法。即假如因变量Y ,4 个自变量分别是X1 ,X2 , X3 ,X4 。当所有自变量都进入到模型中时,Y =α +β1X1+β2X2 +β3X3 +β4X4 +μ 。现在是如何利用逐步回归方法从中选取最优的模型?向前逐步回归的思路是逐个引入变量。具体来讲是,先用因变量与每个自变量都进行回归,选取最优的模型,假如第一步选取的最优模型是Y =α +β1X1 +μ ;接着在第一步的最优模型的基础上,从剩余的变量X2,X3 ,X4 中每个分别加入到第一步的最优模型中,得Y =α +β1X1 +βj Xj +μ , j = 0,2,3,4, j = 0即为Y =α +β1X1 +μ ,比较这四个模型,如果发现模型Y =α +β1X1 +β3X3+μ 最优;接着再在第二步的最优模型Y =α +β1X1 +β3X3 +μ 上,从剩余的变量X2, X4中每个分别加入到第二步的最优模型中,得Y =α +β1X1+β3X3+βjXj+μ , j = 0,2,4,比较这三个模型,如果 j = 0时,模型最优,则最终选取的最优模型是Y =α +β1X1 +β3X3+μ向后逐步回归的思路是先引入全部自变量,然后逐个剔除不重要的变量,其剔除变量的思路和向前逐步回归的思路类似。向后向前逐步回归先逐步剔除变量,但可以后面的步骤中重新引入原先被剔除的变量,其方向是双向的,而向后逐步回归的自变量一旦被剔除后,在后面的步骤中就不会被重新引入,是单向的。注意,上文所指的最优模型一般通过一些准则来确定,比如F 值、可决系数R2、AIC 等。继续上篇提到的财政收入影响因素的例子:首先介绍一下step函数的用法,它是属于stats包,使用之前需先加载。step(object, scope,scale = 0,& &&&direction = c(&both&,&backward&, &forward&),& &&&trace = 1, keep = NULL, steps = 1000, k =2, ...)
14:06:40 上传
向前逐步回归的最优模型是把所有自变量都引入模型,没有剔除任何变量。
14:06:44 上传
向后逐步回归中,从AIC最小的变量依次逐步剔除了农业,建筑业,受灾三个变量,第四步不剔除变量时最优,即最终模型中包含工业,人口,消费三个变量。二、岭回归当解释变量之间存在多重共线性时,即X′X ≈ 0,则Var(βˆ) =σ 2 (X′X)−1将会增大,原因是X′X接近奇异。如果将X′X加上一个正常数对角阵λ I (λ & 0,I 为单位矩阵)即X′X +λ I,使得 X′X+λI ≈ 0的可能性比 X′X ≈ 0的可能性更小,那么X′X +λ I接近奇异的程度就会比X′X小的多,这就是岭回归的最初想法。R里MASS包的lm.ridge()函数可以用来做岭估计,其用法与lm()用法类似。可以证明β 的岭回归估计为βˆ (λ) = (X’X+λI)-1 X’Yλ 称为岭参数.岭估计的关键是选取岭参数λ,岭迹法是选取岭参数λ的常用方法之一。若记βˆ (λ)为βiˆ (λ )的第i个分量,它是λ 的一元函数。当λ 在[0,∞)上变化时,βˆ (λ)的图形称为岭迹(ridge trace)。βˆ (λ )的每个分量βj ˆ(λ )
的岭迹画在同一个图上,根据岭迹的变化趋势选择λ值,使得各个回归系数的岭估计大体上稳定,并且各个回归系数岭估计值的符号比较合理并符合实际。lm.r是属于MASS包的,用法和lm类似& lm.r&-lm.ridge(revenue~industry+agriculture+construction+consumption+pop+disaster,data=dat)& lm.r& && && && && && & industry& &agriculture&&construction& &consumption
6.&&1. -7.&&4.&&6. & && && & pop& && &disaster -7.&&4. 不指定λ值时,默认为0,结果和OLS一致。下面生成一个lambda序列,从0到0.3,间隔0.001,。同时把不同参数的估计值βˆ (λ )估计出来,画出岭迹图。如下:
14:06:46 上传
当λ取0.25-0.3之间时,参数的估计大致趋于稳定。& select(lm.ridge(revenue~industry+agriculture+construction+consumption+pop+disaster,data=dat,lambda=seq(0,0.3,0.001)))modified HKB estimator is 0. modified L-W estimator is 0. smallest value of GCV&&at 0.004 通过select函数可以选取更为精确的岭参数,本例中我们取λ=0.004& lm.ridge(revenue~industry+agriculture+construction+consumption+pop+disaster,data=dat,lambda=0.004)& && && && && && & industry& &agriculture&&construction& &consumption& && && &&&pop& && &disaster
5.&&1. -3.&&1.&&5. -5.&&4. 再代入到lm.ridge()函数中,就可以估计出相应的岭估计结果。本节完,下节开始讲异方差性问题。、
支持楼主:、
购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
载入中......
本帖被以下文库推荐
& |主题: 28, 订阅: 1
[img]http://pic./forum//184005lbzbae6212af7azk.
论坛好贴推荐
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
为做大做强论坛,本站接受风险投资商咨询,请联系(010-)
邮箱:service@pinggu.org
合作咨询电话:(010)
广告合作电话:(刘老师)
投诉电话:(010)
不良信息处理电话:(010)
京ICP证090565号
京公网安备号
论坛法律顾问:王进律师苹果/安卓/wp
苹果/安卓/wp
积分 11095, 距离下一级还需 7205 积分
权限: 自定义头衔, 签名中使用图片, 设置帖子权限, 隐身, 设置回复可见, 签名中使用代码
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡, 匿名卡, 抢沙发, 提升卡, 沉默卡, 千斤顶, 变色卡下一级可获得
道具: 置顶卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
开心签到天数: 4 天连续签到: 1 天[LV.2]偶尔看看I
help(step)
可得案例:
summary(lm1 &- lm(Fertility ~ ., data = swiss))
slm1 &- step(lm1)
summary(slm1)
结果如下:
23:14:40 上传
结果该怎样解释?
step的缺省是backward,所以最开始是那个最大的model
AIC=190.69
Fertility ~ Agriculture + Examination + Education + Catholic +
Infant.Mortality
然后每次去掉一个变量重新做,把得到的AIC值比较,选最小的那个。这里是
- Examination
然后只剩下4个变量了。继续每次去掉一个变量重新做。结果发现无论去掉哪一个变量得到AIC值都比开始的大(最小的AIC是下面这个)
载入中......
step的缺省是backward,所以最开始是那个最大的model
Start:&&AIC=190.69
Fertility ~ Agriculture + Examination + Education + Catholic +
& & Infant.Mortality
然后每次去掉一个变量重新做,把得到的AIC值比较,选最小的那个。这里是
- Examination& && & 1& &&&53.03 .86
然后只剩下4个变量了。继续每次去掉一个变量重新做。结果发现无论去掉哪一个变量得到AIC值都比开始的大(最小的AIC是下面这个)
&none&& && && && && && && && &&&.86
这表明没法再去掉任何变量了,所以最后选的模型就是
Fertility ~ Agriculture + Education + Catholic + Infant.Mortality
热心帮助其他会员
总评分:&学术水平 + 1&
热心指数 + 1&
信用等级 + 1&
ddddddddddddddddddddddddddddd
看看。。。
qoiqpwqr 发表于
step的缺省是backward,所以最开始是那个最大的model
Start:&&AIC=190.69
Fertility ~ Agriculture + Exa ...版主厉害!
非常感谢!
各位大侠,”多对多“逐步回归在R里有这方面的包嘛?
初级热心勋章
初级热心勋章
初级信用勋章
初级信用勋章
初级学术勋章
初级学术勋章
中级热心勋章
中级热心勋章
高级热心勋章
高级热心勋章
论坛好贴推荐
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
为做大做强论坛,本站接受风险投资商咨询,请联系(010-)
邮箱:service@pinggu.org
合作咨询电话:(010)
广告合作电话:(刘老师)
投诉电话:(010)
不良信息处理电话:(010)
京ICP证090565号
京公网安备号
论坛法律顾问:王进律师主题:R语言中的AIC准则为什么和Eviews的结果不同? | COS论坛 | 统计之都}

我要回帖

更多关于 aic sc准则 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信