class: center, middle, inverse, title-slide # Statistical Inference ## Sociology 312 ### Aaron Gullickson ### University of Oregon ### 2019-08-09 --- class: inverse, center, middle background-image: url(images/tim-bennett-EoC_IuYmtug-unsplash.jpg) background-size: cover # The Problem of Statistical Inference --- ## What percent of Americans favor ending birthright citizenship? -- We can look at the results from our politics dataset: ```r 100*round(prop.table(table(politics$brcitizen)),3) ``` ``` ## ## Oppose Neither Favor ## 39.6 28.6 31.7 ``` About 31.7% of respondents to the American National Election Study (ANES) favored ending birthright citizenship. -- * Is the percent of *all* Americans also 31.7%? -- * The ANES is a **sample** of the US voting age **population**. How confident can we be that the sample percent is close to the true population percent? --- ## Drawing a statistical inference  --- ## Drawing a statistical inference  --- ## Drawing a statistical inference  --- ## Parameters and statistics .pull-left[ ### Parameters * Parameters represent unknown measures in the population, such as the population mean or proportion * Parameters are represented by Greek letters (e.g. the population mean is `\(\mu\)`) ### Statistics * Statistics represent known measurements from the sample that estimate the unknown population parameters. * Statistics are represented by roman letters (e.g. the sample mean `\(\bar{x}\)`) ] .pull-right[ | Measure | Parameter | Statistic | |:-------------------:|:---------:|:---------:| | mean | `\(\mu\)` | `\(\bar{x}\)` | | proportion | `\(\rho\)` | `\(\hat{p}\)` | | standard deviation | `\(\sigma\)` | `\(s\)` | ] --- ## When samples go bad 👿 -- .pull-left[ ### Systematic Bias .center[![systematic darts](images/systematic_darts.png)] Something about our data collection procedure biases our results systematically. * We made a mistake in our research design. * Statistical inference cannot fix this mistake. ] -- .pull-right[ ### Random Bias .center[![random darts](images/random_darts.png)] Just by random chance we happened to draw a sample that is very different from the population on the parameter we care about. * We didn't do anything wrong! We just had bad luck. * Statistical inference addresses this form of bias. ] ??? * Even though we know random bias *might* have caused our sample statistic to be different from the population mean, we can't know for sure if this happened or not because we don't know the true population parameter! * This is what statistical inference is all about. Even though we can never say for certain that our results are close or far away from the true value, we can quantify our uncertainty about how different the sample statistic could potentially be from the population parameter. --- class: inverse, center, middle background-image: url(images/kai-pilger-qHfJPxOnXi4-unsplash.jpg) background-size: cover # The Sampling Distribution --- ## Three kinds of distributions You draw a simple random sample of 100 people from the US population and calculate their mean years of education. There are three kinds of distributions involved in this process: -- .pull-left[ ### Population Distribution * The distribution of years of education for the whole US population. * Its mean is given by `\(\mu\)`. * The population mean and distribution are unknown. ] -- .pull-right[ ### Sample Distribution * The distribution of years of education in your sample. * The mean is given by `\(\bar{x}\)`. * The mean and distribution are known and hopefully approximate the population distribution. ] -- ### Sampling Distribution * The distribution of the sample mean `\(\bar{x}\)` in all possible samples of size 100. * We can't know this distribution exactly, but it turns out that we know its general shape. --- ## Example: Height in our class .pull-left[ * Lets treat our class of 42 students as the population. I want to estimate the average height of the class. * In this case, I am omnipotent - I know the population distribution because I collected data for the whole class on Canvas. ] .pull-right[  ] --- ## How many samples of size 2 are possible? Lets say I wanted to sample two students to estimate class height. In a class of 42 students, how many unique samples of size 2 exist? -- * On the first draw, I have 42 possibilities. -- * On the second draw, I have 41 possibilities because I am not putting my first draw back. -- * I therefore have `\(42*41=1722\)` possible samples. -- * However, half of these samples are just duplicates of the other half, but sampled in the other order. In one sample, I samples John and Then Kate and in another I sampled Kate and then John. -- * Therefore the true number of unique samples is: `$$42*41/2=861$$` -- * What if I calculated the sample mean in all 861 samples and looked at the distribution of these sample means? --- ## The sampling distribution  --- ## Sampling distributions for different `\(n\)`  --- ## What is the mean of the sampling distributions?

  Distribution 	  Mean 	  Standard Deviation

  Population Distribution 	  66.52 	  4.87

  Sampling Distibution (n=2) 	  66.52 	  3.36

  Sampling Distribution (n=3) 	  66.52 	  2.71

  Sampling Distribution (n=4) 	  66.52 	  2.32

  Sampling Distribution (n=5) 	  66.52 	  2.04

 --- ## Its the Central Limit Theorem! .pull-left[ As the sample size increases, the sampling distribution of a sample mean becomes a **normal** distribution. * The normal distribution is a bell-shaped curve with two characteristics: center and spread. * Centered on `\(\mu\)`, which is the true value in the population. * With a spread (standard deviation) of `\(\sigma/\sqrt{n}\)`, where `\(\sigma\)` is the standard deviation in the population. * The center of the sampling distribution is the true value of the parameter and the spread of the sampling distribution shrinks as the sample grows larger. ] .pull-right[  ] --- ## The Standard Error There are three different kinds of standard deviations involved here, one that corresponds to each of the types of distributions. | Distribution | Notation | Description | |----------------|----------|-------------| | Population | `\(\sigma\)` | Unknown population standard deviation | | Sample | `\(s\)` | Known sample standard deviation that hopefully approximates `\(\sigma\)` | | Sampling | `\(\sigma/\sqrt{n}\)` | **Standard error**: Standard deviation of the sampling distribution | The standard error gives us an estimate of the strength of potential random bias in our sample. --- ## Sampling distributions are the 🔑 concept .pull-left[ * When we draw a sample and calculate the sample mean we are effectively drawing a value from the sampling distribution for the sample mean. * If we know what that distribution looks like then we can know the probability of drawing a sample close to or far from the true population parameter. ] .pull-right[  ] --- ## But there is a catch! * The shape of the sampling distribution is determined by: * the population mean, `\(\mu\)` * the population standard deviation, `\(\sigma\)` -- * But these values are unknown! 😮 -- .pull-left[ ### First Fix * We can substitute the sample standard deviation `\(s\)` from our sample for the population standard deviation `\(\sigma\)`. * This has consequences. Because we are using a sample value which can also be subject to random bias, this substitution creates greater uncertainty in our estimate which we will address later. ] -- .pull-right[ ### Second Fix * **Confidence Intervals**: Provide a range of values within which you feel confident that the true population mean resides. * **Hypothesis tests**: Play a game of make believe. If the true population mean was a given value, what is the probability that I would get the sample mean value that I actually did? ] --- class: inverse, center, middle background-image: url(images/yogi-purnama-en7G3hTSjBQ-unsplash.jpg) background-size: cover # Confidence Intervals --- ## Consider this statement .pull-left[  ] -- .pull-right[ ### Reverse the Logic If I construct the following interval: `$$\bar{x}\pm1.96*\sigma/\sqrt{n}$$` 95% of *all possible samples* that I could have drawn will contain the true population mean `\(\mu\)` within this interval.  ] --- ## Confidence? We call the interval of `\(\bar{x}\pm1.96*\sigma/\sqrt{n}\)` the **confidence interval**. What does it mean? -- .pull-left[ ### Not a probability * It is tempting to claim that there is a 95% probability that the true population mean is in this interval, but according to classic views of probability this is INCORRECT. * The true population mean does not vary. It just is what it is, even if it is unknown. Either your interval contains it or the interval does not contain it. There is no probability. * The correct interpretation is that "95% of all possible confidence intervals will contain the true population mean." ] -- .pull-right[ ![super confused](images/super_confused.jpg) ] --- ## Calculating the confidence interval The confidence interval is given by `\(\bar{x}\pm1.96*\sigma/\sqrt{n}\)`. But we don't know `\(\sigma\)` because this is the population standard deviation. What can we do? -- ### Substitute the sample standard deviation We *can* calculate `\(\bar{x}\pm1.96*s/\sqrt{n}\)`. However, this equation is no longer correct because we need to adjust for the added uncertainty of using a sample statistic where we should use a population parameter. -- ### Use the t-statistic as a fudge factor The actual formula we want is: `$$\bar{x} \pm t*s/\sqrt{n}$$` where `\(t\)` is the **t-statistic** and will be a number somewhat larger than 1.96. --- ##
