高级统计方法 第5次作业

作业评阅:

概念

1.问题

2.问题(略)

4.问题(略)

(a)问题(略)

10%,忽略 X < 0.05和 X > 0.95的情况。

(b)问题(略)

1%

(c)问题(略)

 0.10^(100)100=10^(−98)%

(d)

随着p的现象增大,几何上观测值接近指数减少。

(e)

5.问题(略)

(a)问题(略)

如果贝叶斯决策边界是线性的,我们期望 QDA 在训练集上表现得更好,因为它更高的灵活性将产生更接近的匹配。在测试集上,我们预期 LDA 的表现会优于 QDA,因为 QDA 可能会超出贝叶斯决策边界的线性度。

(b)问题(略)

如果贝叶斯决策边界是非线性的,我们期望 QDA 在训练集和测试集上都能表现得更好。

(c)问题(略)

我们期望 QDA 相对于 LDA 的测试预测精度能够随着样本容量n的增加而提高,因为更灵活的方法将产生更好的拟合,更多的样本可以拟合和方差抵消了更大的样本量。

(d)

错误。因为QDA可能会产生过拟合,从而使得测试误差增大。

6.问题(略)

8.问题(略)

逻辑斯蒂回归训练误差为20%,测试误差为30%,平均误差为25%。

1最近邻算法平均错误率18%,但是由于其训练误差为0%,所以其测试误差为36%,大于逻辑斯蒂回归,因此最终选择逻辑斯蒂回归进行新的预测。

9.问题(略)

(a)问题(略)

(b)问题(略)

、、、、、、

应用

10.问题(略)

(a)问题(略)

library(ISLR)

summary(Weekly)

Pairs(Weekly)

Cor(Weekly[,-9])

Year和Volume有一定关联,没有发现模式。

(b)问题(略)

attach(Weekly)

glm.fit = glm(Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Lag5 + Volume, data = Weekly,

    family = binomial)

summary(glm.fit)

Lag2的p值较小有一定的统计学意义。

(c)问题(略)

glm.probs = predict(glm.fit, type = "response")

glm.pred = rep("Down", length(glm.probs))

glm.pred[glm.probs > 0.5] = "Up"

table(glm.pred, Direction)

总体预测正确率56.1%。但是依然可以看到错误率较高。

(d)

train = (Year < 2009)

Weekly.0910 = Weekly[!train, ]

glm.fit = glm(Direction ~ Lag2, data = Weekly, family = binomial, subset = train)

glm.probs = predict(glm.fit, Weekly.0910, type = "response")

glm.pred = rep("Down", length(glm.probs))

glm.pred[glm.probs > 0.5] = "Up"

Direction.0910 = Direction[!train]

table(glm.pred, Direction.0910)

mean(glm.pred == Direction.0910)

(e)

library(MASS)

lda.fit = lda(Direction ~ Lag2, data = Weekly, subset = train)

lda.pred = predict(lda.fit, Weekly.0910)

table(lda.pred$class, Direction.0910)

mean(lda.pred$class == Direction.0910)

(f)

qda.fit = qda(Direction ~ Lag2, data = Weekly, subset = train)

qda.class = predict(qda.fit, Weekly.0910)$class

table(qda.class, Direction.0910)

mean(qda.class == Direction.0910)

(g)

library(class)

train.X = as.matrix(Lag2[train])

test.X = as.matrix(Lag2[!train])

train.Direction = Direction[train]

set.seed(1)

knn.pred = knn(train.X, test.X, train.Direction, k = 1)

table(knn.pred, Direction.0910)

mean(knn.pred == Direction.0910)

(h)

比较而言,逻辑斯蒂回归和LDA方法结果最好。

(i)

逻辑斯蒂回归Lag2:Lag1

glm.fit = glm(Direction ~ Lag2:Lag1, data = Weekly, family = binomial, subset = train)

glm.probs = predict(glm.fit, Weekly.0910, type = "response")

glm.pred = rep("Down", length(glm.probs))

glm.pred[glm.probs > 0.5] = "Up"

Direction.0910 = Direction[!train]

table(glm.pred, Direction.0910)

mean(glm.pred == Direction.0910)

Lag1和Lag2相互作用的LDA

lda.fit = lda(Direction ~ Lag2:Lag1, data = Weekly, subset = train)

