• 博客(0)
  • 资源 (10)

空空如也

Rvest网页爬虫

library(xml2) library(rvest) library(rvest) library(stringr) amazon.rank<-function(url='https://www.amazon.com/gp/bestsellers/wireless/ref=pd_zg_hrsr_wireless_1_1',start=1,end=1){ product<-data.frame() for(i in start:end){ Sys.sleep(1) ##网页输入 url<-paste0(url,'#',"i") web<-read_html(url,encoding="UTF-8") #读取数据,规定编码 ##读入序号 num% html_nodes("span.zg_rankNumber")%>%html_text()%>%as.numeric() num ##读入产品名称 name%html_nodes("div.zg_itemWrapper")%>%html_nodes("div.p13n-sc-truncated-hyphen")%>%html_text()%>%as.character() to_remove <- paste(c("\n", "^\\s+|\\s+$"), collapse = "|")#去掉换行符、空格、, ",.*" 读取一种类型 position <- gsub(to_remove, "", name) position<-as.factor(position) position

2017-11-27

R语言从数据库中导入股票数据,并进行分析

#####################################查看股票数据################################ install.packages("quantmod") library(xts) library(zoo) library(TTR) library(quantmod) #########################################################雅虎########################### getSymbols("000002.SZ",scr="yahoo",from="2015-01-04",to="2015-12-18") data.new<-to.weekly(`000002.SZ`) data.raw<-`000002.SZ`

2017-11-27

R语言 关联规则 apriori算法

library(arules) library(Matrix) library(arules) library(arulesViz) library(grid) library(arulesViz) data('SunBai') summary(SunBai) #inspect函数查看SunBai数据集的前5次交易记录 inspect(SunBai[1:5]) #itemFrequency()函数可以查看商品的交易比例 itemFrequency(SunBai[,1:3]) #support=0.1,表示支持度至少为0.1 itemFrequencyPlot(SunBai,support=0.1) #topN=20,表示支持度排在前20的商品 itemFrequencyPlot(SunBai,topN=20) #利用transactionInfo函数查看前六数据 head(transactionInfo(SunBai))

2017-08-30

R语言 BEKK模型回归

利用R语言,进行bekk模型回归 library(mvtnorm) library(tseries) library(mgarchBEKK) data<-read.csv("C:/Users/li/Desktop/1.csv",sep=",",header=T) .... estimated <- BEKK(simulated) diagnoseBEKK(estimated) ab11<-estimated$residuals[[1]] ab12<-estimated$residuals[[2]] ab13<-estimated$residuals[[3]] Box.test(ab11,lag=12,type=c('Ljung-Box')) Box.test(ab11,lag=24,type=c('Ljung-Box')) Box.test(ab12,lag=12,type=c('Ljung-Box')) Box.test(ab12,lag=24,type=c('Ljung-Box'))

2017-08-30

R语言 garch回归

variance.model = list(model = "sGARCH", garchOrder = c(1, 1),submodel = NULL, external.regressors = NULL, variance.targeting = FALSE) distribution.model = "norm" ugarchfit(spec, datax, out.sample = 0, solver = "solnp", solver.control = list(),fit.control = list(stationarity = 1, fixed.se = 0, scale = 0)) myspec=ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1), submodel = NULL, external.regressors = NULL, variance.targeting = FALSE), mean.model = list(armaOrder = c(1, 1), include.mean = TRUE, archm = FALSE, archpow = 1, arfima = FALSE, external.regressors = NULL, archex = FALSE), distribution.model = "norm") myfit=ugarchfit(myspec,data=datax,solver="solnp") #rugarch包中模型结果的提取要依靠as.data.frame函数。比如提取模型的拟合值 as.data.frame(myfit,which="fitted") #提取残差序列: as.data.frame(myfit,which=" residuals") #提取方差序列: as.data.frame(myfit,which="sigma") #当然,也可以同时查看所有: as.data.frame(myfit,which=all) #通过plot(myfit)可以对模型结果进行图形诊断: plot(myfit) #如果模型通过检验,可以用ugarchforcast函数对未来进行预测: for<-ugarchforcast(myfit,n.ahead=20) library(zoo) #时间格式预处理 library(xts) #同上 library(timeSeires) #同上 library(urca) #进行单位根检验 library(tseries) #arma模型 library(fUnitRoots) #进行单位根检验 library(FinTS) #调用其中的自回归检验函数 library(fGarch) #GARCH模型 library(nlme) #调用其中的gls函数 library(fArma) #进行拟合和检验

2017-08-30

R语言 所有分类数据回归

#glmnet包含有线性回归,逻辑回归,泊松计数模型,cox回归模型,多分类逻辑回归多响应线性回归 #阿法系数=0是岭回归,阿法系数=1,是lasso回归 ############################################################ data(QuickStartExample) #20 Independent variables and 1 dependent variable fit<-glmnet(x,y) #查看计算路径 print(fit)#Df是非零系数的个数,第三列是惩罚力度,第二列是相应的惩罚力度对应的解释偏差百分比 #利用coef来提取模型的系数 coef(fit,s=0.1) #可视化 plot(fit) #预测 #参数newx用来设置输入数据,s用来设置朗姆塔(惩罚力度)的值 nx<-matrix(rnorm(10*20),10,20) predict(fit,newx=nx,s=c(0.1,0.05)) #交叉验证,筛选最优的朗姆塔的值,cv.glmnet函数实现这个功能 cvfit<-cv.glmnet(x,y) plot(cvfit)#红色散点为交叉验证的散点图,两条垂直的虚线为交叉验证后选定的朗姆塔 #提取最优的朗姆塔的值 cvfit$lambda.min#均方误差最小 cvfit$lambda.1se#一倍标准差 #根据朗姆塔来取得系数 coef(cvfit,s='lambda.min') #将稀疏矩阵转化为传统矩阵 as.matrix(coef(cvfit,s='lambda.min'))

