非线性回归-多项式回归 (polynomial regression in r)

废话不多说,直接附上code
影片含有程序码详细解说,若有误再烦请告知,谢谢/images/emoticon/emoticon25.gif

data(iris)
iris <- iris[,-c(5)]
#找自变数
library(rminer) 
model <- lm(Sepal.Length~Sepal.Width+Petal.Length+Petal.Width,iris)
lm <- Importance(model,iris,measure="AAD")
lm$imp
#检查离群值
par(mfrow=c(1,3))
boxplot(iris$Sepal.Width)$out
boxplot(iris$Petal.Length)$out
boxplot(iris$Petal.Width)$out
par(mfrow=c(1,3))
scatter.smooth(x=iris$Sepal.Width, y=iris$Sepal.Length)
scatter.smooth(x=iris$Petal.Length, y=iris$Sepal.Length)
scatter.smooth(x=iris$Petal.Width, y=iris$Sepal.Length)
#随机抽样
n <- nrow(iris)
set.seed(1117)
subiris <- sample(seq_len(n), size = round(0.7 * n))
traindata <- iris[subiris,]
testdata <- iris[ - subiris,]

#建模
model <- lm(Sepal.Length~poly(Sepal.Width,3)+Petal.Length+Petal.Width,traindata)
#条件2~4
library(car)
ncvTest(model)#>a 残差变异数有同质性
shapiro.test(model$residuals) #>a 残差常态
library(lmtest)
dwtest(model)#>a 残差独立
vif(model)  #<10 ok 10~100可能过度配适

#预测
future <- predict(model,testdata)
future <- as.data.frame(future)
final <- cbind(future,testdata)
library(dplyr)
final <- mutate(final,mape=abs(future-Sepal.Length)/Sepal.Length)
mean(final$mape)

<<:  透过 EventBus 解决 TransactionTooLargeException 问题

>>:  《赖田捕手:追加篇》第 35 天:制造 Deploy to Heroku 按钮

Day 30 我完成铁人了!

心得 哈罗大家,今天是铁人挑战第三十天,终於来到最後一天了,老实说我真的没想过我会参加这个比赛,更没...

认识资料库-关联和非关联式资料库

身为商业分析师或是资料分析师,我们很常需要到资料库捞取资料,因此对於资料库的认识也相当重要~但由於我...

【Day26】建立一个 Bing Search Bot

今天我们要来实作一个 Bing Search Chatbot。 建立一些档案 在 requireme...

day29 大量操作怎麽办? 连volatile都救不了我QQ

我先讲解法,再讲为甚麽volatile没用 那我会搭配文档讲,但其实不管情境怎麽会概念还是一样的,这...

资料分析求职者面试经验:面试败北心得,准备多少才够?

资料分析面试 当时在海外申请资料分析职缺,所以参加的是视讯面试,一共参加了2轮面试,都在一天中完成。...