当前课程知识点:基于R语言的社会统计分析 >  第十二章: Logistic回归和其他高级统计方法简介 >  12.6 R语言实践 >  Video

返回《基于R语言的社会统计分析》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《基于R语言的社会统计分析》慕课在线视频列表

Video课程教案、知识点、字幕

下面是第十二周的关于逻辑斯蒂回归模型的R的上机实践

这个例子非常简单

我们只是很快的给大家讲解一下

逻辑斯蒂回归用R怎么做啊

用到的这个例子仍然是我之前老跟大家

提的这个Statistical Learning这本书里面

的例子

那数据是那里的呢所以我们仍然要library(ISLR)

把这个

捐献包把它给读进去

那用到的数据叫做stock market data

股票市场数据啊在今天

来说你们今天应该很关注这个股票数据的问题

我们看这个我用#把它变灰的

这个说明啊R就不会读它了

它说this data set consists of

percentage returns for the s&p 500 stock index

s&p 500 stock index指的是

标准普尔500股票指数啊

标准普尔

那它记录了1250天的数据

也就是从2001年一直到2005年的

每天的交易数据

那对于每天的这个

这个记录呢我都有好几个变量来支持它啊

比如说我有Lag1

一直到 Lag5啊 Lag1一直到Lag5代表的是

percentage return就是收益百分比啊就是

这一天的前五天股市的收益百分比

然后

同时我还记录了它叫Volume

也就是这一天的前一天

shares traded on the previous day 前一天的这个

交易总量 然后Today

这是我们实际上关注的这个响应变量啊

我们关注的是今天我的

收益会怎么样对吧我一般不太

不太想去预测过去的事情我想预测现在或者想预测未来啊

这个例子里面我想预测的就是现在我的percentage return 我现在

今天的

收益比例

然后Direction

实际上这是我们说的这个

分类的情况啊我想

我不管具体的这个

percentage return是多少我更想知道它到底是

看跌还是看涨

所以我的Direction不是up就是down啊然后我更关注的是

会不会涨所以如果是up

它就等于1 我的y值就等于1 如果是down

我的y值就等于0

好下面我们来看看这个数据啊

我们library(ISLR)把它读进去

读完了以后呢我们看看这个数据

都有哪些变量

看这个数据有哪些变量用到的这个语句

依然是names

然后这个数据叫Smarket

然后你会看到这个数据其实我刚才已经讲过

这些变量分别是什么了啊

我有到底是哪年的数据然后

这个

这一天的前一天前两天前三天前四天前五天

然后前一天的交易总量

还有今天的收益比

还有Direction到底是看跌看涨

然后下面这个dim(Smarket)

是想

知道Smarket这个数据的维度也就是我想知道

然后这个数据是几行乘以几列

几行代表的是有多少个观测值

几列代表的是有多少个变量

所以你看dim(Smarket)

1250行乘以9列

9个变量然后1250个

记录1250条记录

然后我下面还可以用一个特别棒的命令叫summary(Smarket)

summary(Smarket)呢会给出

这个数据里面

每一个变量的特别简单的描述性统计

你会看到看其它的变量从

Year一直到Today这都是数量型

数值型的变量

如果它是数值型的变量你看它都会给出

最小值

从2001到2005

然后中位数2003啊这个Lag1

最小值-4.92最大值

5.73然后中位数0.039以此类推

你可以看一看啊交易总量啊还有

Today的这个

percentage

return 就是收益百分比

然后下面

注意Direction啊因为它是一个

分类变量所以它就只有一个

计数了down有602天

涨的天数有648天

下面这一条命令叫pairs

我跑一下

你们看看出现什么了

速度有点慢啊

这个pairs实际上出现的

是一个散点图

矩阵两两的散点图矩阵啊

是想用最快的方法看看我的

变量之间都有一个什么样的关系

然后这个散点图矩阵起码没有给我什么

特别具体的信息啊

我们看基本上所有的

图都是成一团啊看不出

一个特别明显的趋势

那我们先把它关上啊告诉大家

pairs是一个特别简单的看散点图

矩阵的一个函数

那下面我用correlation啊实际上我是想看

相关系数矩阵

跑了cor(Smarket)以后它

报错它说x必须为数值

什么问题呢Direction

它是一个分类型变量于是乎R就拒绝给你出

相关系数矩阵了

那怎么办呢我想把这第九个变量抛出去

所以要减9啊把这第九个变量抛出去

剩下八个变量看它们的相关系数

然后你看这得到了一个相关系数矩阵

我放眼望去基本上所有

所有的系数都是零点零几说明什么

说明变量之间的相关性是很小的这和我们

之前看到的一团乱麻没有什么清晰趋势的那个散点图

矩阵也是

一致的啊那稍微明确一点的有一个

大一点的相关系数是谁啊

Volume和Year之间的关系

这说明什么呢

Volume代表的是日交易总量 Year

越高日交易总量越大说明

随着时间的进展

交易总量是在增加的

那下面我可以画图看看啊我可以把这个数据

attach进来这样R就知道到哪去找变量了