Calculating the t-statistic The t-statistic you get depends on two characteristics: -- * What level of confidence you want. We will always use 95% confidence intervals for this class. -- - The number of **degrees of freedom** for the statistic. This is largely a function of sample size. For the sample mean, the degrees of freedom are given by `\(n-1\)`. -- In *R*, you can calculate the t-statistic with the `qt` command. Lets say we wanted the t-statistic for our crime data with 51 observations: ```r qt(.975, 51-1) ``` ``` ## [1] 2.008559 ``` * Although we want the 95% confidence interval but we need to put in 0.975, because we are getting the upper tail of the distribution which has only 2.5% of the area above. * The second argument is the degrees of freedom. --- ## Example: Property crime rates .pull-left[ First we need to calculate all the statistics we need: ```r mean(crimes$Property) ``` ``` ## [1] 2894.004 ``` ```r sd(crimes$Property) ``` ``` ## [1] 641.5065 ``` ```r nrow(crimes) ``` ``` ## [1] 51 ``` Now we can calculate the t-statistic and standard error: ```r tstat <- qt(.975, 51-1) se <- 641.5/sqrt(51) ``` ] -- .pull-right[ The upper limit is given by: ```r 2894+tstat*se ``` ``` ## [1] 3074.425 ``` The lower limit is given by: ```r 2894-tstat*se ``` ``` ## [1] 2713.575 ``` We are 95% confident that the true mean property crime rate across states is between 2731.6 and 3074.4 crimes per 100,000. ] --- ## 🤔 Wait, Does that even make sense? > We are 95% confident that the true mean property crime rate across states is between 2731.6 and 3074.4 crimes per 100,000. We did the math right, but this statement is still nonsense. Why? -- * The crime data are **not a sample**. * We have all fifty states plus the District of Columbia. So we have the entire population. * There is nothing to infer. The mean crime rate across states of 2824 per 100,000 is already the population mean. -- ### Statistical inference only makes sense for samples .pull-left[ #### Proper sample * Popularity data (Add Health) * Politics data (ANES) * Sexual frequency data (GSS) * Earnings data (CPS) ] .pull-right[ #### Not a sample * Titanic * Crimes * Movies ] --- ## Example: Sexual frequency .pull-left[ Calculate numbers that we need for later: ```r xbar <- mean(sex$sexf) s <- sd(sex$sexf) n <- nrow(sex) se <- s/sqrt(n) t <- qt(.975, n-1) ```

  	  results

  sample mean 	  50.127

  sample standard deviation 	  53.597

  sample size (n) 	  2103.000

  standard error 	  1.169

  t-statistic 	  1.961

 ] -- .pull-right[ Now calculate the interval: ```r xbar+t*se ``` ``` ## [1] 52.41873 ``` ```r xbar-t*se ``` ``` ## [1] 47.83472 ``` I am 95% confident that the mean sexual frequency in the US is between 47.8 and 52.4 times per year. ] --- ## General form of the confidence interval We can construct confidence intervals for any statistic whose sampling distribution is a normal distribution. This includes: * means * mean differences * proportions * differences in proportions * correlation coefficient The general form of the confidence interval is given by: `$$\texttt{(sample statistic)} \pm t*(\texttt{standard error})$$` The only trick is knowing how to calculate the standard error and degrees of freedom for the t-statistic for each particular statistic. --- ## Cheat sheet for SE and df | Type | SE | df for `\(t\)` | | :---------------------- | :------------------------------------------------------------------------------- | :---------------------- | | Mean | `\(s/\sqrt{n}\)` | `\(n-1\)` | | Proportion | `\(\sqrt\frac{\hat{p}*(1-\hat{p})}{n}\)` | `\(n-1\)` | | Mean Difference | `\(\sqrt{\frac{s_1^2}{n_1}+\frac{s_2^2}{n_2}}\)` | min( `\(n_1-1\)`, `\(n_2-1\)` ) | | Proportion Difference | `\(\sqrt{\frac{\hat{p}_1*(1-\hat{p}_1)}{n_1}+\frac{\hat{p}_2*(1-\hat{p}_2)}{n_2}}\)` | min( `\(n_1-1\)`, `\(n_2-1\)` ) | | Correlation Coefficient | `\(\sqrt{\frac{1-r^2}{n-2}}\)` | `\(n-2\)` | .center[### 😱 So many equations!?! Don't panic; we will go through examples.] --- ## Proportion example What proportion of voters support removing birthright citizenship? .pull-left[ Use `prop.table` to get the sample proportion: ```r prop.table(table(politics$brcitizen)) ``` ``` ## ## Oppose Neither Favor ## 0.3964134 0.2864559 0.3171307 ``` ```r p <- 0.3171307 ``` Calculate values: ```r n <- nrow(politics) se <- sqrt(p*(1-p)/n) t <- qt(0.975, n-1) ``` ] .pull-right[ Get confidence intervals: ```r p+t*se ``` ``` ## [1] 0.3311453 ``` ```r p-t*se ``` ``` ## [1] 0.3031161 ``` I am 95% confident that the true proportion of American adults who support removing birthright citizenship is between 30.3% and 33.1%. ] --- ## Mean difference example What is the difference in sexual frequency between married and never married individuals? Use `tapply` to get means by groups and then calculate the difference you want: ```r tapply(sex$sexf, sex$marital, mean) ``` ``` ## Married Widowed Divorced Separated Never married ## 56.094106 9.222628 41.388720 55.652778 53.617704 ``` ```r diff <- 56.094106-53.617704 ``` Use `tapply` again to calculate standard deviations by group for the SE calculation: ```r #use tapply again to get sd by group tapply(sex$sexf, sex$marital, sd) ``` ``` ## Married Widowed Divorced Separated Never married ## 49.95361 26.61206 55.40738 58.21485 58.81459 ``` ```r sd1 <- 49.95361 sd2 <- 58.81459 ``` --- ## Mean difference example, continued Use `table` to get sample size by group: ```r table(sex$marital) ``` ``` ## ## Married Widowed Divorced Separated Never married ## 1052 137 328 72 514 ``` ```r n1 <- 1052 n2 <- 514 ``` .pull-left[ ```r se <- sqrt(sd1^2/n1+sd2^2/n2) t <- qt(0.975,n2-1) diff+t*se ``` ``` ## [1] 8.403469 ``` ```r diff-t*se ``` ``` ## [1] -3.450665 ``` ] .pull-right[ I am 95% confident that, among American adults, married individuals have sex between 8.4 more times per year or 3.45 less times per year than never married individuals, on average. ] --- ## Proportion difference example What is the difference in support for removing birthright citizenship between those who have served in the military and those who have not? .pull-left[ Use `prop.table` to calculate proportions for each group: ```r prop.table(table(politics$brcitizen, politics$military), 2) ``` ``` ## ## No Yes ## Oppose 0.4069860 0.3093682 ## Neither 0.2900238 0.2570806 *## Favor 0.3029902 0.4335512 ``` ```r p1 <- 0.3029902 p2 <- 0.4335512 diff <- p2-p1 ``` ] .pull-right[ Use `table` to get sample sizes by group: ```r table(politics$military) ``` ``` ## ## No Yes ## 3779 459 ``` ```r n1 <- 3779 n2 <- 459 ``` ] --- ## Proportion difference example, continued Calculate standard error and t-statistic: ```r se <- sqrt(p1*(1-p1)/n1+p2*(1-p2)/n2) t <- qt(0.975, n2-1) ``` Confidence intervals: ```r diff-t*se ``` ``` ## [1] 0.08279002 ``` ```r diff+t*se ``` ``` ## [1] 0.178332 ``` I am 95% confident that the percent in support for removing birthright citizenship is between 8.3% and 17.8% higher among who have served in the military than those who have not. --- ## Correlation coefficent example What is the correlation between age and wages among US workers? .pull-left[ Use `cor` command to get the sample correlation coefficient: ```r r <- cor(earnings$age, earnings$wages) ``` Use `nrow` to get sample size and then calculate standard error and t-statistic. ```r n <- nrow(earnings) se <- sqrt((1-r^2)/(n-2)) t <- qt(0.975, n-2) ``` ] .pull-right[ Calculate confidence intervals: ```r r - t*se ``` ``` ## [1] 0.2135195 ``` ```r r + t*se ``` ``` ## [1] 0.2235427 ``` I am 95% confident that the true correlation coefficient between age and wages among US workers is between 0.214 and 0.224. ] --- class: inverse, center, middle background-image: url(images/chuttersnap-UmncJq4KPcA-unsplash.jpg) background-size: cover # Hypothesis Tests --- ## Game of make believe .pull-left[ We know what the sampling distribution should look like, but we don't know its center (the true population parameter). So we set up a game of make-believe: * Assume that the true parameter is some value. * If assumption is correct, what is the probability that I would have gotten the sample statistic that I got? * If this probability is really low, then I reject my assumption. ] .pull-right[ ![Winnie the Pooh and Christopher Robin](images/winnie_pooh.jpg) ] --- ## An almost true story .pull-left[ ![Coke bottle](images/coke.png) ] .pull-right[ Coca-Cola used to do promotionals where it claimed that 1 in 12 bottle caps (8.3%) on a Coca-Cola bottle would earn a free Coke. When I was a busy assistant professor trying to get tenure, I bought 100 bottles of Coke from the downstairs vending machine and only got 5 winners (5%). (The number is not true, but it is nice and round) Does the difference between my winning percentage and that claimed by Coca-Cola show that they were lying? ] --- ## Lets set up a null hypothesis -- .pull-left[ ### In English * The **null hypothesis** ( `\(H_0\)` ) is your assumption about the true parameter value. It is your prior assumption unless the data can prove you wrong. * I assume that Coca-Cola is telling the truth, until I can prove them wrong, so my null hypothesis is that the true percentage of winning bottlecaps is 8.3%. ] -- .pull-right[ ### Mathematical symbols `$$H_0: \rho=0.083$$` I use the Greek `\(\rho\)` to indicate the population proportion of winners. I will use `\(\hat{p}\)` later to represent the proportion observed in my sample. ] --- ## Assuming the null hypothesis is true, what is the sampling distribution of my sample proportion? .pull-right[  ] --- ## Assuming the null hypothesis is true, what is the sampling distribution of my sample proportion? .pull-left[ * With a sample size of 100, it should be normally distributed. ] .pull-right[  ] --- ## Assuming the null hypothesis is true, what is the sampling distribution of my sample proportion? .pull-left[ * With a sample size of 100, it should be normally distributed. * The center of the distribution is the true population parameter assuming `\(H_0\)` is true. In this case, that is 0.083. ] .pull-right[  ] --- ## Assuming the null hypothesis is true, what is the sampling distribution of my sample proportion? .pull-left[ * With a sample size of 100, it should be normally distributed. * The center of the distribution is the true population parameter assuming `\(H_0\)` is true. In this case, that is 0.083. * As we learned in the previous section, the standard error is given by: `$$\sqrt\frac{0.083*(1-0.083)}{100}=0.0276$$` ] .pull-right[  ] --- ## Is the actual sample proportion unusual? .pull-left[  ] .pull-right[ #### How far is our sample proportion from where the center would be if the null hypothesis was true? * If our sample proportion is far way and unlikely to be drawn, then we **reject the null hypothesis**. * If our sample proportion is not far away and reasonably likely to be drawn, then we **fail to reject the null hypothesis**. ] --- ## How far is far enough? .pull-left[ * We determine how far our sample proportion is from the center in terms of the number of standard errors. `$$\frac{\hat{p}-\rho}{SE}=\frac{0.05-0.083}{0.028}=-1.18$$` ] .pull-right[  ] --- ## How far is far enough? .pull-left[ * We determine how far our sample proportion is from the center in terms of the number of standard errors. `$$\frac{\hat{p}-\rho}{SE}=\frac{0.05-0.083}{0.028}=-1.18$$` * What proportion of sample proportions are this low or lower? ] .pull-right[  ] --- ## How far is far enough? .pull-left[ * We determine how far our sample proportion is from the center in terms of the number of standard errors. `$$\frac{\hat{p}-\rho}{SE}=\frac{0.05-0.083}{0.028}=-1.18$$` * What proportion of sample proportions are this low or lower? * We also need to take account of sample proportions this far away in the opposite direction. This is called a **two-tailed test**. ] .pull-right[  ] --- ## How far is far enough? .pull-left[ * We determine how far our sample proportion is from the center in terms of the number of standard errors. `$$\frac{\hat{p}-\rho}{SE}=\frac{0.05-0.083}{0.028}=-1.18$$` * What proportion of sample proportions are this low or lower? * We also need to take account of sample proportions this far away in the opposite direction. This is called a **two-tailed test**. * The area in the tails is called the **p-value**. ] .pull-right[  ] --- ## The p-value is the endgame .pull-left[ ### Interpretation The p-value tells you the probability of getting a statistic this far away or farther from the the assumed true population parameter, assuming the null hypothesis is true. In my case: > Assuming the null hypothesis is true, there is a 24% probability that I would have gotten a sample proportion (0.05) this far or farther from the true poplation paramter (0.083). ] -- .pull-right[ ###
