第三章习题

部分证明题未给出答案

1.

表3.4中,零假设是指三种形式的广告对TV的销量没什么影响。而电视广告和收音机广告的P值小说明,原假设是错的,也就是电视广告和收音机广告均对TV的销量有影响;报纸的P值高,说明原假设成立,也就是报纸广告对TV的销量没啥影响。

2.

KNN回归和KNN近分类都是典型的非参数方法。这两者的区别在于,前者的输入和输出均为定量值;而后者的输入和输入和输出均为定性值。

3.

首先,有题目可知下面关系:Y = 50 + 20(gpa) + 0.07(iq) + 35(gender) + 0.01(gpa * iq) - 10 (gpa * gender)

(a) 当IQ和GPA一定的时候,Y的可变量是35*gender-10(gpa*gender).所以当GPA小的时候,无法判断前面变量的正负号,而当GPA足够大的时候,该变量一定是负的。所以当GPA足够大时,男性平均收入高于女性

(b) 直接套公式Y= 50 + 20 * 4 + 0.07 * 110 + 35 + 0.01 (4 * 110) - 10 * 4= 137.1

(c)错误。中文版61页有比较好的解释,实验分层原则规定:如果模型中含有交互项,那么即使主效应的系数的p值不显著,也应该包含在模型中。

4.

(a)一般来说,三次回归的训练RSS会比线性回归的训练RSS小,因为三次回归会对数据进行贴近训练集的拟合。

(b)题目中明确说明该数据的实际模型是线性拟合,所以用三次拟合会产生过拟合,而线性拟合有更好的泛化能力,所以线性回归的测试RSS小。

(c)答案和(a)一样

(d)由于不知道实际情况,所以无法判断。

8.

Auto = read.table("Auto.data.txt", header = T ,na.strings="?")
Auto = na.omit(Auto)

(a)

attach(Auto)
lm.fit = lm(mpg ~ horsepower)
summary(lm.fit)

i.由summary的结果来看,F-statistic很大而p-value很小,说明两者是有相关性的。

ii.由书的54页可知,看拟合效果如何,得看RSE和R-square。书上55页讲的挺清楚,不过目前不知道RSE在这里怎么解释拟合效果。。囧。。R-square为0.6059,这说明Y的变异中能被X解释的部分所占比例有60.59%

iii.由拟合出的参数可知,负相关。

iv.predict(lm.fit, data.frame(horsepower=c(98)), interval="confidence")。结果是24.47,置信区间是(23.97, 24.96)

 predict(lm.fit, data.frame(horsepower=c(98)), interval="prediction")。预测区间是(14.81, 34.12)

(b)

plot(horsepower, mpg)
abline(lm.fit)

(c)

par(mfrow=c(2,2))
plot(lm.fit)

9.

(a)

Auto = read.table("Auto.data.txt", header = T ,na.strings="?")
Auto = na.omit(Auto)
pairs(Auto)

(b)

cor(subset(Auto, select=-name))

(c)

lm.fit1 = lm(mpg~.-name, data=Auto)
summary(lm.fit1)

i.有。有f-statistic和p-value值可以判断

ii.由p-value小于0.05可知,displacement, weight, year, and origin这几个预测变量和响应变量有显著关系。

iii.车龄变量的系数是0.75,这说明随着车龄的增加,车子会越来越耗油。

(d)

par(mfrow=c(2,2))
plot(lm.fit1) plot(predict(lm.fit1), rstudent(lm.fit1))

(e)

lm.fit2 = lm(mpg~cylinders*displacement+displacement*weight)
summary(lm.fit2)

(f)

lm.fit3 = lm(mpg~log(weight)+sqrt(horsepower)+acceleration+I(acceleration^2))
summary(lm.fit3) par(mfrow=c(2,2))
plot(lm.fit3) plot(predict(lm.fit3), rstudent(lm.fit3)) lm.fit2<-lm(log(mpg)~cylinders+displacement+horsepower+weight+acceleration+year+origin,data=Auto)
summary(lm.fit2) par(mfrow=c(2,2))
plot(lm.fit2) plot(predict(lm.fit2),rstudent(lm.fit2))

10.

(a)

library(ISLR)
summary(Carseats) attach(Carseats)
lm.fit = lm(Sales~Price+Urban+US)
summary(lm.fit)

(b)

由summary(lm.fit)的结果的p-value和t-statistic可知,Price和US与Sales有关,Urban和Sales无关

(c)

Sales = 13.04 + -0.05*Price - 0.02*Urban + 1.20*US,其中Urban和US为YES时,值为1,否则为0

(d)

Price and US

(e)

由上面分析可知,Urban与Sales无关,所以我们可以去掉这个变量

lm.fit2 = lm(Sales~Price+US)
summary(lm.fit2)

(f)

(a)中Multiple R-squared:  0.239,  Adjusted R-squared:  0.234,(e)中Multiple R-squared:  0.239,  Adjusted R-squared:  0.235 ,可知两者拟合度差不多,而(e)稍微好点