lda.pred = predict(lda.fit, Weekly.0910)

mean(lda.pred$class == Direction.0910)

对Lag2绝对值进行平方根后QDA

qda.fit = qda(Direction ~ Lag2 + sqrt(abs(Lag2)), data = Weekly, subset = train)

qda.class = predict(qda.fit, Weekly.0910)$class

table(qda.class, Direction.0910)

mean(qda.class == Direction.0910)

KNN K=10

knn.pred = knn(train.X, test.X, train.Direction, k = 10)

table(knn.pred, Direction.0910)

mean(knn.pred == Direction.0910)

KNN K=100

knn.pred = knn(train.X, test.X, train.Direction, k = 100)

table(knn.pred, Direction.0910)

mean(knn.pred == Direction.0910)

11.问题(略)

(a)问题(略)

library(ISLR)

summary(Auto)

attach(Auto)

mpg01 = rep(0, length(mpg))

mpg01[mpg > median(mpg)] = 1

Auto = data.frame(Auto, mpg01)

(b)问题(略)

cor(Auto[, -9])

pairs(Auto)

与cylinders, weight, displacement, horsepower有关。

(c)问题(略)

根据年份是否是偶数划分

train = (year%%2 == 0)  # 如果年份是偶数

test = !train

Auto.train = Auto[train, ]

Auto.test = Auto[test, ]

mpg01.test = mpg01[test]

(d)

library(MASS)

lda.fit = lda(mpg01 ~ cylinders + weight + displacement + horsepower, data = Auto,

    subset = train)

lda.pred = predict(lda.fit, Auto.test)

mean(lda.pred$class != mpg01.test)

12.6%的错误率

(e)

qda.fit = qda(mpg01 ~ cylinders + weight + displacement + horsepower, data = Auto,

    subset = train)

qda.pred = predict(qda.fit, Auto.test)

mean(qda.pred$class != mpg01.test)

13.2%的错误率。

(f)

glm.fit = glm(mpg01 ~ cylinders + weight + displacement + horsepower, data = Auto,

    family = binomial, subset = train)

glm.probs = predict(glm.fit, Auto.test, type = "response")

glm.pred = rep(0, length(glm.probs))

glm.pred[glm.probs > 0.5] = 1

mean(glm.pred != mpg01.test)

12.1%的错误率。

(g)

library(class)

train.X = cbind(cylinders, weight, displacement, horsepower)[train, ]

test.X = cbind(cylinders, weight, displacement, horsepower)[test, ]

train.mpg01 = mpg01[train]

set.seed(1)

# KNN(k=1)

knn.pred = knn(train.X, test.X, train.mpg01, k = 1)

mean(knn.pred != mpg01.test)

KNN(k=10)

knn.pred = knn(train.X, test.X, train.mpg01, k = 10)

mean(knn.pred != mpg01.test)

KNN(k=100)

knn.pred = knn(train.X, test.X, train.mpg01, k = 100)

mean(knn.pred != mpg01.test)

K=100,14.3%

K=10,16.5%

K=1,15.4%

可以看到K的值为100时,错误率最小。

12.问题(略)

(a)问题(略)

Power = function() {

    2^3

}

print(Power())

(b)问题(略)

Power2 = function(x, a) {

    x^a

}

Power2(3, 8)

(c)问题(略)

Power2(10, 3)

Power2(8, 17)

Power2(131, 3)

(d)

Power3 = function(x, a) {

    result = x^a

    return(result)

}

(e)

x = 1:10

plot(x, Power3(x, 2), log = "xy", ylab = "Log of y = x^2", xlab = "Log of x",

    main = "Log of x^2 versus Log of x")

(f)

PlotPower = function(x, a) {

    plot(x, Power3(x, a))

}

PlotPower(1:10, 3)

后面有需要请私聊吧,不想再粘贴

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/504546.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数学建模获奖经验】2023第八届数维杯数学建模:华中科技大学本科组创新奖获奖分享

2024年第九届数维杯大学生数学建模挑战赛将于&#xff1a;2024年5月10日08:00-5月13日09:00举行&#xff0c;近期同学们都开始陆续进入了备赛阶段&#xff0c;今天我们就一起来看看上一届优秀的创新奖选手都有什么获奖感言吧~希望能帮到更多热爱数学建模的同学。据说点赞的大佬…