然后我plot(Volume)

你会看到

一共有1250天啊横轴代表的是每一条记录

随着记录数的增加就是时间一点一点的累积

Volume实际上是有一个向上的趋势的啊

就是随着经济总量的增大Volume

是在增加的这个和我们直观的

想象是一致的

然后逻辑斯蒂回归用到的

函数很重要啊叫做

glm它代表的是generalize linear model

广义的线性模型

我们前面就讲过说

当你的

响应变量是分类变量

自变量是连续型或者分类型都可以啊

我们用到的整个的一个

回归模型体系叫做广义线性模型

然后当你的

响应变量是二分变量的时候

我们用的是逻辑斯蒂回归啊

所以这里面呢glm.fit=glm()这是广义线性模型

广义线性模型除了逻辑斯蒂回归以外还有好多好多

所以你这里面一定要

说清楚说我这里面是family=binomial

对应的就是逻辑斯蒂回归模型

二项分布的的啊不是0就是1

所以这个时候它才知道

做的是logistic回归

那然后我

一气呵成啊用summary(glm.fit)直接让它

出结果了我先把这图关掉

我们看看回归结果啊

coefficient

一股脑都出来了

然后estimate

Lag1、Lag2都是负值 Lag3、Lag4、Lag5都是正值但是

很不幸发现所有的P值都是

大于0.05的

不显著啊

这也就是说明

股市是很难预测的啊

就是我想预测

今天是看涨

还是看跌用这样一个逻辑斯蒂

回归模型显然预测的不是很有劲

那我不管它都

实际上都

不显著的这件事啊我继续再分析分析一下这个模型

只是

帮大家掌握一下

几个重要函数啊

首先我用coef(glm.fit)

实际上

要简化出来我就想让

它给我显示一下

我这个回归模型的系数估计值

分别是多少

然后或者是我用summary(glm.fit)

glm.fit 然后用$coef

那下面我说了我都

不需要你什么系数啊标准误啊只想要p值

p值是整个这一坨数里面

第四列对吧

第四列的话我在刚才那个基础上

逗号加一个4

出来的就是第四列的

0.600在这里

0.14 0.145在这里

然后下面

很多同学很关注如果说我想

生成预测值要怎么办

我先问你预测值会预测出什么

一般的话你什么都不写的话预测值会预测出

y等于1的概率也就是说看涨的概率

在x等于某一特定取值的时候那一天

up的概率Direction是up的概率

所以我glm.probs=predict

glm.fit

然后type=response 实际上type=response的时候就出的是

up的概率

然后我跑一下它它静静地会给你一个结果啊

我不让它都显示出来我嫌乱我直接就

显示出第一到十个数字啊

一到十个数

分别是0.507 0.48 0.48 0.51啊

正常的比较

比较自然的这个

感受如果说这个概率是大于0.5的

你就会认为它应该是看涨了

然后下面我

以防万一啊因为我之前的这个

数据里面是分up down的

我现在要

让R给我确定一下你的赋值到底是怎么赋的

然后你看用到的还是contrast这个

命令啊contrast

Direction

你会发现当真实的数字是up的时候

它建立的新变量叫up

然后up这个变量就等于1

然后当真实的情况是down的话这个up就

变量就等于0

然后下面我想

人为的你刚给我预测的是概率对吧

我现在要给

让你给我一个说法就是某一天

它到底是up还是down

那怎么做呢

假设说我先生成一列数啊

这一列数我不管三七二十一

把这1250个预测值都写成

down就都说它是下降的

跑一下啊然后你

看一下这grm.pred

带出的是什么结果

全是down那下面我扭转一下啊

如果说刚才那个模型

回归的预测值预测值放在哪了

叫做glm.probs

就是预测的概率啊

假设说概率是

大于0.5的

我就要认为这个

观测值应该是up的

所以glm.pred然后给一个条件

glm.probs是

大于0.5的时候我就认为它是up

这是我刚才说的这是比较自然的假设说

你是一个特别保守的人你认为

你认为大于0.2就应该是up的话你就在这把这个0.5改成0.2

然后up

然后我现在重新看一下

glm.pred

你看这就既有

涨又有跌了啊既有up又有down了啊

然后下面我想看看我的预测值

和我的真实值之间相差多少

那怎么做呢我用一个table这个命令

table

glm.pred

预测值和真实的这个Direction

我们看

两列代表的是Direction

实际上

左上角145

代表的是实际是down的时候预测值也是down

右下角507代表的是

实际up的时候我预测值也是up

然后下面我就问问你有

就是预测正确的百分比是多少呢

那很显然就是

这个

对角线145+507

再除以1250我们看看正确率是多少啊

0.5216有点惨啊

就是说

如果说

你是一个random guessing是一个完全随机的猜测你可能会

猜测一半

涨一半跌

然后你废了半天劲建了一个模型

建了一个模型以后发现它预测仍然也是将近

只有百分之52的正确啊

那这就说明在预测

股票的这个领域之中呢可能前面的

交易记录对于

当天的看涨看跌的预测起码用逻辑斯蒂回归