Calculation We use the `pt` command to get the area in the lower tail and multiply by two to get both tails: ```r 2*pt(-1.18,99) ``` ``` ## [1] 0.2408278 ``` * The first argument is always the **negative version** of the number of standard errors. * The second argument is the degrees of freedom to adjust for the fact that we use sample standard deviations to get standard errors. ] --- ## The critical value .left-column[ ![strongman game](images/strongman-game.png) ] .right-column[ * We will reject the null hypothesis if our p-value is low enough. * The **critical value** is the benchmark for how low our p-value has to be to reject. * We will reject the null hypothesis if the p-value is lower than or equal to the critical value. * We will fail to reject the null hypothesis if the p-value is higher than the critical value. * The standard but entirely arbitrary critical value used across the sciences is 0.05 (5%). * For the Coca-Cola bottlecap case, the p-value is 0.24, so we fail to reject the null hypothesis that Coca-Cola's claim was truthful. ] --- ## The general procedure of hypothesis testing -- 1. State a **null hypothesis**. -- 2. Calculate a **test statistic** that tells you how different your sample is from what you would expect under the null hypothesis. For our purposes, this test statistic is always the number of standard errors above or below the center of the sampling distribution. -- 3. Calculate the **p-value** for the given test statistic. -- 4. Based on the p-value, either **reject** or **fail to reject** the null hypothesis. --- ## Hypothesis tests of relationships The hypothesis test we are most interested in is whether the association we observe between two variables in our sample holds in the population. -- * Mean/proportion differences: Are the means/proportions between two groups in the population different? In other words, is the mean/proportion difference non-zero? -- * Correlation coefficient: is the correlation coefficient in the population non-zero? -- ### Statistical Significance .left-column[ ![stat sig other](images/statsigother.png) ] .right-column[ If you reject the null hypothesis of "no association," then the association you observe in the sample is said to be **statistically significant**. * Don't confuse statistical and substantive significance. In a large sample, even very small substantive associations can be found to be statistically significant. On the flip side, in small samples, very large substantive associations can fail to be statistically significant. ] --- ## Example: Mean differences Is there a difference in sexual frequency between married and never married individuals?  Is this difference far enough from zero to reject the null hypothesis? --- ## Example: Mean differences, continued I calculate the standard error of the sample mean difference, as per the formula in the previous section, which requires the sample SD's and sample size of both groups. ```r tapply(sex$sexf, sex$marital, sd) ``` ``` ## Married Widowed Divorced Separated Never married ## 49.95361 26.61206 55.40738 58.21485 58.81459 ``` ```r sd1 <- 49.95361 sd2 <- 58.81459 table(sex$marital) ``` ``` ## ## Married Widowed Divorced Separated Never married ## 1052 137 328 72 514 ``` ```r n1 <- 1052 n2 <- 514 se <- sqrt(sd1^2/n1+sd2^2/n2) ``` --- ## Example: Mean differences, continued I can now calculate how many standard errors my sample mean difference is from zero ```r diff/se ``` ``` ## [1] 0.8208339 ``` I then feed the negative version of this number into the `pt` formula and multiply by two to get my p-value: ```r 2*pt(-0.8208,n2-1) ``` ``` ## [1] 0.4121414 ``` Assuming that the true sexual frequency difference between married and never-married individuals is zero in the population, there is a 41.2% chance of observing a sample sexual frequency difference of 2.5 years or larger in a sample of this size. Thus, I **fail to reject** the null hypothesis there there is no difference in the average sexual frequency between married and never-married individuals in the US. --- ## Example: Proportion differences Is there a difference in support for removing birthright citizenship between those who have served in the military and those who have not? -- .pull-left[ ```r prop.table(table(politics$brcitizen, politics$military), 2) ``` ``` ## ## No Yes ## Oppose 0.4069860 0.3093682 ## Neither 0.2900238 0.2570806 *## Favor 0.3029902 0.4335512 ``` ```r p1 <- 0.303 p2 <- 0.434 ``` ```r diff <- p2-p1 diff ``` ``` ## [1] 0.131 ``` ] -- .pull-right[ ```r table(politics$military) ``` ``` ## ## No Yes ## 3779 459 ``` ```r n1 <- 3778 n2 <- 460 se <- sqrt(p1*(1-p1)/n1+p2*(1-p2)/n2) diff/se ``` ``` ## [1] 5.393601 ``` ```r pt(-5.391824, n2-1) ``` ``` ## [1] 5.591127e-08 ``` ] --- ## 🤔 A p-value of 5.591127e-08? * What does the value of 5.591127e-08 mean? -- * The number is so small that R is reporting it using scientific notation: `$$5.591127 x 10^{-8}$$` -- * That means we need to move the decimal place over 8 spaces to the left. So the number is really 0.00000005591127. So I would interpret my result as: -- > Assuming that there is no difference in the US population between those who have served in the military and those who have not in support for removing birthright citizenship, there is less than a 0.000006% chance of observing a sample difference in proportion of 13.1% or greater by random chance in a sample of this size. Thus, I **reject** the null hypothesis there there is no difference in support for removing birthright citizenship between those who have served in the military and those who have not. --- ## Example: Correlation coefficient Is there a relationship between a person's age and their wages in the US? -- .pull-left[ ```r r <- cor(earnings$age, earnings$wages) r ``` ``` ## [1] 0.2185311 ``` ```r n <- nrow(earnings) se <- sqrt((1-r^2)/(n-2)) r/se ``` ``` ## [1] 85.46473 ``` ```r pt(-85.46473, n-2) ``` ``` ## [1] 0 ``` ] -- .pull-right[ Assuming no association between a person's age and their wage in the US, there is almost 0% chance of observing a correlation coefficient between age and wages of 0.219 or larger in absolute magnitude in a sample of this size. Therefore, I **reject** the null hypothesis that there is no relationship between a person's age and their wages in the US population. ]