Golang 调度器 GPM模型

Golang 调度器 GPM模型 1 多进程/线程时代有了调度器需求 在多进程/多线程的操作系统中&#xff0c;就解决了阻塞的问题&#xff0c;因为一个进程阻塞cpu可以立刻切换到其他进程中去执行&#xff0c;而且调度cpu的算法可以保证在运行的进程都可以被分配到cpu的运行时间片。这…

cv_bridge连接自定义版本的opencv

在ros noetic版本中&#xff0c;默认的cv_bridge依赖的opencv版本为4.2.0&#xff0c;若要升级opencv版本&#xff0c;则无法使用cv_bridge&#xff0c;所以需要重新自编译cv_bridge。 一. 编译cv_bridge 1.通过网站 https://github.com/ros-perception/vision_opencv/tree/n…

【Pytorch】模型部署

文章目录 0. 进行设置1. 获取数据2. FoodVision Mini模型部署实验概要3. 创建 EffNetB2 特征提取器4. 创建 ViT 特征提取器5. 使用训练好模型进行预测并计时6. 比较模型结果、预测时间和大小7. 通过创建 Gradio 演示让 FoodVision Mini 呈现8. 将Gradio demo变成可部署的应用程…

**蓝桥OJ 178全球变暖 DFS

蓝桥OJ 178全球变暖 思路: 将每一座岛屿用一个颜色scc代替, 用dx[]和dy[]判断他的上下左右是否需要标记颜色,如果已经标记过颜色或者是海洋就跳过.后面的淹没,实际上就是哪个块上下左右有陆地,那么就不会被淹没,我用一个tag标记,如果上下左右一旦有海洋,tag就变为false.如果tag…

协议和序列化反序列化

1. 再谈 “协议” 1.1 协议的概念 “协议”本质就是一种约定&#xff0c;通信双方只要曾经做过某种约定&#xff0c;之后就可以使用这种约定来完成某种事情。而网络协议是通信计算机双方必须共同遵从的一组约定&#xff0c;因此我们一定要将这种约定用计算机语言表达出来&…

《HelloGitHub》第 95 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Python、Java、Go、C/C、Swift...让你在短时间内…

【ArcGIS】统计格网中不同土地利用类型占比

基于ArcGIS统计格网中不同土地利用类型占比 数据准备ArcGIS操作步骤1、创建渔网&#xff08;Create Fishnet&#xff09;2、建立唯一标识3、选择格网4、提取不同类别土地利用类型5、各类用地面积计算 参考另&#xff1a;可能出现的问题总结Q1&#xff1a;ArcGIS获取唯一值&…

c语言数据结构(5)——栈

欢迎来到博主的专栏——C语言数据结构 博主id&#xff1a;代码小豪 文章目录 栈栈的顺序存储结构栈的插入空栈的初始化栈的删除判断空栈读取栈顶元素数据 实现顺序栈的所有代码栈的链式存储结构链式栈的初始化链式栈的入栈操作链式栈的出栈操作 实现链式栈的所有代码 栈 栈是…

CSS 盒子模型(box model)

概念 所有HTML元素可以看作盒子&#xff0c;在CSS中&#xff0c;"box model"这一术语是用来设计和布局时使用CSS盒模型本质上是一个盒子&#xff0c;封装周围的HTML元素&#xff0c;它包括&#xff1a;外边距(margin)&#xff0c;边框(border)&#xff0c;内边距(pad…

zephyr学习

zephyr内核对象学习 定时器 类似linux的定时器&#xff0c; 可以分别设置第一次到期时间和后续的周期触发时间&#xff0c; 可以注册到期回调和停止回调 还有一个计数状态&#xff0c;用于标记timer到期了多少次 duration&#xff1a;设定timer第一次到期的时间。 period: …

数字口岸再升级:广西二期项目助力口岸通关提速运营增效!

在数字口岸相关政策的引领下&#xff0c;广西与RCEP其他成员国进出口规模有力攀升&#xff0c;大力推动了广西向海经济&#xff0c;临港产业集群不断壮大&#xff0c;大宗商品贸易快速增长。据海关统计&#xff0c;2023年&#xff0c;广西进出口总值6936.5亿元人民币&#xff0…