作业评阅:
概念
2.问题
KNN分类和KNN回归都是KNN算法在不同类型数据上的应用,但它们之间存在明显的区别。
解决的问题类型不同:KNN分类适用于解决分类问题,而KNN回归则适用于解决回归问题。当响应变量是连续的,根据输入和回归函数,预测输出;当响应变量是带有一定水平的因子型变量,就可以用来将输入变量进行分类。
决策方式不同:在预测阶段,KNN做分类时,通常采用多数表决法,即根据训练集中与预测样本特征最近的K个样本,将预测为包含最多类别数的类别。而KNN做回归时,则通常采用平均法,即取最近的K个样本的输出平均值作为回归预测值。
5.问题(略)
、、、、、、
应用
9.问题(略)
(a)问题(略)
Auto = read.csv("Auto.csv", header=T, na.strings="?")
Auto = na.omit(Auto)
Auto[,9] = as.numeric(factor(Auto[,9]))
pairs(Auto)
(b)问题(略)
cor(subset(Auto, select=-name))
(c)问题(略)
lm.fit1 = lm(mpg~.-name, data=Auto)
summary(lm.fit1)
预测变量和响应变量之间有关系,通过观察p值和t值等数据可以判别是否拒绝原假设,从而判别是否有关系,可以明显的看出有关联。
weight, year, origin这些预测变量和响应变量统计上有明显关系。
mgp随着year的变化在统计意义上有显著关联。
(d)
par(mfrow=c(2,2))
plot(lm.fit1)
可以看出残差有很明显的曲线,分布并不均匀。
plot(predict(lm.fit1), rstudent(lm.fit1))
可能存在异常值,因为存在值大于3的数据。
(e)
lm.fit2 = lm(mpg~cylinders*displacement+displacement*weight,data=Auto)
summary(lm.fit2)
cylinders*displacement之间的相互作用没有统计学意义。
displacement*weight之间的相互作用有统计学意义。
(f)
预测logX的变换
lm.fit3=lm(mpg~log(weight)+sqrt(horsepower)+acceleration+I(acceleration^2),data=Auto)
summary(lm.fit2)
par(mfrow=c(2,2))
plot(lm.fit3)
plot(predict(lm.fit3), rstudent(lm.fit3))
对数变换的残差图分布更为均匀,可以看出对数优化更有效。
10.问题(略)
(a)问题(略)
install.packages('ISLR')
library(ISLR)
summary(Carseats)
attach(Carseats)
lm.fit = lm(Sales~Price+Urban+US)
summary(lm.fit)
(b)问题(略)
Price:
P值低,表明拒绝零假设,价格和销售之间存在关系。并且之间呈负相关,价格上涨销量下降。
UrbanYes:
P值0.936,很大可以拒绝零假设,说明商店的位置和销量之间没有关系。
USYes:
P值低,说明商店是否在美国和销售额有关系,并且呈正相关。
(c)问题(略)
Sales = 13.04 - 0.05 Price - 0.02 UrbanYes + 1.20 USYes
(d)
Price和USYes 可以拒绝零假设。
(e)
lm.fit2 = lm(Sales ~ Price + US)
summary(lm.fit2)
(f)
分析RES和R^2,他们对数据的拟合程度相近。
(g)
confint(lm.fit2)
(h)
plot(predict(lm.fit2), rstudent(lm.fit2))
观察到残差在-3到3之间,并没有明显的离群点。
par(mfrow=c(2,2))
plot(lm.fit2)
有高杠杆点,可以看到有远大于总体值的数据。
14.问题(略)
(a)问题(略)
set.seed(1)
x1 = runif(100)
x2 = 0.5 * x1 + rnorm(100)/10
y = 2 + 2*x1 + 0.3*x2 + rnorm(100)
(b)问题(略)
cor(x1, x2)
plot(x1, x2)
(c)问题(略)
lm.fit = lm(y~x1+x2)
summary(lm.fit)
β0=2.1305,β1=1.4396,β2=1.0097
β1,β2的标准差和p值较高,拒绝β1,β2.
(d)
lm.fit = lm(y~x1)
summary(lm.fit)
我们可以拒绝零假设,因为p值极小。
(e)
lm.fit = lm(y~x2)
summary(lm.fit)
我们可以拒绝零假设,因为p值极小。
(f)
不矛盾,x1和x2互有影响。当被单独回归时其线性关系更清楚的指示出。
(g)
x1 = c(x1, 0.1)
x2 = c(x2, 0.8)
y = c(y, 6)
lm.fit1 = lm(y~x1+x2)
summary(lm.fit1)
lm.fit2 = lm(y~x1)
summary(lm.fit2)
lm.fit3 = lm(y~x2)
summary(lm.fit3)
par(mfrow=c(2,2))
plot(lm.fit1)
par(mfrow=c(2,2))
plot(lm.fit2)
par(mfrow=c(2,2))
plot(lm.fit3)
在第一和第三个模型中,这个点变成了一个高杠杆点。
plot(predict(lm.fit1), rstudent(lm.fit1))
plot(predict(lm.fit2), rstudent(lm.fit2))
plot(predict(lm.fit3), rstudent(lm.fit3))
模型2有距截止点远的点。