(g)

confint(lm.fit2)

(h)

plot(predict(lm.fit2), rstudent(lm.fit2))

通过这个命令得到的图,我们可知,stuendtize residuals的范围在-3到3之间,所以没有离群点

par(mfrow=c(2,2))
plot(lm.fit2)

通过这个命令得到的图,我们可知,有一些点远远超过了其他点,故存在高杆点

11.

按照题目要求先生成x和y

set.seed(1)
x = rnorm(100)
y = 2*x + rnorm(100)

(a)

lm.fit = lm(y~x+0)
summary(lm.fit)

由结果可知,p-value接近0可知,原假设不成立

(b)

lm.fit = lm(x~y+0)
summary(lm.fit)

由结果可知,p-value接近0可知,原假设不成立

(c)

这个问题问得让我都觉得奇怪。。。答案是说明x和y确实是有关系么

(d)

由(a)中结果可知,t-value为18.73.而(sqrt(length(x)-1) * sum(x*y)) / (sqrt(sum(x*x) * sum(y*y) - (sum(x*y))^2))计算结果为18.72593

(e)

我们把t(x,y)换成t(y,x),会得到t(x,y)=t(y,x)

(f)

对比(a)和(b)结果就行

12.

(a)

由公式可知,当相等时,满足题意

(b)

set.seed(1)
x = rnorm(100)
y = 2*x
lm.fit = lm(y~x+0)
lm.fit2 = lm(x~y+0)
summary(lm.fit)
summary(lm.fit2)

(c)

set.seed(1)
x <- rnorm(100)
y <- -sample(x, 100)
lm.fit <- lm(y~x+0)
lm.fit2 <- lm(x~y+0)
summary(lm.fit)
summary(lm.fit2)

13.

这个题目比较简单。。就是写代码

(a)~(g)

set.seed(1)
x = rnorm(100) eps = rnorm(100, 0, sqrt(0.25)) y = -1 + 0.5*x + eps plot(x, y) lm.fit = lm(y~x)
summary(lm.fit) plot(x, y)
abline(lm.fit, lwd=3, col=2)
abline(-1, 0.5, lwd=3, col=3)
legend(-1, legend = c("model fit", "pop. regression"), col=2:3, lwd=3) lm.fit_sq = lm(y~x+I(x^2))
summary(lm.fit_sq)

(h)~(i)

这个把eps里的方差值改小一点就行了或者改大一点

set.seed(1)
eps1 = rnorm(100, 0, 0.125)
x1 = rnorm(100)
y1 = -1 + 0.5*x1 + eps1
plot(x1, y1)
lm.fit1 = lm(y1~x1)
summary(lm.fit1) abline(lm.fit1, lwd=3, col=2)
abline(-1, 0.5, lwd=3, col=3)
legend(-1, legend = c("model fit", "pop. regression"), col=2:3, lwd=3)
set.seed(1)
eps2 = rnorm(100, 0, 0.5)
x2 = rnorm(100)
y2 = -1 + 0.5*x2 + eps2
plot(x2, y2)
lm.fit2 = lm(y2~x2)
summary(lm.fit2) abline(lm.fit2, lwd=3, col=2)
abline(-1, 0.5, lwd=3, col=3)
legend(-1, legend = c("model fit", "pop. regression"), col=2:3, lwd=3)

(j)

confint(lm.fit)
confint(lm.fit1)
confint(lm.fit2)

14.

(a)

比较简单。,其中,

(b)~(e)

cor(x1, x2)
plot(x1, x2) lm.fit = lm(y~x1+x2)
summary(lm.fit) lm.fit = lm(y~x1)
summary(lm.fit) lm.fit = lm(y~x2)
summary(lm.fit)

(f)

不矛盾,因为x1和x2有相关性

(g)

计算离群点和高杆点在10题中做过了

15.

(a)

一个一个的做线性回归。。。累感不爱

(b)

lm.all = lm(crim~., data=Boston)
summary(lm.all)

(c)

x = c(coefficients(lm.zn)[2],
coefficients(lm.indus)[2],
coefficients(lm.chas)[2],
coefficients(lm.nox)[2],
coefficients(lm.rm)[2],
coefficients(lm.age)[2],
coefficients(lm.dis)[2],
coefficients(lm.rad)[2],
coefficients(lm.tax)[2],
coefficients(lm.ptratio)[2],
coefficients(lm.black)[2],
coefficients(lm.lstat)[2],
coefficients(lm.medv)[2])
y = coefficients(lm.all)[2:14]
plot(x, y)

(d)

类似下面代码一个一个的做回归。。。

lm.zn = lm(crim~poly(zn,3))
summary(lm.zn)

  