com.kevalpatel2106.rulerpicker
Interfaces
ObservableHorizontalScrollView.ScrollChangedListener
RulerValuePickerListener
Classes
ObservableHorizontalScrollView
RulerValuePicker
RulerValuePicker.SavedState
RulerView
RulerViewUtils


This script will compare the time taken by the execution of the same scripts
by Brython and by the CPython interpreter. The script code is sent to the
cgi script script_timer.py in folder cgi-bin. Make
sure that in the first line of this script, the path is that of the CPython
interpreter in your file system.


With time i have been doing a little bit of website building practices and find it rather nice to have to build something on my on under the guidance of moringaschool and the support of my friends right from scratch.
Here are some of the projects that i've done so far:
This actually contains a few or more things about how well moringa has worked out for me.In its defence and enthusiastic vigilance it was able to work out a few or more things to make me get the concept on codding right.
A briff description of what i like and the constituents is provided there in details.
Here, i mentioned my pet and just some few fun facts about me.Still, i found it fun to share it with you guys.
Complicated as i may seem, i'm actually kind of insecure at times.Especially when it comes to large crowds.i'm terrible at that.
I have a few dark secrets hidden within my secretive self and have no problem sharing with those i trust.For example,from scratch:
I am so into a number of things and actually find it so awsome.
What stands out from all these is the fact that i am an addict of car racing and the astonishing race car designs.
The most convenient and from heart reason as to why i am in moringa is because there's nothing i'de rather spend my life doing besides coding ,and moringaschool has proven to give quite a hearty experience.
copyright © 2019