来预测的话好像还不太够劲

当然这个具体怎么

怎么用R语言做逻辑斯蒂回归的操作还是可以

借鉴的啊

注意最重要的是我们用到的命令是

glm命令然后做逻辑斯蒂

回归的时候你要告诉它说family=binomial

然后如果模型中有分类变量的时候千万要注意

要把它变成as.factor啊

告诉R说我这个

变量是分类型的变量

好这就是给大家讲解的怎么用R语言

来帮助我们进行一个逻辑斯蒂回归

基于R语言的社会统计分析课程列表:

第一章:绪论

-1.1 什么是统计学?

--视频1.1

-1.2 数据

--视频 1.2

-1.3 随机化原则

--视频 1.3

-1.4 数据收集方法

--视频 1.4

-第一章:绪论--1.5 习题

-Week 1

第二章:描述统计

-2.1 描述统计概述 - 社会学概念的量化问题

--Video

-2.2 变量的分类

--Video

-2.3 描述统计方法 I: 制表法 Tabular Method

--Video

-2.4 描述统计方法 II: 绘图法 Graphical Method

--Video

-2.5 描述统计方法 III: 数值法 Numerical Method

--Video

-第二章:描述统计--2.6 习题

-第二章 (第一部分)测量与变量

-第二章 (第二部分)描述统计 - 制表

-第二章 (第三部分)描述统计 - 绘图

-第二章 (第四部分)描述统计 - 数值

第三章:基于R语言的探索性数据分析

-3.1 探索性数据分析

--视频3.1

-3.2 EDA的制图原则

--Video

-3.3 R语言初体验

--R 语言初体验

-3.4 CRAN 和学习资源

--CRAN 和学习资源

-3.5 R 基础知识

--Video

-3.6 图形和数值

--Video

-第三章 基于R语言的探索性数据分析

第四章:概率分布

-4.1 概率的基本概念

--Video

-4.2 离散型与连续型变量的概率分布

--Video

-4.3 正态分布

--Video

-4.4 抽样分布

--Video

-第四章:概率分布--4.5 习题

-第四章 概率分布

第五章:统计推断 - 估计

-5.1 用抽样分布来代表抽样的变异性

--Video

-5.2 样本均值的抽样分布

--Video

-5.3 中心极限定理

--Video

-5.4 点估计和区间估计

--Video

-第五章:统计推断 - 估计--5.5 习题

-第五章 抽样分布

第六章:统计推断 - 区间估计

-6.1 区间估计

--Video

-6.2 总体比例的区间估计

--Video

-6.3 置信水平

--Video

-6.4 总体均值的区间估计

--Video

-第六章:统计推断 - 区间估计--6.5 习题

-州长选举支持率模拟抽样 R Code

-中心极限定理 R Code

-第六章 统计推断 - 区间估计

第七章: 统计推断 - 显著性检验

-7.1 绪论

--Video

-7.2 一个显著性检验的五个部分

--Video

-7.3 均值的显著性检验

--Video

-7.4 比例的显著性检验

--Video

-7.5 检验中错误的类型

--Video

-第七章: 统计推断 - 显著性检验--7.6 习题

-第七章 统计推断 - 显著性检验

第八章:两组比较和多组比较

-8.1 预备知识

--Video

-8.2 比较两组比例

--Video

-8.3 比较两个独立样本的均值

--Video

-8.4 比较两个相依样本的均值

--Video

-8.5 方差分析(选学)

--Video

-第八章:两组比较和多组比较--8.6 习题

-第八章 两组比较与多组比较 - 课件

-第八章 两组比较与多组比较 - 讲义

-第八章 R-syntax

-第八章 举例数据-mobile

-第八章 举例数据-occupation

第九章:变量间的关联分析

-9.1 变量间的关联分析

--Video

-9.2 列联分析

--Video

-9.3 定序变量间的关联关系

--Video

-第九章:变量间的关联分析--9.4 习题

-第九章 R Code

第十章:简单线性回归

-10.1 简单线性回归模型概述

--Video

-10.2 模型系数估计

--Video

-10.3 评价系数估计的准确性

--Video

-10.4 评价模型的准确性

--Video

-10.5 R Lab: 用R构建简单线性模型

--Video

-第十章:简单线性回归--10.6 习题

-第十章 简单线性回归模型 - 讲义

-第十章 R Code

第十一章:多元回归

-11.1 多元线性回归概述

--Video

-11.2 多元线性回归

--Video

-11.3 潜在问题及解决方案

--Video

-11.4 用R语言进行多元线性回归

--Video

-第十一章:多元回归--11.5 习题

-第十一章 R Code

-第十一章 多元线性回归模型-讲义

第十二章: Logistic回归和其他高级统计方法简介

-12.1 社会科学中的分类问题

--Video

-12.2 Logistic回归概述

--Video

-12.3 Logistic回归系数估计

--Video

-12.4 Logistic回归模型评价

--Video

-12.5 其他多元统计方法

--Video

-12.6 R语言实践

--Video

-12.7 结束语

--Video

-第十二章 R code

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。