统计学习导论:基于R应用——第三章习题的更多相关文章

  1. 统计学习导论:基于R应用——第五章习题

    第五章习题 1. 我们主要用到下面三个公式: 根据上述公式,我们将式子化简为 对求导即可得到得到公式5-6. 2. (a) 1 - 1/n (b) 自助法是有有放回的,所以第二个的概率还是1 - 1/ ...

  2. 统计学习导论:基于R应用——第四章习题

    第四章习题,部分题目未给出答案 1. 这个题比较简单,有高中生推导水平的应该不难. 2~3证明题,略 4. (a) 这个问题问我略困惑,答案怎么直接写出来了,难道不是10%么 (b) 这个答案是(0. ...

  3. 统计学习导论:基于R应用——第二章习题

    目前在看统计学习导论:基于R应用,觉得这本书非常适合入门,打算把课后习题全部做一遍,记录在此博客中. 第二章习题 1. (a) 当样本量n非常大,预测变量数p很小时,这样容易欠拟合,所以一个光滑度更高 ...

  4. PythonCrashCourse 第三章习题

    PythonCrashCourse 第三章习题 3.1 将一些朋友的姓名存储在一个列表中,并将其命名为names.依次访问该列表中的每个元素,从而将每个朋友的姓名都打印出来 names = ['lih ...

  5. 周志华-机器学习西瓜书-第三章习题3.5 LDA

    本文为周志华机器学习西瓜书第三章课后习题3.5答案,编程实现线性判别分析LDA,数据集为书本第89页的数据 首先介绍LDA算法流程: LDA的一个手工计算数学实例: 课后习题的代码: # coding ...

  6. 《零成本实现Web自动化测试--基于Selenium》第三章 Selenium-IDE

    1.简介 Selenium-IDE(集成开发环境)是一种开发selenium测试案例的工具.是一种易用的Firefox插件.你可以通过文字菜单,在当前页面上选择一个UI元素,接着挑选与UI元素相关的s ...

  7. python核心编程-第三章-习题

    1.这是python的语言特性,python先创建对象,在给变量赋值时,不需要定义变量的名称和类型,它实际是用变量引用对象.变量类型在给变量赋值时自动声明 2.原因类似变量无须声明类型 3.pytho ...

  8. C++面向对象程序设计第三章习题答案解析

    整理一下自己写的作业,供考试前复习用,哈哈 进入正题!!! 题目: 2.分析下面的程序,写出其运行时的输出结果 这里就不展示课本源代码,直接给出修改后的代码,错误部分代码已给出具体的注释 #inclu ...

  9. UNIX环境高级编程-第三章习题

    1,当读写磁盘文件时,read,write等函数确实是不带缓冲机制的吗?请说明原因. 答:所有磁盘I/O都要经过内核的块缓存区(即内核的缓冲区高速缓存).唯一例外的是对原始磁盘设备的I/O,但是我们不 ...

随机推荐

  1. MySQL下Limit使用及性能分析

    对于一直用Oracle的我,今天可是非常诧异,MySQL中同一个函数在不同数量级上的性能居然差距如此之大. 先看表ibmng(id,title,info)  唯一  id key 索引title 先看 ...

  2. “\n”与“\r”的区别

    ASCII中“\n”代表着换行,“\r”代表着将光标移动到当前显示行的最左边.

  3. cocos2d-x笔记4: TextField不能删除内容,以及我的解决办法。。。

    3.0正式版,win32下,TextField按下backspace键不能删除内容.网上搜了下,很早就有的问题了,正式版了竟然还不解决... 真心无力吐槽啊!!!这种巨大而又明显的Bug... 从昨天 ...

  4. Rsync和FastDFS

    在做分布式文件存储的时候,常常用到两个工具,Rsync和FastDFS:这两者本质的区别在于前者的实时性相面相对较差,需要手工编写脚本同步,然后在放到定时任务(cron)中:FastDFS自动实现同组 ...

  5. 查看sqlserver数据库的端口号

    最近正在用sqlserver作为java的数据库进行开发,在写连接字符串的时候,想起一个问题,怎么查找sqlserver的端口号呢?有两种方法 1,用存储过程 --查询端口号exec sys.sp_r ...

  6. Multiplication Puzzle

    题目大致意思是:一个整数序列包含N个1~100的整数(3<=N<=100),从中取出一个数并和相邻两边的整数相乘,依次进行下去直到只剩下首尾两个数为止,求最终的得到的和的最小值.两边的数不 ...

  7. 第三章 传奇的开始--Delphi(附读书笔记)

    第三章 传奇的开始--Delphi "是惊世之作的Delphi让Borland重新站了起来,没有当初的Delphi,就没有今日的Borland!" "是Turbo Pas ...

  8. JDBC事务控制管理

    1.事务 (1)事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 例如:A——B转帐,对应于如下两条sql语句 update account set mone ...

  9. 谈谈SpringMVC Validation

    2016-10-12 19:26:08,897 [INFO ] [http-nio-8032-exec-1] HttpHeaderValidator:84 - HttpHeaderValidator. ...

  10. redis key expire

    EXPIRE key seconds 为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除. 在 Redis 中,带有生存时间的 key 被称为『易失的』(volati ...