2 Star 4 Fork 18

计量经济学/CausalitySlides

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
.Rhistory 20.04 KB
一键复制 编辑 原始数据 按行查看 历史
NickCH-K 提交于 2021-02-23 13:49 . Push slides
dag <- dagify(D~Group+Time,
Y~Group+Time,
coords=list(
x=c(D=0,Group=1,Time=1,Y=2),
y=c(D=1,Group=0,Time=2,Y=1)
)) %>% tidy_dagitty()
ggdag(dag,node_size=20)
library(Ecdat)
data("Benefits")
View(Benefits)
help(benefits)
help(Benefits)
data("Bwages")
help(Bwages)
library(tidyverse)
ggplot(Bwages,aes(x=exper,y=wage))+geom_point()
Bwages <- Bwages %>%
mutate(wage.reg.explained = predict(lm(wage~exper)))
View(Bwages)
data(Bwages)
table(Bwages$sex)
summary(lm(wage~exper,data=Bwages))
library(stargazer)
stargazer(lm(wage~exper,data=Bwages))
stargazer(lm(wage~exper,data=Bwages),type='text')
help(stargazer)
stargazer(lm(wage~exper,data=Bwages),type='text',keep.stat=c())
stargazer(lm(wage~exper,data=Bwages),type='text',keep.stat=c('n'))
stargazer(lm(wage~exper,data=Bwages),type='text',keep.stat=c(''))
stargazer(lm(wage~exper,data=Bwages),type='text',keep.stat=c('n'))
ggplot(Bwages,aes(x=exper,y=wage,color='Raw'))+geom_point()+
labs(x='Experience',y='Wage')+
geom_point(aes(x=exper,y=wage.explained),color='Our Method')+
geom_point(aes(x=exper,y=wage.reg.explained),color='Regression')+
scale_color_manual(values=c('Raw'='black','Our Method'='red','Regression'='blue'))
Bwages <- Bwages %>% group_by(cut(exper,breaks=8)) %>%
mutate(wage.explained = mean(wage))
#Explain wages with regression
#lm(wage~exper) regresses wage on exper, and predict() gets the explained values
Bwages <- Bwages %>%
mutate(wage.reg.explained = predict(lm(wage~exper)))
ggplot(Bwages,aes(x=exper,y=wage,color='Raw'))+geom_point()+
labs(x='Experience',y='Wage')+
geom_point(aes(x=exper,y=wage.explained),color='Our Method')+
geom_point(aes(x=exper,y=wage.reg.explained),color='Regression')+
scale_color_manual(values=c('Raw'='black','Our Method'='red','Regression'='blue'))
ggplot(Bwages,aes(x=exper,y=wage,color='Raw'))+geom_point()+
labs(x='Experience',y='Wage')+
geom_point(aes(x=exper,y=wage.explained,color='Our Method'))+
geom_point(aes(x=exper,y=wage.reg.explained,color='Regression'))+
scale_color_manual(values=c('Raw'='black','Our Method'='red','Regression'='blue'))
ggplot(Bwages,aes(x=exper,y=wage,color='Raw'),alpha=.2)+geom_point()+
labs(x='Experience',y='Wage')+
geom_point(aes(x=exper,y=wage.explained,color='Our Method'))+
geom_point(aes(x=exper,y=wage.reg.explained,color='Regression'))+
scale_color_manual(values=c('Raw'='black','Our Method'='red','Regression'='blue'))
ggplot(Bwages,aes(x=exper,y=wage,color='Raw',alpha=.2))+geom_point()+
labs(x='Experience',y='Wage')+
geom_point(aes(x=exper,y=wage.explained,color='Our Method'))+
geom_point(aes(x=exper,y=wage.reg.explained,color='Regression'))+
scale_color_manual(values=c('Raw'='black','Our Method'='red','Regression'='blue'))
ggplot(filter(Bwages,wage<20),aes(x=exper,y=wage,color='Raw',alpha=.2))+geom_point()+
labs(x='Experience',y='Wage')+
geom_point(aes(x=exper,y=wage.explained,color='Our Method'))+
geom_point(aes(x=exper,y=wage.reg.explained,color='Regression'))+
scale_color_manual(values=c('Raw'='black','Our Method'='red','Regression'='blue'))
plot(Bwages$exper,Bwages$wage.reg.explained)
data(Bwages)
#Explain wages with our normal method
Bwages <- Bwages %>% group_by(cut(exper,breaks=8)) %>%
mutate(wage.explained = mean(wage)) %>% ungroup()
#Explain wages with regression
#lm(wage~exper) regresses wage on exper, and predict() gets the explained values
Bwages <- Bwages %>%
mutate(wage.reg.explained = predict(lm(wage~exper)))
ggplot(filter(Bwages,wage<20),aes(x=exper,y=wage,color='Raw',alpha=.2))+geom_point()+
labs(x='Experience',y='Wage')+
geom_point(aes(x=exper,y=wage.explained,color='Our Method'))+
geom_point(aes(x=exper,y=wage.reg.explained,color='Regression'))+
scale_color_manual(values=c('Raw'='black','Our Method'='red','Regression'='blue'))
ggplot(filter(Bwages,wage<20),aes(x=exper,y=wage,color='Raw'),alpha=.1)+geom_point()+
labs(x='Experience',y='Wage')+
geom_point(aes(x=exper,y=wage.explained,color='Our Method'))+
geom_point(aes(x=exper,y=wage.reg.explained,color='Regression'))+
scale_color_manual(values=c('Raw'='black','Our Method'='red','Regression'='blue'))
ggplot(filter(Bwages,wage<20),aes(x=exper,y=wage,color='Raw'))+geom_point(alpha=.1)+
labs(x='Experience',y='Wage')+
geom_point(aes(x=exper,y=wage.explained,color='Our Method'))+
geom_point(aes(x=exper,y=wage.reg.explained,color='Regression'))+
scale_color_manual(values=c('Raw'='black','Our Method'='red','Regression'='blue'))
lm(wage~exper,data=Bwages)
coef(lm(wage~exper,data=Bwages))[2]
knitr::opts_chunk$set(echo = FALSE, warning=FALSE, message=FALSE)
library(tidyverse)
library(dagitty)
library(ggdag)
library(ggthemes)
library(Cairo)
theme_set(theme_gray(base_size = 15))
#Bwages appears to drop the sex variable in some versions? Let's make it up
Bwages <- Bwages %>%
mutate(male = runif(1472) + (wage > mean(wage))*.04 >= .5)
lm(wage~exper+educ+male,data=Bwages)
rdd <- tibble(test = runif(300)*100) %>%
mutate(GATE = test >= 75,
above = test >= 75) %>%
mutate(earn = runif(300)*40+10*GATE+test/2)
ggplot(rdd,aes(x=test,y=GATE))+geom_point()+
geom_vline(aes(xintercept=75),col='red')+
labs(x='Test Score',
y='In GATE')
ggplot(rdd,aes(x=test,y=earn,color=GATE))+geom_point()+
geom_vline(aes(xintercept=75),col='red')+
labs(x='Test Score',
y='Earnings')
rdmeans <- rdd %>% filter(between(test,73,75)) %>%
group_by(above) %>%
mutate(E = mean(earn))
rdmeans$E
rdmenas
rdmeans
rdmeans <- rdd %>% filter(between(test,73,77)) %>%
group_by(above) %>%
mutate(E = mean(earn))
rdmeans
rdmeans <- rdd %>% filter(between(test,73,77)) %>%
group_by(above) %>%
summarize(E = mean(earn))
rdmeans
help(geom_smooth)
ggplot(rdd,aes(x=test,y=earn,color='Raw'))+geom_point()+
geom_vline(aes(xintercept=75),col='red')+
labs(x='Test Score',
y='Earnings')+
geom_smooth(method='lm',se=FALSE,formula=y~x+I(x>=75)+x*I(x>=75),col='Regression')+
scale_color_manual(values=c('Raw'='black','Regression'='red'))
ggplot(rdd,aes(x=test,y=earn,color='Raw'))+geom_point()+
geom_vline(aes(xintercept=75),col='red')+
labs(x='Test Score',
y='Earnings')+
geom_smooth(method='lm',se=FALSE,formula=y~x+I(x>=75)+x*I(x>=75),color='Regression')+
scale_color_manual(values=c('Raw'='black','Regression'='red'))
ggplot(rdd,aes(x=test,y=earn,color='Raw'))+geom_point()+
geom_vline(aes(xintercept=75),col='red')+
labs(x='Test Score',
y='Earnings')+
geom_smooth(aes(color='Regression'),method='lm',se=FALSE,formula=y~x+I(x>=75)+x*I(x>=75))+
scale_color_manual(values=c('Raw'='black','Regression'='red'))
help(geom_segment)
ggplot(rdd,aes(x=test,y=earn,color='Raw'))+geom_point()+
geom_vline(aes(xintercept=75),col='blue')+
labs(x='Test Score',
y='Earnings')+
geom_smooth(aes(color='Regression'),method='lm',se=FALSE,formula=y~x+I(x>=75)+x*I(x>=75))+
geom_segment(aes(x=73,xend=75,y=rdmeans$E[1],yend=rdmenas$E[1],color='Our Method'))+
scale_color_manual(values=c('Raw'='black','Regression'='red','Our Method'='gold'))
ggplot(rdd,aes(x=test,y=earn,color='Raw'))+geom_point()+
geom_vline(aes(xintercept=75),col='blue')+
labs(x='Test Score',
y='Earnings')+
geom_smooth(aes(color='Regression'),method='lm',se=FALSE,formula=y~x+I(x>=75)+x*I(x>=75))+
geom_segment(aes(x=73,xend=75,y=rdmeans$E[1],yend=rdmeans$E[1],color='Our Method'))+
scale_color_manual(values=c('Raw'='black','Regression'='red','Our Method'='gold'))
ggplot(rdd,aes(x=test,y=earn,color='Raw'))+geom_point()+
geom_vline(aes(xintercept=75),col='blue')+
labs(x='Test Score',
y='Earnings')+
geom_smooth(aes(color='Regression'),method='lm',se=FALSE,formula=y~x+I(x>=75)+x*I(x>=75))+
geom_segment(aes(x=73,xend=75,y=rdmeans$E[1],yend=rdmeans$E[1],color='Our Method'),size=2)+
scale_color_manual(values=c('Raw'='black','Regression'='red','Our Method'='gold'))
ggplot(rdd,aes(x=test,y=earn,color='Raw'))+geom_point()+
geom_vline(aes(xintercept=75),col='blue')+
labs(x='Test Score',
y='Earnings')+
geom_smooth(aes(color='Regression'),method='lm',se=FALSE,formula=y~x+I(x>=75)+x*I(x>=75))+
geom_segment(aes(x=73,xend=75,y=rdmeans$E[1],yend=rdmeans$E[1],color='Our Method'),size=2)+
scale_color_manual(values=c('Raw'='black','Regression'='red','Our Method'='blue'))
ggplot(rdd,aes(x=test,y=earn,color='Raw'))+geom_point()+
geom_vline(aes(xintercept=75),col='blue')+
labs(x='Test Score',
y='Earnings')+
geom_smooth(aes(color='Regression'),method='lm',se=FALSE,formula=y~x+I(x>=75)+x*I(x>=75))+
geom_segment(aes(x=73,xend=75,y=rdmeans$E[1],yend=rdmeans$E[1],color='Our Method'),size=2)+
geom_segment(aes(x=75,xend=77,y=rdmeans$E[2],yend=rdmeans$E[2],color='Our Method'),size=2)+
scale_color_manual(values=c('Raw'='black','Regression'='red','Our Method'='blue'))
quaddata <- tibble(x = rnormal(1000)) %>%
mutate(y = x + x^2 + rnormal(1000))
ggplot(quaddata,aes(y=y,x=x))+geom_point()
quaddata <- tibble(x = rnorm(1000)) %>%
mutate(y = x + x^2 + rnorm(1000))
ggplot(quaddata,aes(y=y,x=x))+geom_point()
quaddata <- tibble(x = rnorm(1000)) %>%
mutate(y = x + x^2 + rnorm(1000)) %>%
group_by(cut(x,breaks=10)) %>%
mutate(y.exp = mean(y)) %>%
ungroup() %>%
mutate(y.exp.reg = predict(lm(y~x)))
ggplot(quaddata,aes(y=y,x=x,color='Raw'))+geom_point(alpha=.2)+
geom_point(aes(x=x,y=y.exp,color='Our Method'))+
geom_point(aes(x=x,y=y.exp.reg,color='Regression'))+
scale_color_manual(values=c('Raw'='black','Our Method'='red','Regression'='blue'))
quaddata <- quaddata %>%
mutate(y.exp.reg = predict(lm(y~x+I(x^2))))
ggplot(quaddata,aes(y=y,x=x,color='Raw'))+geom_point(alpha=.2)+
geom_point(aes(x=x,y=y.exp,color='Our Method'))+
geom_point(aes(x=x,y=y.exp.reg,color='Quadratic Regression'))+
scale_color_manual(values=c('Raw'='black','Our Method'='red','Quadratic Regression'='blue'))
rdd <- tibble(test = runif(300)*100) %>%
mutate(GATE = test >= 75,
above = test >= 75) %>%
mutate(earn = runif(300)*40+10*GATE+test/2)
rdd <- rdd %>%
mutate(above = above >= 75,
zeroedtest = test-75)
rdmeans <- rdd %>% filter(between(test,73,77)) %>%
group_by(above) %>%
summarize(E = mean(earn))
ggplot(rdd,aes(x=test,y=earn,color='Raw'))+geom_point()+
geom_vline(aes(xintercept=75),col='blue')+
labs(x='Test Score',
y='Earnings')+
geom_smooth(aes(color='Regression'),method='lm',se=FALSE,formula=y~x+I(x>=75)+x*I(x>=75))+
geom_segment(aes(x=73,xend=75,y=rdmeans$E[1],yend=rdmeans$E[1],color='Our Method'),size=2)+
geom_segment(aes(x=75,xend=77,y=rdmeans$E[2],yend=rdmeans$E[2],color='Our Method'),size=2)+
scale_color_manual(values=c('Raw'='black','Regression'='red','Our Method'='blue'))
rdmeans$E[2]
rdmeans
set.seed(1000)
rdd <- tibble(test = runif(300)*100) %>%
mutate(GATE = test >= 75,
above = test >= 75) %>%
mutate(earn = runif(300)*40+10*GATE+test/2)
rdd <- rdd %>%
mutate(above = above >= 75,
zeroedtest = test-75)
rdmeans <- rdd %>% filter(between(test,73,77)) %>%
group_by(above) %>%
summarize(E = mean(earn))
rdmeans
rdd <- rdd %>%
mutate(above = above >= 75,
zeroedtest = test-75)
rdmeans <- rdd %>% filter(between(test,72,78)) %>%
group_by(above) %>%
summarize(E = mean(earn))
rdmeans
sum(between(rdd$test,75,78))
rdd <- rdd %>%
mutate(above = test >= 75,
zeroedtest = test-75)
rdmeans <- rdd %>% filter(between(test,73,77)) %>%
group_by(above) %>%
summarize(E = mean(earn))
rdmeans
ggplot(rdd,aes(x=test,y=earn,color='Raw'))+geom_point()+
geom_vline(aes(xintercept=75),col='blue')+
labs(x='Test Score',
y='Earnings')+
geom_smooth(aes(color='Regression'),method='lm',se=FALSE,formula=y~x+I(x>=75)+x*I(x>=75))+
geom_segment(aes(x=73,xend=75,y=rdmeans$E[1],yend=rdmeans$E[1],color='Our Method'),size=2)+
geom_segment(aes(x=75,xend=77,y=rdmeans$E[2],yend=rdmeans$E[2],color='Our Method'),size=2)+
scale_color_manual(values=c('Raw'='black','Regression'='red','Our Method'='blue'))
reg.pos <- c(NA)
our.pos <- c(NA)
for (i in 1:10000) {
df <- tibble(x = runif(1000)) %>%
mutate(y = .01*x + rnorm(1000))
reg.pos[i] <- coef(lm(y~x,data=df))[2] >= 0
our.df <- df %>% group_by(cut(x,breaks=2)) %>%
summarize(y = mean(y))
our.pos[i] <- our.df$y[2] - our.df$y[1] > 0
}
mean(reg.pos)
mean(our.pos)
set.seed(123492)
reg.pos <- c(NA)
our.pos <- c(NA)
for (i in 1:10000) {
df <- tibble(x = runif(1000)) %>%
mutate(y = .01*x + rnorm(1000))
reg.pos[i] <- coef(lm(y~x,data=df))[2] >= 0
our.df <- df %>% group_by(cut(x,breaks=2)) %>%
summarize(y = mean(y))
our.pos[i] <- our.df$y[2] - our.df$y[1] > 0
}
mean(reg.pos)
mean(our.pos)
set.seed(1234)
reg.pos <- c(NA)
our.pos <- c(NA)
for (i in 1:10000) {
df <- tibble(x = runif(1000)) %>%
mutate(y = .01*x + rnorm(1000))
reg.pos[i] <- coef(lm(y~x,data=df))[2] >= 0
our.df <- df %>% group_by(cut(x,breaks=2)) %>%
summarize(y = mean(y))
our.pos[i] <- our.df$y[2] - our.df$y[1] > 0
}
mean(reg.pos)
mean(our.pos)
library(tidyverse)
df <- tibble(x = runif(1000)) %>%
mutate(y = x + rnorm(1000)) %>%
arrange(x) %>%
group_by(cut(x,breaks=20)) %>%
mutate(y.mean = mean(y)) %>%
ungroup()
ggplot(df,aes(x=x,y=y,color='Raw'))+geom_point(alpha=.2)+
geom_line(aes(x=x,y=y.mean,color='Our Method'))+
geom_smooth(aes(color='Regression'),method='lm',se=FALSE)+
labs(x='X',y='Y')+
scale_color_manual(values('Raw'='black','Our Method'='blue','Regression'='red'))
ggplot(df,aes(x=x,y=y,color='Raw'))+geom_point(alpha=.2)+
geom_line(aes(x=x,y=y.mean,color='Our Method'))+
geom_smooth(aes(color='Regression'),method='lm',se=FALSE)+
labs(x='X',y='Y')+
scale_color_manual(values=c('Raw'='black','Our Method'='blue','Regression'='red'))
ggplot(df,aes(x=x,y=y,color='Raw'))+geom_point(alpha=.2)+
geom_line(aes(x=x,y=y.mean,color='Our Method'),size=1)+
geom_smooth(aes(color='Regression'),method='lm',se=FALSE)+
labs(x='X',y='Y')+
scale_color_manual(values=c('Raw'='black','Our Method'='blue','Regression'='red'))
library(Ecdat)
data("Airline")
View(Airline)
class(Airline$airline)
data(Airline)
# Our method
AirlineOurMethod <- Airline %>% group_by(airline) %>%
mutate(output.r = output - mean(output),
cost.r = cost - mean(cost))
AirlineReg <- Airline %>%
mutate(output.reg = residuals(lm(output~factor(airline))),
cost.reg = residuals(lm(cost~factor(airline))))
c(cor(AirlineOurMethod$output.r,AirlineOurMethod$cost.r),
cor(AirlineReg$output.reg,AirlineReg$cost.reg))
load('mariel.Rdata')
load('mariel.RData')
load('mariel.RData')
df <- df %>%
#Take out Cubans
filter(!(ethnic == 5),
#Remove NILF
!(esr %in% c(4,5,6,7))) %>%
#Calculate hourly wage
mutate(hourwage=earnwke/uhourse,
#and unemp
unemp = esr == 3) %>%
#no log problems
filter((hourwage > 2 | is.na(hourwage)),(uhourse > 0 | is.na(uhourse))) %>%
#adjust for inflation to 1980 prices
mutate(hourwage = case_when(
year==79 ~ hourwage/.88,
year==81 ~ hourwage/1.1,
year==82 ~ hourwage/1.17,
year==83 ~ hourwage/1.21,
year==84 ~ hourwage/1.26,
year==85 ~ hourwage/1.31
))
#Take the log of wage and create our "after treatment" and "treated group" variables
df <- mutate(df,lwage = log(hourwage),
after = year >= 81,
miami = smsarank == 26)
means <- df %>% group_by(after,miami) %>% summarize(lwage = mean(lwage),unemp=mean(unemp))
means
means <- df %>% group_by(after,miami) %>% summarize(lwage = mean(lwage,na.rm=TRUE),unemp=mean(unemp))
means
(means$lwage[4] - means$lwage[2]) - (means$lwage[3]-means$lwage[1])
lm(lwage~after*miami)
lm(lwage~after*miami,data=df)
set.seed(1000)
rdd <- tibble(test = runif(300)*100) %>%
mutate(GATE = test >= 75,
above = test >= 75) %>%
mutate(earn = runif(300)*40+10*GATE+test/2)
rdd <- rdd %>%
mutate(above = test >= 75,
zeroedtest = test-75)
rdmeans <- rdd %>% filter(between(test,73,77)) %>%
group_by(above) %>%
summarize(E = mean(earn))
ggplot(rdd,aes(x=test,y=earn,color='Raw'))+geom_point()+
geom_vline(aes(xintercept=75),col='blue')+
labs(x='Test Score',
y='Earnings')+
geom_smooth(aes(color='Regression'),method='lm',se=FALSE,formula=y~x+I(x>=75)+x*I(x>=75))+
geom_segment(aes(x=73,xend=75,y=rdmeans$E[1],yend=rdmeans$E[1],color='Our Method'),size=2)+
geom_segment(aes(x=75,xend=77,y=rdmeans$E[2],yend=rdmeans$E[2],color='Our Method'),size=2)+
scale_color_manual(values=c('Raw'='black','Regression'='red','Our Method'='blue'))
std(c(1,2,3))
library(AER)
data(CigarettesSW)
CigarettesSW <- CigarettesSW %>%
mutate(cigtax = taxs-tax) %>%
mutate(price = price/cpi,
cigtax = cigtax/cpi) %>%
mutate(price = (price - mean(price))/sd(price),
packs = (packs - mean(packs))/sd(packs)) %>%
group_by(cut(cigtax,breaks=7)) %>%
summarize(priceexp = mean(price),
packsexp = mean(packs)) %>%
ungroup()
cor(CigarettesSW$priceexp,CigarettesSW$packsexp)
x.explained.with.z <- predict(lm(packs~cigtax,data=CigarettesSW))
lm(price~x.explained.with.z,data=CigarettesSW)
data(CigarettesSW)
x.explained.with.z <- predict(lm(packs~cigtax,data=CigarettesSW))
lm(price~x.explained.with.z,data=CigarettesSW)
CigarettesSW <- CigarettesSW %>%
mutate(cigtax = taxs-tax) %>%
mutate(price = price/cpi,
cigtax = cigtax/cpi) %>%
mutate(price = (price - mean(price))/sd(price),
packs = (packs - mean(packs))/sd(packs))
x.explained.with.z <- predict(lm(packs~cigtax,data=CigarettesSW))
lm(price~x.explained.with.z,data=CigarettesSW)
library(randomForest)
data("imports85")
View(imports85)
data("ConsumerGood")
View(ConsumerGood)
data("GoldSilver")
View(GoldSilver)
help(randomForest)
rf <- randomForest(GoldSilver$silver,GoldSilver$gold)
GoldSilver$silver
GoldSilver <- as.matrix(GoldSilver)
View(GoldSilver)
rf <- randomForest(GoldSilver$silver,GoldSilver$gold)
rf <- randomForest(GoldSilver[,'silver'],GoldSilver[,'gold'])
data(GoldSilver)
rf <- randomForest(x=GoldSilver$silver,y=GoldSilver$gold)
GoldSilver <- as.matrix(GoldSilver)
rf <- randomForest(x=GoldSilver[,'silver'],y=GoldSilver[,'gold'])
GoldSilver <- as.data.frame(GoldSilver)
rf <- randomForest(x=GoldSilver$silver,y=GoldSilver$gold)
rf <- randomForest(gold~silver,data=GoldSilver)
predict(rf)[1:5]
help(GoldSilver)
GoldSilver <- GoldSilver %>%
mutate(rf.predict = predict(rf),
reg.predict = predict(lm(gold~silver,data=GoldSilver)))
ggplot(GoldSilver,aes(x=silver,y=gold,color='Raw'))+geom_point(alpha=.2)+
geom_point(aes(x=silver,y=reg.predict,color='Regression'))+
geom_point(aes(x=silver,y=rf.predict,color='Rand. Forest'))+
labs(x='Silver Price',y='Gold Price')+
scale_color_manual(values=c('Raw'='black','Regression'='blue','Rand. Forest'='red'))
```{r, echo=FALSE, eval=TRUE, fig.width=8, fig.height=5}
ggplot(GoldSilver,aes(x=silver,y=gold,color='Raw'))+geom_point(alpha=.2)+
geom_point(aes(x=silver,y=rf.predict,color='Rand. Forest'))+
geom_point(aes(x=silver,y=reg.predict,color='Regression'))+
labs(x='Silver Price',y='Gold Price')+
scale_color_manual(values=c('Raw'='black','Regression'='blue','Rand. Forest'='red'))
ggplot(GoldSilver,aes(x=silver,y=gold,color='Raw'))+geom_point(alpha=.2)+
geom_point(aes(x=silver,y=rf.predict,color='Rand. Forest'),alpha=.5)+
geom_point(aes(x=silver,y=reg.predict,color='Regression'))+
labs(x='Silver Price',y='Gold Price')+
scale_color_manual(values=c('Raw'='black','Regression'='blue','Rand. Forest'='red'))
ggplot(GoldSilver,aes(x=silver,y=gold,color='Raw'))+geom_point(alpha=.2)+
labs(x='Silver Price',y='Gold Price')+
scale_color_manual(values=c('Raw'='black'))
rep(1:50*2,2)
dat <- data.frame(a = rep(1:50*2,2),
b = sample(c('Hi','Hello','Goodbye'),100,replace=T)) %>%
arrange(a) %>%
mutate(c = (b == 'Goodbye') | (a > 90) | (a <= 10))
sum(dat$a)
sum(dat$b %in% c('Hi','Hello'))
dat <- dat %>% group_by(b) %>% mutate(c.res = c - mean(c))
1 - var(dat$c.res)/var(dat$c)
help(rnorm)
x <- rexp(3000)
plot(density(x))
stargazer(x,type='text')
library(stargazer)
stargazer(x,type='text')
stargazer(as.data.frame(x),type='text')
x <- as.data.frame(rexp(3000))
stargazer(as.data.frame(x),type='text')
stargazer(x,type='text')
plot(density(x))
x <- rexp(3000)
plot(density(x),xlab='X',ylab='Density',main='Distribution of X')
abline(v=mean(x),col='blue')
abline(v=median(x),col='red')
stargazer(as.data.frame(x),type='text')
quantile(x,c(1:10/10))
table(at$c)
table(dat$c)
v
table(dat$b)
prop.table(table(dat$b))
barplot(table(dat$b))
barplot(prop.table(table(dat$b)))
plot(density((filter(dat,c==FALSE))$d))
dat <- dat %>% mutate(d = rnorm(100) + .3*a)
dat <- dat %>% ungroup() %>% mutate(d = rnorm(100) + .3*a)
plot(density((filter(dat,c==FALSE))$d))
curve(density((filter(dat,c==TRUE))$d))
line(density((filter(dat,c==TRUE))$d))
lines(density((filter(dat,c==TRUE))$d))
plot(density((filter(dat,c==FALSE))$d),col='red')
lines(density((filter(dat,c==TRUE))$d),col='blue')
meandiff <- dat %>% group_by(c) %>% summarize(d = mean(d))
meandiff$d[2] - meandiff$d[1]
plot(dat$a,dat$d)
explain <- dat $>$ group_by(cut(a,breaks=8)) %>% mutate(d.res = d - mean(d))
1 - var(dat$d.res)/var(dat$d)
explain <- dat %>% group_by(cut(a,breaks=8)) %>% mutate(d.res = d - mean(d))
1 - var(dat$d.res)/var(dat$d)
dat <- dat %>% group_by(cut(a,breaks=8)) %>% mutate(d.res = d - mean(d))
1 - var(dat$d.res)/var(dat$d)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/econometric/CausalitySlides.git
git@gitee.com:econometric/CausalitySlides.git
econometric
CausalitySlides
CausalitySlides
main

搜索帮助

D67c1975 1850385 1daf7b77 1850385