POLITICO
Home
Dashboard
Vote
Political Parties
Aspirants
Become Aspirant
Election Result
Logout
VOTING HISTORY
Office
Party
Candidate
Presidential
APC
Gen. Muhammad Buhari
Governorship
APC
Babajide Sanwo-olu
House Of Rep
PDP
Alh Shittu Adewale
Local Governemt Chairman
APC
Adamu Abdullah
Councillor
Accord
Adeolu Omolola
«
1
2
3
4
5
6
»


Body mass index (BMI) is a measure of body fat based on height and weight that applies to men and women.
BMI Categories: Underweight = <18.5 Normal weight = 18.5–24.9 Overweight = 25–29.9 Obesity = BMI of 30 or greater


--- layout: page title: Discussing The Current State of Affairs for Civic Data in Journalism at ONA13 date: 2013-11-07 23:27:48.000000000 -05:00 type: page parent_id: '0' published: true password: '' status: publish categories: [] tags: [] meta: _edit_last: '43578620' _wp_page_template: default _publicize_pending: '1' author: login: openelections email<EMAIL_ADDRESS>display_name: openelections first_name: '' last_name: '' ---
By Sara Schnadt
Panelists Sara Schnadt, Dan Melton, Elise Hu, and Anthea Watson Strong.
Image: Phil Tenser via Twitter
OpenElections was invited to participate in a session about turning civic data into civic narrative at this year’s recent Online News Association Conference. The purpose of the session was to survey the current states of affairs of transparency in civic data sets, and how journalists are using them. Hosted by Anthea Watson Strong from Google’s civic data initiative, the panel included myself representing OpenElections and Census Reporter, Dan Melton of Granicus (and former CTO of Code for America), and Elise Hu, tech and culture reporter at NPR (and part of the team that founded the Texas Tribune).
Some of the key questions that came up in this open-discussion-based session were:
How has the amount of available civic data changed in the past ten years, and how well are journalists making use of it?
What is the current state of available data - how much of it is clean and standardized -vs- messy and inconsistent?
What does a robust civic data ecosystem look like, and what are it’s components?
How are newsrooms adopting open source values and best practices in software and app development as well as data cleaning and analysis?
What can algorithms do that journalists can’t? (bubble up patterns for lead gen)
What can journalists do that algorithms can’t? (identify and tell a good story)
How can we make data sets and their interfaces ‘sexy’ so that we entice more journalists and the public in general to become more data literate?
Since the internet ‘trends for entertainment’ how do we deliver substantive stories online alongside the more popular entertaining ones when getting to content online is so targeted?
Is crowd-sourcing data an effective strategy for journalists? When is it more and less effective and how much quality-control is necessary?
Is access to large amounts of civic and social data, and tools to hyper-personalize it, making the culture more or less civic-minded, more or less individualistic?
How do you tell compelling stories with data?
How can aesthetics help make data more relatable and articulate the dynamics within it?
Is data the chicken or the egg when creating a story (do you start with an idea and then find data to support it, or the other way around)?
Illustration: Graham Clark, ONA Student Newsroom, ONA Illustrated feature
There was lively discussion on all of these subjects between the panelists and the audience (which included many journalists with deep experience on the topic). There seemed to be a general consensus that this moment is more exciting than it is challenging, and that next steps include: moving beyond civic data transparency to consistently standardized and easily available data (where OpenElections comes in); widely available tools for exploring and analyzing data; and an increased data literacy among journalists and the general public (which can be facilitated by well-designed data visualizations and great data-driven storytelling).
To learn more, you can listen to the recorded session, and follow along with the slides.
(Also see credits and further links for my slides).


The modules on this page provide analytics on curriculum documentation for QUT staff. To use an analytics tool, select the appropriate tab above.
This work was initially based on research undertaken by Andrew Gibson and Kirsty Kitto, which is published in the paper: A cognitive processing framework for learning analytics. Please cite this paper, if writing about this software.


Chanduino theme generator
Note: colors are not accurate
'/s/ - Safe' - Board for SFW discussion
'/s/ - Safe' - Board for SFW discussion
'/b/ - Bad' - Board for NSFW discussion
'/s/ - Safe' - Board for SFW discussion
'/s/ - Safe' - Board for SFW discussion
'/b/ - Bad' - Board for NSFW discussion
'/b/ - Bad' - Board for NSFW discussion
'/sel/ - Selected' - Selected board
'/s/ - Safe' - Board for SFW discussion
'/s/ - Safe' - Board for SFW discussion
'/p/ - Pony' - Board for ponies
'/s/ - Safe' - Board for SFW discussion
'/s/ - Safe' - Board for SFW discussion
Chanduino sample SFW post An
onymous 10/10/10(Sun)13:37:0
0 No.12345678
File: chanduino.jpg (62x62)
>>87654321
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
>mfw lorem ipsum
spoilered text
3 new posts!
3 new posts!
Chanduino sample NSFW post A
nonymous 10/10/10(Sun)13:37:
00 No.12345678
File: chanduino.jpg (62x62)
>>87654321
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
>mfw lorem ipsum
spoilered text
3 new posts!
3 new posts!


