其他分享
首页 > 其他分享> > 未明学院14天打卡笔记 Day8

未明学院14天打卡笔记 Day8

作者:互联网

library(readxl)
returndaily<-read_excel('E:/桌面快捷文件存放/未明学院/未明学院作业/returndaily.xlsx')
x<-returndaily$SH_return_daily
hist(x)
y<-hist(x,breaks = 100) #但是从右上框可以查看到breaks其实是【1:131】,并没有精确的控制为100个区间,则按如下进行

x_breaks<-seq(min(x),max(x),length.out = 101)
y<-hist(x,breaks = x_breaks) #将其y轴改为密度,做法如下
y<-hist(x,breaks = x_breaks,freq=F)
y$breaks #是指每个格子两边的数值
y$breaks[2]-y$breaks[1]#显示一个单元格的长度
y$counts#显示每个单元格所含的数据量
y$density#显示每个单元格的概率密度

#概率=概率密度度*单元格长度
y$density*(y$breaks[2]-y$breaks[1])
sum(y$density*(y$breaks[2]-y$breaks[1]))
z<-density(x,bw=0.0001) #bw表示带宽
plot(z)#绘制和密度曲线
z$bw

#两图共页
hist(x,breaks = x_breaks,freq=F,col = 'red',border = 'white')
lines(density(x,bw=0.001),col='blue')

#用于正态分布进行对比
a<-rnorm(10000,0,1)
hist(a,freq = F,breaks = 100,main = '正态分布')
lines(density(a,bw=0.5))

#一页多图比较
par(mfrow=c(1,2))
hist(x,breaks = x_breaks,freq=F,col = 'red',border = 'white')
lines(density(x,bw=0.001),col='blue')
a<-rnorm(10000,0,1)
hist(a,freq = F,breaks = 100,main = '正态分布',col = 'red',border = 'white')
lines(density(a,bw=0.5),col='blue')


mean(x)
var(x)
sd(x)#标准差
install.packages('fBasics')
library(fBasics)
skewness(x)#计算偏度,负值说明是负值的数多


#计算峰度
kurtosis(x)

#检验x是否是正态分布
jarqueberaTest(x)#得出p值很小拒绝原假设
jar<-jarqueberaTest(x)
jar@test$p.value ##p值近似为零

 

#如何用一个函数求出均值,方差,峰度,偏度

describe<-function(x){
m<-mean(x)
v<-var(x)
s<-sd(x)
ske<-skewness(x)
kur<-kurtosis(x)
jar<-jarqueberaTest(x)
p<-jar@test$p.value

return(c('均值'=m,'方差'=v,'标准差'=s,
'偏度'=ske,'峰度'=kur,'p值'=p))
}

##function中的x是形式参数

describe(x)

#看看a的参数情况
describe(a)
##之后可以反复使用这个函数

# 作业八 ---------------------------------------------------------------------
#1、
library(readxl)
returndaily<-read_excel('E:/桌面快捷文件存放/未明学院/未明学院作业/returndaily.xlsx')

#2、
x<-returndaily$SZ_return_daily
x_breaks<-seq(min(x),max(x),length.out = 101)

hist(x,freq=F,breaks=x_breaks,xlab = '收益率',main='SZ收益率直方图和和密度图')
lines(density(x,bw=0.001),col='blue')


#3、

describe<-function(x){
m<-mean(x)
v<-var(x)
s<-sd(x)
ske<-skewness(x)
kur<-kurtosis(x)
jar<-jarqueberaTest(x)
p<-jar@test$p.value
return(c("均值"=m,'方差'=v,'标准差'=s,'偏度'=ske,'峰度'=kur,'p值'=p))
}
describe(x)
##p值几乎等于0,所以拒绝原假设,即不认为x服从正态分布

 

标签:14,Day8,density,freq,breaks,describe,bw,打卡,col
来源: https://www.cnblogs.com/chayibaishanlqy/p/11601409.html