11/29/2011 Passed/agreed to in House: On motion to suspend the rules and pass the bill, as amended Agreed to by the Yeas and Nays: (2/3 required): 389 - 15 (Roll no. 860).(text: CR H7903)
11/18/2011 Reported (Amended) by the Committee on Judiciary. H. Rept. 112-292.
09/22/2011 Introduced in House
11/10/2011 Introduced in Senate
12/13/2011 Introduced in Senate
04/08/2013 Referred to the Subcommittee on Immigration And Border Security. Action By: Committee on the Judiciary 02/13/2013 Referred to the House Committee on the Judiciary. Action By: House of Representatives 02/13/2013 Introduced in House Action By: House of Representatives
02/13/2013 Introduced in Senate
02/02/2015 Referred to the Subcommittee on Immigration and Border Security. Action By: Committee on the Judiciary 01/08/2015 Referred to the House Committee on the Judiciary. Action By: House of Representatives 01/08/2015 Introduced in House Action By: House of Representatives
07/11/2017-2:07pm ASSUMING FIRST SPONSORSHIP - Mr. Yoder asked unanimous consent that he may hereafter be considered as the first sponsor of H.R. 392, a bill originally introduced by Representative Chaffetz, for the purpose of adding cosponsors and requesting reprintings pursuant to clause 7 of rule XII. Agreed to without objection. Action By: House of Representatives 02/06/2017 Referred to the Subcommittee on Immigration and Border Security. Action By: Committee on the Judiciary 01/10/2017 Referred to the House Committee on the Judiciary. Action By: House of Representatives 01/10/2017 Introduced in House Action By: House of Representatives
02/02/2017 Introduced in Senate
12/02/2020 Passed/agreed to in Senate: Passed Senate with an amendment by Voice Vote.(text of amendment in the nature of a substitute: CR S7183-7187) 12/02/2020 Senate Committee on the Judiciary discharged by Unanimous Consent. 07/10/2019 Passed/agreed to in House: On motion to suspend the rules and pass the bill, as amended Agreed to by the Yeas and Nays: (2/3 required): 365 - 65 (Roll no. 437).(text: CR H5323-5324) 02/07/2019 Introduced in House
07/09/2019 S.Amdt.906 Referred to the Committee on the Judiciary. 02/07/2019 Read twice and referred to the Committee on the Judiciary. Action By: Senate
112th-116th Congress, IMM, S. and H.R.
95% immigration bills that passed both chambers became law.
Progress #4 and #5 are parallel, progress #7 is optional.
HR1044/S386 is the only bill that passed both chambers but failed to become law in the past decade.
library(knitr)
status <- c("Introduced","Committee Consideration","Floor Consideration","Failed One Chamber","Passed One Chamber","Passed Both Chambers","Resolving Differences","To President","Became Law")
numbers <- c(1488,102,76,4,67,20,4,19,19)
progress <- seq(1:length(status))
legislativeprocess <- data.frame(cbind(progress, status,numbers))
legislativeprocess$probability <- round(c(numbers[1]/1488,numbers[2]/1488,numbers[3]/1488,(numbers[4]+numbers[5])/1488,numbers[5]/1488,numbers[6]/1488,numbers[6]/1488,numbers[8]/1488,numbers[9]/1488),4)
legislativeprocess$advancement <- 1-legislativeprocess$probability
legislativeprocess$bills <- c("S1857,S1983,S293,HR633,HR213,S281","","HR392","","HR3012","HR1044/S386","","","")
legislativeprocess$Congress <- c("113th, 114th","","115th","","112th","116th","","","")
kable(legislativeprocess)
progress | status | numbers | probability | advancement | bills | Congress |
---|---|---|---|---|---|---|
1 | Introduced | 1488 | 1.0000 | 0.0000 | S1857,S1983,S293,HR633,HR213,S281 | 113th, 114th |
2 | Committee Consideration | 102 | 0.0685 | 0.9315 | ||
3 | Floor Consideration | 76 | 0.0511 | 0.9489 | HR392 | 115th |
4 | Failed One Chamber | 4 | 0.0477 | 0.9523 | ||
5 | Passed One Chamber | 67 | 0.0450 | 0.9550 | HR3012 | 112th |
6 | Passed Both Chambers | 20 | 0.0134 | 0.9866 | HR1044/S386 | 116th |
7 | Resolving Differences | 4 | 0.0134 | 0.9866 | ||
8 | To President | 19 | 0.0128 | 0.9872 | ||
9 | Became Law | 19 | 0.0128 | 0.9872 |
#write.csv(legislativeprocess,"PolicyChange.csv",row.names = F)
fullrecord <- read.csv("fullrecord.csv")
names(fullrecord)
## [1] "Client" "Year" "Reports" "Bill" "Congress"
## [6] "sector" "type" "description"
table(fullrecord$Year)
##
## 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020
## 38 63 25 15 14 13 14 27 126 121
lobbyintensity <- c(38,63,25,15,14,13,14,27,126,121)
years <- 2011:2020
billadvancement <- c(legislativeprocess$advancement[5],legislativeprocess$advancement[5],legislativeprocess$advancement[1],legislativeprocess$advancement[1],legislativeprocess$advancement[1],legislativeprocess$advancement[1],legislativeprocess$advancement[1],legislativeprocess$advancement[3],legislativeprocess$advancement[5],legislativeprocess$advancement[6])
data-making: tweets by year table
library(rtweet)
time_user = read_twitter_csv("All_time_user.csv")
time_interval = seq(as.Date("2011-12-31T15:29:42.000Z"), by = "year", length.out = 10);time_interval
time_interval <- as.data.frame(time_interval)
time_interval$n <- rep(NA,10)
for (i in 1:10) {
time_interval$n[i] <- length(which(time_user$created_at<=time_interval$time_interval[i]))
}
time_interval
time_interval$tweets <- rep(NA, 10)
time_interval$tweets[1] <- time_interval$n[1]
for (i in 2:10) {
time_interval$tweets[i] <- time_interval$n[i]-time_interval$n[i-1]
}
time_interval <- time_interval[,c("time_interval","tweets")]
names(time_interval) <- c("year","tweets")
write.csv(time_interval,"Tweets by Year.csv",row.names = F)
tweetsbyYear <- read.csv("Tweets by Year.csv")
tweetsbyYear
## year tweets
## 1 2011-12-31 18904
## 2 2012-12-31 9988
## 3 2013-12-31 22
## 4 2014-12-31 3
## 5 2015-12-31 3209
## 6 2016-12-31 895
## 7 2017-12-31 19359
## 8 2018-12-31 218127
## 9 2019-12-31 258668
## 10 2020-12-31 506459
par(mar=c(4,5,3,3))
plot(years,c(5,5,1,1,1,1,1,3,5,6),type = "b",pch = "*",xaxt = 'n',yaxt = 'n', xlab = "Year", ylab = "",lwd = 2,lty = 1, main = "Trends of Legislative Status, Lobbying Intensity, and Tweets", ylim = c(0,8))
axis(side = 1,at = years, labels = years, las = 3)
axis(side = 2, at = c(1,3,5,6,7.5), labels = c("Introduced","Floor \n Consideration","Passed \n One Chamber","Passed \n Both Chambers","Became Law"),las = 1,cex.axis = 0.6, font = 2)
axis(side = 4, at = c(0,7.5), labels = c(0,1),col = "black", las = 1)
lines(years,lobbyintensity/max(lobbyintensity)*6, lty = 1,col = "blue",lwd = 2)
lines(years,6*tweetsbyYear$tweets/max(tweetsbyYear$tweets), lty = 1, col = "orange", lwd = 2)
text(2011.2,5.2,labels = "H.R. 3012", cex = .6,font = 2)
text(2017.7,3.2, labels = "H.R. 392",cex = .6,font = 2)
text(2019.3,4.8, labels = "H.R. 1044",cex = .6,font = 2)
text(2020,6.2, labels = "S. 386",cex = .6,font = 2)
legend("top", bty = "n", legend = c("Legislative Status","Lobbying Intensity","Tweets"), col = c("black","blue","orange"), cex = 0.7, lty = 1, horiz = T, text.font = 2)
legislativesteps <- c(5,5,1,1,1,1,1,3,5,6)
advancementbyYear <- c(0.955, 0.955, 0,0,0,0,0,0.949, 0.955, 0.986)
df_cor <- as.data.frame(cbind(legislativesteps,lobbyintensity,tweetsbyYear$tweets))
names(df_cor) <- c("bill status","lobby intensity","Tweets")
library(corrplot)
## corrplot 0.92 loaded
cor(df_cor[,1:3])
## bill status lobby intensity Tweets
## bill status 1.0000000 0.8334544 0.6539109
## lobby intensity 0.8334544 1.0000000 0.8018767
## Tweets 0.6539109 0.8018767 1.0000000
corrplot(corr = cor(df_cor[,1:3]), type = "upper", order = "hclust")
library(psych)
corr.test(df_cor[,1:3])$p
## bill status lobby intensity Tweets
## bill status 0.000000000 0.008216513 0.04027248
## lobby intensity 0.002738838 0.000000000 0.01053369
## Tweets 0.040272481 0.005266845 0.00000000
library(rtweet)
time_user <- read_twitter_csv("All_time_user.csv")
tweetsbymonth <- as.data.frame(ts_data(time_user, by = "months"))
tweetsbymonth <- tweetsbymonth[1:113,]
tweetsbymonth$time <- as.Date(tweetsbymonth$time)
tweetsbymonth$progress <- rep(NA,nrow(tweetsbymonth))
tweetsbymonth$progress[tweetsbymonth$time<"2011-11-29"] <- 1
tweetsbymonth$progress[tweetsbymonth$time>="2011-11-29" & tweetsbymonth$time<"2013-01-03"] <- 5
tweetsbymonth$progress[tweetsbymonth$time>="2013-01-03" & tweetsbymonth$time<"2013-02-13"] <- 0
tweetsbymonth$progress[tweetsbymonth$time>="2013-02-13" & tweetsbymonth$time<"2015-01-03"] <- 1
tweetsbymonth$progress[tweetsbymonth$time>="2013-02-13" & tweetsbymonth$time<"2015-01-03"] <- 1
tweetsbymonth$progress[tweetsbymonth$time>="2015-01-03" & tweetsbymonth$time<"2017-01-03"] <- 1
tweetsbymonth$progress[tweetsbymonth$time>="2017-01-03" & tweetsbymonth$time<"2017-07-11"] <- 1
tweetsbymonth$progress[tweetsbymonth$time>="2017-07-11" & tweetsbymonth$time<"2019-01-03"] <- 3 # HR392 floor consideration
tweetsbymonth$progress[tweetsbymonth$time>="2019-01-03" & tweetsbymonth$time<"2019-07-10"] <- 1
tweetsbymonth$progress[tweetsbymonth$time>="2019-07-10" & tweetsbymonth$time<"2020-12-02"] <- 5
tweetsbymonth$progress[tweetsbymonth$time>="2020-12-02" & tweetsbymonth$time<"2021-01-03"] <- 6
#write.csv(tweetsbymonth,"tweetsbymonth.csv",row.names = F)
tweetsbymonth <- read.csv("tweetsbymonth.csv")
tweetsbymonth$seq <- seq(1:nrow(tweetsbymonth))
summary(lm(sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq))
##
## Call:
## lm(formula = sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq)
##
## Residuals:
## Min 1Q Median 3Q Max
## -72.75 -31.04 -10.06 12.65 226.13
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -37.9621 9.9761 -3.805 0.000232 ***
## tweetsbymonth$seq 1.6904 0.1519 11.128 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 52.67 on 111 degrees of freedom
## Multiple R-squared: 0.5273, Adjusted R-squared: 0.5231
## F-statistic: 123.8 on 1 and 111 DF, p-value: < 2.2e-16
summary(lm(sqrt(tweetsbymonth$n) ~ tweetsbymonth$progress))
##
## Call:
## lm(formula = sqrt(tweetsbymonth$n) ~ tweetsbymonth$progress)
##
## Residuals:
## Min 1Q Median 3Q Max
## -120.37 -23.48 -13.09 15.81 232.43
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.173 10.021 -0.117 0.907
## tweetsbymonth$progress 24.655 3.350 7.359 3.43e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 62.81 on 111 degrees of freedom
## Multiple R-squared: 0.3279, Adjusted R-squared: 0.3219
## F-statistic: 54.16 on 1 and 111 DF, p-value: 3.429e-11
summary(lm(sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq+tweetsbymonth$progress))
##
## Call:
## lm(formula = sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq + tweetsbymonth$progress)
##
## Residuals:
## Min 1Q Median 3Q Max
## -85.440 -29.000 -6.615 11.005 180.653
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -63.4261 9.1896 -6.902 3.44e-10 ***
## tweetsbymonth$seq 1.4208 0.1338 10.615 < 2e-16 ***
## tweetsbymonth$progress 16.9012 2.4756 6.827 4.97e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 44.34 on 110 degrees of freedom
## Multiple R-squared: 0.668, Adjusted R-squared: 0.662
## F-statistic: 110.7 on 2 and 110 DF, p-value: < 2.2e-16
summary(lm(sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq+tweetsbymonth$progress+tweetsbymonth$seq:tweetsbymonth$progress))
##
## Call:
## lm(formula = sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq + tweetsbymonth$progress +
## tweetsbymonth$seq:tweetsbymonth$progress)
##
## Residuals:
## Min 1Q Median 3Q Max
## -96.188 -24.080 -7.113 7.757 154.714
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -26.53720 14.95674 -1.774 0.07881
## tweetsbymonth$seq 0.67051 0.27699 2.421 0.01714
## tweetsbymonth$progress 5.94725 4.30123 1.383 0.16959
## tweetsbymonth$seq:tweetsbymonth$progress 0.20909 0.06831 3.061 0.00278
##
## (Intercept) .
## tweetsbymonth$seq *
## tweetsbymonth$progress
## tweetsbymonth$seq:tweetsbymonth$progress **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 42.75 on 109 degrees of freedom
## Multiple R-squared: 0.6943, Adjusted R-squared: 0.6859
## F-statistic: 82.51 on 3 and 109 DF, p-value: < 2.2e-16
summary(lm(sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq+tweetsbymonth$seq:tweetsbymonth$progress)) # r = 0.68
##
## Call:
## lm(formula = sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq + tweetsbymonth$seq:tweetsbymonth$progress)
##
## Residuals:
## Min 1Q Median 3Q Max
## -96.664 -22.722 -9.541 11.395 146.860
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -9.91608 8.93638 -1.110 0.2696
## tweetsbymonth$seq 0.41775 0.20897 1.999 0.0481
## tweetsbymonth$seq:tweetsbymonth$progress 0.28766 0.03805 7.559 1.3e-11
##
## (Intercept)
## tweetsbymonth$seq *
## tweetsbymonth$seq:tweetsbymonth$progress ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 42.92 on 110 degrees of freedom
## Multiple R-squared: 0.6889, Adjusted R-squared: 0.6833
## F-statistic: 121.8 on 2 and 110 DF, p-value: < 2.2e-16
#plot(lm(sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq+tweetsbymonth$progress))
summary(lm(tweetsbyYear$tweets ~ seq(1:10)))
##
## Call:
## lm(formula = tweetsbyYear$tweets ~ seq(1:10))
##
## Residuals:
## Min 1Q Median 3Q Max
## -150341 -68088 2561 47229 204486
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -138938 77962 -1.782 0.11259
## seq(1:10) 44091 12565 3.509 0.00797 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 114100 on 8 degrees of freedom
## Multiple R-squared: 0.6062, Adjusted R-squared: 0.557
## F-statistic: 12.31 on 1 and 8 DF, p-value: 0.007972
summary(lm(tweetsbyYear$tweets ~ seq(1:10)+legislativesteps)) # r = 0.86, p = 0.0004264
##
## Call:
## lm(formula = tweetsbyYear$tweets ~ seq(1:10) + legislativesteps)
##
## Residuals:
## Min 1Q Median 3Q Max
## -73060 -46016 842 31434 92134
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -237575 49522 -4.797 0.001972 **
## seq(1:10) 39080 7160 5.458 0.000948 ***
## legislativesteps 43516 10169 4.279 0.003659 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 64160 on 7 degrees of freedom
## Multiple R-squared: 0.8911, Adjusted R-squared: 0.86
## F-statistic: 28.64 on 2 and 7 DF, p-value: 0.0004264
summary(lm(tweetsbyYear$tweets ~ seq(1:10)+legislativesteps+seq(1:10):legislativesteps)) # r = 0.93
##
## Call:
## lm(formula = tweetsbyYear$tweets ~ seq(1:10) + legislativesteps +
## seq(1:10):legislativesteps)
##
## Residuals:
## Min 1Q Median 3Q Max
## -79204 -12131 -2129 20928 55865
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -22073 85989 -0.257 0.8060
## seq(1:10) -1803 15718 -0.115 0.9124
## legislativesteps -5596 19279 -0.290 0.7814
## seq(1:10):legislativesteps 8981 3263 2.753 0.0332 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 46070 on 6 degrees of freedom
## Multiple R-squared: 0.9519, Adjusted R-squared: 0.9278
## F-statistic: 39.55 on 3 and 6 DF, p-value: 0.0002395
summary(lm(tweetsbyYear$tweets ~ seq(1:10):legislativesteps)) # r = 0.94
##
## Call:
## lm(formula = tweetsbyYear$tweets ~ seq(1:10):legislativesteps)
##
## Residuals:
## Min 1Q Median 3Q Max
## -79616 -9093 1620 14198 55257
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -37602.8 17100.9 -2.199 0.0591 .
## seq(1:10):legislativesteps 8353.0 672.8 12.416 1.65e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 40390 on 8 degrees of freedom
## Multiple R-squared: 0.9507, Adjusted R-squared: 0.9445
## F-statistic: 154.2 on 1 and 8 DF, p-value: 1.653e-06
summary(lm(sqrt(tweetsbyYear$tweets) ~ seq(1:10):legislativesteps)) # r = 0.9
##
## Call:
## lm(formula = sqrt(tweetsbyYear$tweets) ~ seq(1:10):legislativesteps)
##
## Residuals:
## Min 1Q Median 3Q Max
## -58.33 -45.39 -28.24 28.29 165.70
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 11.80 32.03 0.369 0.722
## seq(1:10):legislativesteps 12.06 1.26 9.574 1.17e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 75.65 on 8 degrees of freedom
## Multiple R-squared: 0.9197, Adjusted R-squared: 0.9097
## F-statistic: 91.67 on 1 and 8 DF, p-value: 1.173e-05
summary(lm(sqrt(tweetsbyYear$tweets) ~ seq(1:10)+legislativesteps+seq(1:10):legislativesteps)) # r = 0.925
##
## Call:
## lm(formula = sqrt(tweetsbyYear$tweets) ~ seq(1:10) + legislativesteps +
## seq(1:10):legislativesteps)
##
## Residuals:
## Min 1Q Median 3Q Max
## -74.065 -43.556 -5.384 31.459 116.481
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -226.473 128.699 -1.760 0.129
## seq(1:10) 43.248 23.525 1.838 0.116
## legislativesteps 52.822 28.854 1.831 0.117
## seq(1:10):legislativesteps 3.024 4.884 0.619 0.558
##
## Residual standard error: 68.95 on 6 degrees of freedom
## Multiple R-squared: 0.95, Adjusted R-squared: 0.925
## F-statistic: 37.99 on 3 and 6 DF, p-value: 0.0002684