apt-extracttemplates - Utility to extract debconf config and templates from Debian packages
apt-extracttemplates [-t=temporary_directory] filename... {-v | --version} {-h | --help}
apt-extracttemplates will take one or more Debian package files as input and write out (to a temporary directory) all associated config scripts and template files. For each passed in package that contains config scripts and templates, one line of output will be generated in the format:
package version template-file config-script
template-file and config-script are written to the temporary directory specified by the -t or --tempdir (APT::ExtractTemplates::TempDir) directory, with filenames of the form package.template.XXXXXX and package.config.XXXXXX
All command line options may be set using the configuration file, the descriptions indicate the configuration option to set. For boolean options you can override the config file by using something like -f-,--no-f, -f=no or several other variations.
-t, --tempdir
Temporary directory in which to write extracted debconf template files and config scripts. Configuration Item: APT::ExtractTemplates::TempDir
-h, --help
Show a short usage summary.
-v, --version
Show the program version.
-c, --config-file
Configuration File; Specify a configuration file to use. The program will read the default configuration file and then this configuration file. If configuration settings need to be set before the default configuration files are parsed specify a file with the APT_CONFIG environment variable. See apt.conf(5) for syntax information.
-o, --option
Set a Configuration Option; This will set an arbitrary configuration option. The syntax is -o Foo::Bar=bar. -o and --option can be used multiple times to set different options.
apt-extracttemplates returns zero on normal operation, decimal 100 on error.
m[blue]APT bug pagem[]s-2u[1]ds+2. If you wish to report a bug in APT, please see /usr/share/doc/debian/bug-reporting.txt or the reportbug(1) command.
Jason Gunthorpe
APT team
APT bug page
%http://bugs.debian.org/src:apt


{% extends "site_base.html" %}
{% load static %}
{% block title %}Home{% endblock title %}
{% block nav %}
{% with current="home" %}
{% include "navigation.html" %}
{% endwith %}
{% endblock %}
{% block styles %}
{{ block.super }}
{% endblock styles %}
{% block body %}
IIT-BHU
IIT (BHU) is not just a name, but a brand. And people here, work hard to live upto the expectations. It's not just another IIT, it's one of a kind. We probably have one of the largest Alumni Database in our own college. With the 100th year Anniversary of our institution, in 2019, we hope to summon a large no. of our Alumni so that they can guide us better.
Situated in the holy city of Varanasi, it offers a unique campus life compared to other IITs. Our beautiful campus lies waiting for the newcommers to step in a world they never knew and had no idea about.
It is a technical institute, and people here do their best to inculcate the technical skills in each and every newcommer through various competitions which occur throughout the year. It's quite impossible to ignore all of them, even if you are without senses. From coding, machine learning to manufacturing skills, each area is tested and hence improved. We have one of the best Technical fest all over India, Technex, which successfully runs with huge participation.
Not just as a technical Institute, but as a road to know where your interest lies, our institute provides a culture of Councils and Clubs. Be it art, sports, dance, drama, music, sculpture, multilingual, social work, film or photography, we have resources for all, open to all. With one the largest Cultural fest, Kashiyatra, IIT (BHU) offers you everything you ever thought of doing.


Help us
Become Better
Survey Form
Lorem ipsum dolor amit sit.
Tell us about you.

I am very satisfied
I am somewhat satisfied
Neutral
I am somewhat dissatisfied
I am very dissatisfied
How Do You Describe Your Overall Satisfaction?
Edge
Chrome
Firefox
Safari
Tell Us What Can We Do To Improve Your Web Expirience.
Submit


Where is the restaurant industry?
Year:
Project Summary: The service/restaurant industry and the salaries, occupations, and diversity
Whether financial, political, or social -- The service and restaurant industry is a corner stone of our economy. Whether you are a person looking for a job, a restaurantuer looking for an ideal place to setup a new place, or a government employee looking at where public funds could be benificial for the industry.
Python, Flask, matplotlib, pandas, Javascript, and mongoDB were used in this project to visualize the restaurant industry to explore wages, occupations, and diversity in the United States.