2017-08-30

R语言 爬取网页数据,并进行整理归类

主要是通过R语言,对网页上的数据进行进行爬取,并且整理成文本格式,或者excel格式。 Sys.setlocale("LC_TIME", "C") ## [1] "C"----------------------------------------------------------- ## Create a function,the parameter 'i' means page number. getdata <- function(i){ url <- paste0("www.cnblogs.com/p",i)##generate url combined_info %html_session()%>%html_nodes("div.post_item div.post_item_foot")%>%html_text()%>%strsplit(split="\r\n") #对日期数据的处理------------------------------------------------------------- post_date %str_sub(9,24)%>%as.POSIXlt()##get the date post_year <- post_date$year+1900 post_month <- post_date$mon+1 post_day <- post_date$mday post_hour <- post_date$hour post_weekday <- weekdays(post_date) #对主题数据的读取 文本的格式的读取 title %html_session()%>%html_nodes("div.post_item h3")%>%html_text()%>%as.character()%>%trim()

2017-08-30

R语言 对日期数据的缺失补全方法

主要是通过R语言,对日期数据进行处理,并补全缺失数据 rawdata<- read.csv("C:/Users/li/Desktop/ss.csv",fill=F) #提取数据 ss1,并组合数据------------------------------- ts1<-rawdata$ts1 ts11<-as.Date(ts1,'%Y/%m/%d') false<-is.na(ts11) ts21<-ts11[!false] ss1<-rawdata$SS1 ss1<-ss1[!false] library(zoo) data1<-zoo(ss1,ts21) #补全不规则数据(时间的缺失和缺失值) date1<-zoo(,seq(start(data1),end(data1),'day')) datanew1<-merge(data1,date1) datanew1[is.na(datanew1)]<-median(datanew1,na.rm = T) #提取数据 ss2

2017-08-30

R语言 随机森林回归

主要利用R语言进行随机森林回归,还有其他两种回归, library(lattice) library(grid) library(DMwR) library(rpart) library(ipred) library(randomForest) #回归树,装袋算法,随机森林三大回归 #前二种算法可以计算缺失数据,但随机森林不行,所以还需将数据进行清洗整理 data(algae) algae <- algae[-manyNAs(algae,0.2), ]#占有20%的NA值的行去掉 clean.algae <- knnImputation(algae,k=10)#平均值填充NA值 #回归树模型计算 model.tree=rpart(a1 ~ ., data = clean.algae[, 1:12]) summary(model.tree) pre.tree <- predict(model.tree, clean.algae) plot(pre.tree~clean.algae$a1) nmse1 <- mean((pre.tree- clean.algae[,'a1'])^2)/mean((mean(clean.algae[,'a1'])- clean.algae[,'a1'])^2) nmse1

2017-08-30

R语言 处理日期数据

主要是用R语言,进行初期日期数据。 data1<-read.csv(file='C:/Users/li/Desktop/参数优化/a.csv',header = T) data2<-read.csv(file='C:/Users/li/Desktop/参数优化/b.csv',header = T) #提取日期数据 date1<-as.Date(data1$日期) dates<-paste(data2$年,data2$月,data2$日,sep='/') date2<-as.Date(dates,'%Y/%m/%d') xdate1<-date1[1:28]#tree 1 xdate2<-date1[29:54]#tree 2 xdate3<-date1[55:81]#tree 3 #构造09-01的日期形式 dates<-paste(data1$年-1,'09','01',sep='/') datestan<-as.Date(dates,'%Y/%m/%d') datestan1<-datestan[1:28]#tree 1 datestan2<-datestan[29:54]#tree 2 datestan3<-datestan[55:81]#tree 3 #提取气温数据 temp<-as.numeric(data2$平均气温) ##------------------------------------------------- #C t0 tb Tb Rc=function(c,Tb){ rc=0 ci<-datn1 while(rc!=c|ci<=datn1+140){ rc<-rc+sum(temp[ci]<=Tb) ci=ci+1 } print(ci) } # # Rf=function(f,Tb){ rf=0 fi<-tb while(rf<=f|fi<=tb+200){ if(temp[fi] <= Tb){ rf<-rf+0} else {rf<-rf+temp[fi]-Tb} fi=fi+1 } print(c(fi,rf)) } # #------------------------------ ypre<-datestan1 for(i in 1:28){ dat1<-datestan1[i] datn1<-which(date2==dat1) tb<-Rc(c=100,Tb=10) result<-Rf(f=100,Tb=10) y<-result[1] rf<-result[2] ypre[i]<-dat1+y-datn1 } r2<-mean(ypre-xdate1)

2017-08-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除