| Version: | 0.4 |
|---|---|
| Source: | github.org_ |
| Bug tracker: | ‘github.org/issues <`https://github.com/dotSkapes/dotSkapes/issues?sort=created&direction=desc&state=open>’_ |
Consider wikiSkapes_ an adaptation of Massimo DiPierro’s plugin_wiki_. Basically it adds a RESTful interface and MongoDB backend to plugin_wiki:
For complete list of additional parameters reffer to : YXZ.
Note
This requires and instance of Web2Py to work
Note
This is integrated into the dotSkapes stack (including authentication). It can be found as a stand-alone on github wikiSkapes
wikiSkapes_ is useful for serving scientific content
Here is a demo of RESTful call
beaker_kwargs = dict(key='sources', expire='never', type='memory')
And another of the LaTeX syntax
beaker_kwargs = dict(key='sources', expire='never', type='memory')
On your own Pylons application, inside <app>/lib/helpers.py you add:
from minwebhelpers import *
Then, inside a template you could have:
<head>
${ h.javascript_link('/js/file1.js',
'/js/file2.js',
minified=True,
combined=True,
combined_filename='all_javascript_files') }
${ h.stylesheet_link('/css/style1.css',
'/css/style2.css',
minified=True,
combined=True,
beaker_kwargs=dict(invalidate_on_startup=False)) }
</head>
The above would mean file1.js and file2.js would be combined and then minimized (same story for css files).
It’s as easy as:
sudo easy_install MinificationWebHelpers
Or if you wish to install current trunk:
sudo easy_install http://bitbucket.org/iElectric/minificationwebhelpers/get/tip.zip


Apache Flink 1.10.1 Released
May 12, 2020 - Yu Li (@LiyuApache)The Apache Flink community released the first bugfix version of the Apache Flink 1.10 series.
This release includes 158 fixes and minor improvements for Flink 1.10.0. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.10.1.
Note
FLINK-16684 changed the builders of the StreamingFileSink to make them compilable in Scala. This change is source compatible but binary incompatible. If using the StreamingFileSink, please recompile your user code against 1.10.1 before upgrading.
Note
FLINK-16683 Flink no longer supports starting clusters with .bat scripts. Users should instead use environments like WSL or Cygwin and work with the .sh scripts.
Updated Maven dependencies:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>1.10.1</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_2.11</artifactId>
<version>1.10.1</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients_2.11</artifactId>
<version>1.10.1</version>
</dependency>
You can find the binaries on the updated Downloads page.
List of resolved issues:
Sub-task
- [FLINK-14126] - Elasticsearch Xpack Machine Learning doesn't support ARM
- [FLINK-15143] - Create document for FLIP-49 TM memory model and configuration guide
- [FLINK-15561] - Unify Kerberos credentials checking
- [FLINK-15790] - Make FlinkKubeClient and its implementations asynchronous
- [FLINK-15817] - Kubernetes Resource leak while deployment exception happens
- [FLINK-16049] - Remove outdated "Best Practices" section from Application Development Section
- [FLINK-16131] - Translate "Amazon S3" page of "File Systems" into Chinese
- [FLINK-16389] - Bump Kafka 0.10 to <IP_ADDRESS>
Bug
- [FLINK-2336] - ArrayIndexOufOBoundsException in TypeExtractor when mapping
- [FLINK-10918] - incremental Keyed state with RocksDB throws cannot create directory error in windows
- [FLINK-11193] - Rocksdb timer service factory configuration option is not settable per job
- [FLINK-13483] - PrestoS3FileSystemITCase.testDirectoryListing fails on Travis
- [FLINK-14038] - ExecutionGraph deploy failed due to akka timeout
- [FLINK-14311] - Streaming File Sink end-to-end test failed on Travis
- [FLINK-14316] - Stuck in "Job leader ... lost leadership" error
- [FLINK-15417] - Remove the docker volume or mount when starting Mesos e2e cluster
- [FLINK-15669] - SQL client can't cancel flink job
- [FLINK-15772] - Shaded Hadoop S3A with credentials provider end-to-end test fails on travis
- [FLINK-15811] - StreamSourceOperatorWatermarksTest.testNoMaxWatermarkOnAsyncCancel fails on Travis
- [FLINK-15812] - HistoryServer archiving is done in Dispatcher main thread
- [FLINK-15838] - Dangling CountDownLatch.await(timeout)
- [FLINK-15852] - Job is submitted to the wrong session cluster
- [FLINK-15904] - Make Kafka Consumer work with activated "disableGenericTypes()"
- [FLINK-15936] - TaskExecutorTest#testSlotAcceptance deadlocks
- [FLINK-15953] - Job Status is hard to read for some Statuses
- [FLINK-16013] - List and map config options could not be parsed correctly
- [FLINK-16014] - S3 plugin ClassNotFoundException SAXParser
- [FLINK-16025] - Service could expose blob server port mismatched with JM Container
- [FLINK-16026] - Travis failed due to python setup
- [FLINK-16047] - Blink planner produces wrong aggregate results with state clean up
- [FLINK-16067] - Flink's CalciteParser swallows error position information
- [FLINK-16068] - table with keyword-escaped columns and computed_column_expression columns
- [FLINK-16070] - Blink planner can not extract correct unique key for UpsertStreamTableSink
- [FLINK-16108] - StreamSQLExample is failed if running in blink planner
- [FLINK-16111] - Kubernetes deployment does not respect "taskmanager.cpu.cores".
- [FLINK-16113] - ExpressionReducer shouldn't escape the reduced string value
- [FLINK-16115] - Aliyun oss filesystem could not work with plugin mechanism
- [FLINK-16139] - Co-location constraints are not reset on task recovery in DefaultScheduler
- [FLINK-16161] - Statistics zero should be unknown in HiveCatalog
- [FLINK-16170] - SearchTemplateRequest ClassNotFoundException when use flink-sql-connector-elasticsearch7
- [FLINK-16220] - JsonRowSerializationSchema throws cast exception : NullNode cannot be cast to ArrayNode
- [FLINK-16231] - Hive connector is missing jdk.tools exclusion against Hive 2.x.x
- [FLINK-16234] - Fix unstable cases in StreamingJobGraphGeneratorTest
- [FLINK-16241] - Remove the license and notice file in flink-ml-lib module on release-1.10 branch
- [FLINK-16242] - BinaryGeneric serialization error cause checkpoint failure
- [FLINK-16262] - Class loader problem with FlinkKafkaProducer.Semantic.EXACTLY_ONCE and usrlib directory
- [FLINK-16269] - Generic type can not be matched when convert table to stream.
- [FLINK-16281] - parameter 'maxRetryTimes' can not work in JDBCUpsertTableSink
- [FLINK-16301] - Annoying "Cannot find FunctionDefinition" messages with SQL for f_proctime or =
- [FLINK-16308] - SQL connector download links are broken
- [FLINK-16313] - flink-state-processor-api: surefire execution unstable on Azure
- [FLINK-16331] - Remove source licenses for old WebUI
- [FLINK-16345] - Computed column can not refer time attribute column
- [FLINK-16360] - connector on hive 2.0.1 don't support type conversion from STRING to VARCHAR
- [FLINK-16371] - HadoopCompressionBulkWriter fails with 'java.io.NotSerializableException'
- [FLINK-16373] - EmbeddedLeaderService: IllegalStateException: The RPC connection is already closed
- [FLINK-16413] - Reduce hive source parallelism when limit push down
- [FLINK-16414] - create udaf/udtf function using sql casuing ValidationException: SQL validation failed. null
- [FLINK-16433] - TableEnvironmentImpl doesn't clear buffered operations when it fails to translate the operation
- [FLINK-16435] - Replace since decorator with versionadd to mark the version an API was introduced
- [FLINK-16467] - MemorySizeTest#testToHumanReadableString() is not portable
- [FLINK-16526] - Fix exception when computed column expression references a keyword column name
- [FLINK-16541] - Document of table.exec.shuffle-mode is incorrect
- [FLINK-16550] - HadoopS3* tests fail with NullPointerException exceptions
- [FLINK-16560] - Forward Configuration in PackagedProgramUtils#getPipelineFromProgram
- [FLINK-16567] - Get the API error of the StreamQueryConfig on Page "Query Configuration"
- [FLINK-16573] - Kinesis consumer does not properly shutdown RecordFetcher threads
- [FLINK-16576] - State inconsistency on restore with memory state backends
- [FLINK-16626] - Prevent REST handler from being closed more than once
- [FLINK-16632] - SqlDateTimeUtils#toSqlTimestamp(String, String) may yield incorrect result
- [FLINK-16635] - Incompatible okio dependency in flink-metrics-influxdb module
- [FLINK-16646] - flink read orc file throw a NullPointerException
- [FLINK-16647] - Miss file extension when inserting to hive table with compression
- [FLINK-16652] - BytesColumnVector should init buffer in Hive 3.x
- [FLINK-16662] - Blink Planner failed to generate JobGraph for POJO DataStream converting to Table (Cannot determine simple type name)
- [FLINK-16664] - Unable to set DataStreamSource parallelism to default (-1)
- [FLINK-16675] - TableEnvironmentITCase. testClearOperation fails on travis nightly build
- [FLINK-16684] - StreamingFileSink builder does not work with Scala
- [FLINK-16696] - Savepoint trigger documentation is insufficient
- [FLINK-16703] - AkkaRpcActor state machine does not record transition to terminating state.
- [FLINK-16705] - LocalExecutor tears down MiniCluster before client can retrieve JobResult
- [FLINK-16718] - KvStateServerHandlerTest leaks Netty ByteBufs
- [FLINK-16727] - Fix cast exception when having time point literal as parameters
- [FLINK-16732] - Failed to call Hive UDF with constant return value
- [FLINK-16740] - OrcSplitReaderUtil::logicalTypeToOrcType fails to create decimal type with precision < 10
- [FLINK-16759] - HiveModuleTest failed to compile on release-1.10
- [FLINK-16767] - Failed to read Hive table with RegexSerDe
- [FLINK-16771] - NPE when filtering by decimal column
- [FLINK-16821] - Run Kubernetes test failed with invalid named "minikube"
- [FLINK-16822] - The config set by SET command does not work
- [FLINK-16825] - PrometheusReporterEndToEndITCase should rely on path returned by DownloadCache
- [FLINK-16836] - Losing leadership does not clear rpc connection in JobManagerLeaderListener
- [FLINK-16860] - Failed to push filter into OrcTableSource when upgrading to 1.9.2
- [FLINK-16888] - Re-add jquery license file under "/licenses"
- [FLINK-16901] - Flink Kinesis connector NOTICE should have contents of AWS KPL's THIRD_PARTY_NOTICES file manually merged in
- [FLINK-16913] - ReadableConfigToConfigurationAdapter#getEnum throws UnsupportedOperationException
- [FLINK-16916] - The logic of NullableSerializer#copy is wrong
- [FLINK-16944] - Compile error in. DumpCompiledPlanTest and PreviewPlanDumpTest
- [FLINK-16980] - Python UDF doesn't work with protobuf 3.6.1
- [FLINK-16981] - flink-runtime tests are crashing the JVM on Java11 because of PowerMock
- [FLINK-17062] - Fix the conversion from Java row type to Python row type
- [FLINK-17066] - Update pyarrow version bounds less than 0.14.0
- [FLINK-17093] - Python UDF doesn't work when the input column is from composite field
- [FLINK-17107] - CheckpointCoordinatorConfiguration#isExactlyOnce() is inconsistent with StreamConfig#getCheckpointMode()
- [FLINK-17114] - When the pyflink job runs in local mode and the command "python" points to Python 2.7, the startup of the Python UDF worker will fail.
- [FLINK-17124] - The PyFlink Job runs into infinite loop if the Python UDF imports job code
- [FLINK-17152] - FunctionDefinitionUtil generate wrong resultType and acc type of AggregateFunctionDefinition
- [FLINK-17308] - ExecutionGraphCache cachedExecutionGraphs not cleanup cause OOM Bug
- [FLINK-17313] - Validation error when insert decimal/varchar with precision into sink using TypeInformation of row
- [FLINK-17334] - Flink does not support HIVE UDFs with primitive return types
- [FLINK-17338] - LocalExecutorITCase.testBatchQueryCancel test timeout
- [FLINK-17359] - Entropy key is not resolved if flink-s3-fs-hadoop is added as a plugin
- [FLINK-17403] - Fix invalid classpath in BashJavaUtilsITCase
- [FLINK-17471] - Move LICENSE and NOTICE files to root directory of python distribution
- [FLINK-17483] - Update flink-sql-connector-elasticsearch7 NOTICE file to correctly reflect bundled dependencies
- [FLINK-17496] - Performance regression with amazon-kinesis-producer 0.13.1 in Flink 1.10.x
- [FLINK-17499] - LazyTimerService used to register timers via State Processing API incorrectly mixes event time timers with processing time timers
- [FLINK-17514] - TaskCancelerWatchdog does not kill TaskManager
New Feature
- [FLINK-17275] - Add core training exercises
Improvement
- [FLINK-9656] - Environment java opts for flink run
- [FLINK-15094] - Warning about using private constructor of java.nio.DirectByteBuffer in Java 11
- [FLINK-15584] - Give nested data type of ROWs in ValidationException
- [FLINK-15616] - Move boot error messages from python-udf-boot.log to taskmanager's log file
- [FLINK-15989] - Rewrap OutOfMemoryError in allocateUnpooledOffHeap with better message
- [FLINK-16018] - Improve error reporting when submitting batch job (instead of AskTimeoutException)
- [FLINK-16125] - Make zookeeper.connect optional for Kafka connectors
- [FLINK-16167] - Update documentation about python shell execution
- [FLINK-16191] - Improve error message on Windows when RocksDB Paths are too long
- [FLINK-16280] - Fix sample code errors in the documentation about elasticsearch connector
- [FLINK-16288] - Setting the TTL for discarding task pods on Kubernetes.
- [FLINK-16293] - Document using plugins in Kubernetes
- [FLINK-16343] - Improve exception message when reading an unbounded source in batch mode
- [FLINK-16406] - Increase default value for JVM Metaspace to minimise its OutOfMemoryError
- [FLINK-16538] - Restructure Python Table API documentation
- [FLINK-16604] - Column key in JM configuration is too narrow
- [FLINK-16683] - Remove scripts for starting Flink on Windows
- [FLINK-16697] - Disable JMX rebinding
- [FLINK-16763] - Should not use BatchTableEnvironment for Python UDF in the document of flink-1.10
- [FLINK-16772] - Bump derby to <IP_ADDRESS>+ or exclude it
- [FLINK-16790] - enables the interpretation of backslash escapes
- [FLINK-16862] - Remove example url in quickstarts
- [FLINK-16874] - Respect the dynamic options when calculating memory options in taskmanager.sh
- [FLINK-16942] - ES 5 sink should allow users to select netty transport client
- [FLINK-17065] - Add documentation about the Python versions supported for PyFlink
- [FLINK-17125] - Add a Usage Notes Page to Answer Common Questions Encountered by PyFlink Users
- [FLINK-17254] - Improve the PyFlink documentation and examples to use SQL DDL for source/sink definition
- [FLINK-17276] - Add checkstyle to training exercises
- [FLINK-17277] - Apply IntelliJ recommendations to training exercises
- [FLINK-17278] - Add Travis to the training exercises
- [FLINK-17279] - Use gradle build scans for training exercises
- [FLINK-17316] - Have HourlyTips solutions use TumblingEventTimeWindows.of
Task
- [FLINK-15741] - Fix TTL docs after enabling RocksDB compaction filter by default (needs Chinese translation)
- [FLINK-15933] - update content of how generic table schema is stored in hive via HiveCatalog
- [FLINK-15991] - Create Chinese documentation for FLIP-49 TM memory model
- [FLINK-16004] - Exclude flink-rocksdb-state-memory-control-test jars from the dist
- [FLINK-16454] - Update the copyright year in NOTICE files
- [FLINK-16530] - Add documentation about "GROUPING SETS" and "CUBE" support in streaming mode
- [FLINK-16592] - The doc of Streaming File Sink has a mistake of grammar


At Chiron, we democratize healthcare access for the next 6 billion.
We use artificial intelligence to detect complex diseases from medical images in seconds.
We do what doctors can't: scale; and be everywhere they can't be.
Our current focus is preventing blindness by screening retinal fundus images.
Get in touch? ping@chironx.ai