프로그래밍 자습서 - 페이지 18

 

R의 카이 제곱 적합도 테스트


R의 카이 제곱 적합도 테스트

안녕하세요 여러분, 오늘 세션에서 우리는 R을 사용하여 적합도 테스트에 뛰어들 것입니다. 개념을 더 잘 이해하기 위해 몇 가지 문제를 통해 작업할 것입니다. 적합도 테스트에 익숙하지 않은 경우 먼저 해당 주제에 대한 소개 비디오를 시청하는 것이 좋습니다(위에 제공된 링크).

첫 번째 문제부터 시작하겠습니다. 한 대학은 통계 수업을 듣는 학생의 50%가 신입생, 30%가 2학년, 10%가 3학년, 10%가 4학년이라고 주장합니다. 우리는 65명의 학생으로 구성된 단순 무작위 표본을 얻었으며 표본의 분포는 주장된 비율과 약간 다릅니다. 우리는 이러한 차이가 대학의 주장에 반하는 강력한 증거를 제공하는지 또는 무작위 변동성 때문일 수 있는지 확인하고자 합니다.

R에서 적합도 테스트를 수행하기 위해 카이제곱 테스트를 사용합니다. chi-square.test 함수에 대한 도움말 파일을 가져왔지만 지금은 적합도 테스트에만 집중하겠습니다.

먼저 데이터를 입력해 보겠습니다. 우리는 관찰된 수를 저장하기 위해 years라는 벡터를 만들 것입니다.

years <- c ( 28 , 24 , 9 , 4 )

다음으로 귀무가설 하에서 예상 비율의 벡터를 만들어야 합니다. 이 경우 귀무 가설은 주장된 비율이 참이라고 가정합니다. 이 벡터 소품을 호출하고 비율을 할당해 보겠습니다. 신입생의 경우 0.5, 2학년의 경우 0.3, 3학년의 경우 0.1, 4학년의 경우 0.1입니다.

props <- c ( 0.5 , 0.3 , 0.1 , 0.1 )

이제 chi-square.test 함수를 사용하여 카이제곱 검정을 수행할 수 있습니다. 기본 구문은 간단합니다: chi.square.test(data, p = expected_proportions). 예상 비율을 지정하려면 p = props를 포함해야 합니다.

result <- chi.square.test ( years , p = props )

검정은 자유도, 카이제곱 검정 통계량 및 p-값을 출력합니다. 이 문제의 경우 3개의 자유도, 3.58의 카이제곱 테스트 통계, 0.31의 p-값이 있습니다. 이 결과는 소개 비디오에서 얻은 것과 일치합니다.

p-값이 0.31이면 귀무 가설을 기각할 충분한 증거가 없습니다. 따라서 표본 분포와 청구된 비율 간의 차이가 통계적으로 유의하다고 결론을 내릴 수 없습니다. 데이터는 대학의 주장과 양립할 수 있습니다.

이제 두 번째 문제로 넘어 갑시다. 우리는 200번의 주사위 굴림을 수행했으며 결과 분포는 다음과 같습니다: 28 1, 32 2 등. 우리는 이 분포가 주사위가 불공평하다는 증거를 제공하는지 확인하고자 합니다.

이전과 동일한 프로세스를 따르겠습니다. counts라는 벡터를 만들어 관찰된 수를 저장합니다: 1 28개, 2개 30개, 3개 22개, 4개 31개, 5개 38개, 6개 51개.

counts <- c ( 28 , 30 , 22 , 31 , 38 , 51 )

이제 이러한 카운트에 카이제곱 테스트를 직접 적용할 수 있습니다.

result <- chi.square.test ( counts )

검정은 자유도, 카이제곱 검정 통계량 및 p-값을 출력합니다. 이 경우 자유도가 5이고 카이제곱 검정 통계량이 15.22이고 p-값이 0.009463입니다.

0.009463의 매우 작은 p-값으로 귀무 가설을 기각할 충분한 증거가 있습니다. 따라서 관찰된 분포를 기반으로 주사위가 가중되고 공정하지 않은 것으로 결론을 내릴 수 있습니다.

이것으로 R을 사용한 카이제곱 적합도 테스트에 대한 논의와 적용을 마치겠습니다. 이 테스트를 통해 관찰된 데이터와 예상 분포의 호환성을 평가하고 p-값을 기반으로 통계적 추론을 수행할 수 있습니다.

Chi-Squared Goodness-of-Fit Testing in R
Chi-Squared Goodness-of-Fit Testing in R
  • 2020.11.30
  • www.youtube.com
Chi-squared testing is easy with R. Give me just five minutes, and I'll show you how to do it!If this vid helps you, please help me a tiny bit by mashing tha...
 

R의 독립성에 대한 카이제곱 테스트


R의 독립성에 대한 카이제곱 테스트

안녕하세요 여러분, 오늘 비디오에서는 R을 사용하여 범주형 변수의 독립성에 대한 카이제곱 테스트를 수행할 것입니다. 이를 위해 chi-squared.test 함수를 사용할 것입니다. 이 비디오에서는 R에서 동일한 기본 기능을 사용하는 적합도 테스트에 대해서는 다루지 않습니다. 적합도 테스트에 대해 알아보려면 별도의 비디오가 있습니다. 해당 주제(위에 제공된 링크).

입문 통계에 대한 OpenStax 교과서에서 가져온 문제를 살펴보겠습니다. 문제는 21세 이상 성인이 주당 1~9시간씩 장애가 있는 노인과 함께 시간을 보내는 자원봉사단이다. 이 프로그램은 커뮤니티 칼리지 학생, 4년제 대학생 및 학생이 아닌 세 범주에서 자원 봉사자를 모집합니다. 자원봉사자 유형과 자원봉사 시간, 1~3시간, 4~6시간, 7시간으로 분류되는 두 가지 범주 변수를 기준으로 자원봉사자 분포를 표시하는 우발표 또는 이원표가 있습니다. 아홉 시간.

이제 R로 전환하고 데이터를 입력하고 카이제곱 테스트를 실행하여 이러한 범주형 변수가 서로 연관되어 있는지 여부를 확인합니다.

데이터를 입력하기 위해 행렬 함수를 사용하여 자원 봉사자라는 행렬을 만듭니다. 왼쪽에서 오른쪽으로, 위에서 아래로 행 방향으로 데이터를 입력합니다.

volunteers <- matrix ( c ( 111 , 96 , 48 , 96 , 133 , 61 , 91 , 150 , 53 ) , nrow = 3 , byrow = TRUE )

다음으로 행렬을 더 쉽게 해석할 수 있도록 행 이름과 열 이름을 추가해 보겠습니다.

row.names ( volunteers ) <- c ( "Community College Students" , "Four-Year College Students" , "Non-Students" ) colnames ( volunteers ) <- c ( "1-3 hours" , "4-6 hours" , "7-9 hours" )

이제 서로 다른 범주 간의 자원 봉사자 분포를 표시하는 시각적으로 매력적인 테이블이 있습니다.

카이제곱 테스트를 수행하기 위해 chi.square.test 함수를 사용합니다. 모델과 같은 변수에 결과를 할당하면 필요한 경우 추가 정보에 액세스할 수 있습니다.

model <- chi.square.test ( volunteers )

테스트 결과를 보려면 변수 이름인 model을 입력하기만 하면 됩니다.

model

검정 출력에는 카이제곱 검정 통계량, 자유도 및 p-값이 포함됩니다. 이 예에서는 카이 제곱 검정 통계량 12.991, 자유도 2, 일반적으로 매우 작은 p-값을 얻습니다.

모델 개체에는 예상 셀 수 및 잔차와 같은 추가 정보가 포함되어 있다는 점에 유의해야 합니다. 필요한 경우 추가 분석을 위해 액세스할 수 있습니다.

카이 제곱 테스트를 수행하는 또 다른 방법은 행렬을 테이블로 변환하고 요약 기능을 활용하는 것입니다.

vol_table <- as.table ( volunteers )
summary ( vol_table )

이 접근 방식은 카이제곱 검정 통계량, 자유도 및 p-값도 제공합니다.

R을 사용하여 범주형 변수의 독립성에 대한 카이 제곱 테스트를 수행하는 프로세스를 다룹니다. 카이 제곱 테스트는 관찰 빈도와 예상 빈도를 기반으로 두 범주 변수 사이에 유의미한 연관성이 있는지 확인하는 데 도움이 됩니다.

Chi-Squared Testing for Independence in R
Chi-Squared Testing for Independence in R
  • 2020.12.04
  • www.youtube.com
Let's learn how to use the chisq.test() function in R to check the independence of categorical variables. If this vid helps you, please help me a tiny bit by...
 

R을 사용한 적합도 테스트: 예


R을 사용한 적합도 테스트: 예

오늘 우리는 적합도 테스트의 일반적인 문제를 해결하기 위해 R을 사용할 것입니다. 여기있어:

3자녀 가족 10명의 무작위 표본에서 여아의 분포는 다음과 같습니다.

  • 12가정에는 딸이 없었다
  • 31가정에 딸이 한 명 있었다
  • 42가정에 딸 둘이 있었다
  • 15가구에 딸이 셋 있었다

문제는 이러한 가족의 여아 수가 매개변수 n=3 및 p=0.5인 이항 분포를 따른다는 것이 그럴듯합니까?

이미 관찰된 값을 입력한 R로 전환하겠습니다. 계속 진행하려면 예상 값을 계산하고 이를 관찰된 개수와 비교해야 합니다. R의 dbinom 함수를 사용하여 얻을 수 있는 예상 비율부터 시작하겠습니다.

다음은 가족 중 여아가 0, 1, 2 또는 3명일 때 예상되는 비율입니다.

  • 0 소녀의 경우 12.5%
  • 소녀 1명의 경우 37.5%
  • 37.5% 2 소녀
  • 3명 12.5%

다음으로 예상 비율에 100을 곱하여 예상 개수를 계산합니다(총 100개의 가족이 있으므로).

이제 이 문제를 해결하기 위해 두 가지 접근 방식을 진행해 보겠습니다. 먼저 R의 chisq.test 함수를 사용하여 테스트 통계와 p-값을 계산하여 직접 답을 제공합니다. 그런 다음 프로세스를 더 깊이 이해하기 위해 단계별로 계산을 진행합니다.

chisq.test 사용:

observed_counts <- c ( 12 , 31 , 42 , 15 )
expected_proportions <- dbinom ( 0 : 3 , size = 3 , prob = 0.5 )
expected_counts <- expected_proportions * 100
result <- chisq.test ( observed_counts , p = expected_proportions )
p_value <- result $ p.value print ( p_value )

얻은 p-값은 귀무 가설이 참이라고 가정할 때 우리가 관찰한 것만큼 극단적인 데이터를 얻을 확률을 나타냅니다. 이 경우 p-값은 약 0.07232입니다.

유의 수준이 0.05로 설정되었고 p-값이 그보다 크므로 귀무 가설을 기각할 충분한 증거가 없습니다. 우리는 데이터가 이 가족의 여아 수가 매개변수 n=3 및 p=0.5인 이항 분포를 따른다는 가설과 일치한다는 결론을 내릴 수 있습니다.

이제 프로세스를 더 잘 이해하기 위해 수동으로 카이 제곱 검정 통계량을 계산해 보겠습니다.

chi_stat <- sum ( ( observed_counts - expected_counts ) ^ 2 / expected_counts )
degrees_of_freedom <- length ( observed_counts ) - 1
p_value_manual <- 1 - pchisq ( chi_stat , df = degrees_of_freedom )
print ( p_value_manual )

수동으로 계산한 p-값은 chisq.test를 사용하여 얻은 결과와 일치하여 약 0.07232라는 이전 결과를 확인합니다.

요약하면, 두 접근 방식은 동일한 결론을 도출합니다. 데이터는 이러한 가족의 소녀 수가 매개변수 n=3 및 p=0.5를 갖는 이항 분포를 따른다는 귀무 가설과 일치합니다.

Goodness of fit testing with R: example
Goodness of fit testing with R: example
  • 2023.01.04
  • www.youtube.com
Is it plausible that a categorical variable was sampled from a particular distribution?If this vid helps you, please help me a tiny bit by mashing that 'like...
 

R의 상관관계 테스트


R의 상관관계 테스트

여러분, 안녕하세요! 오늘은 상관관계 테스트에 대해 알아보겠습니다. 이 데모에서는 R을 사용할 것이지만 여기서 다룰 개념은 작업 환경에 관계없이 보편적으로 적용할 수 있습니다. 따라서 다른 소프트웨어를 사용하는 경우에도 계속 사용하십시오.

이 예에서는 islr2 패키지의 대학 데이터 세트를 사용합니다. 저는 이미 데이터 세트를 로드했고 titiverse 패키지를 사용하여 테마를 최소로 설정했습니다. 대학 데이터 세트의 자세한 분석에 관심이 있는 경우 설명에 비디오 링크가 있습니다.

대학 데이터 세트는 각각 1995년의 대학을 나타내는 777개의 관측치로 구성됩니다. 여기에는 공립 또는 사립 지정, 풀타임 학부 등록 및 졸업률과 같은 다양한 변수가 포함됩니다.

우리의 초점은 풀타임 학부 등록의 대수와 공립 대학의 졸업률 사이에 통계적으로 유의미한 상관관계가 있는지 확인하는 것입니다. 우리는 이 명백한 관계가 우연에 의한 것인지 아니면 우리가 주목해야 할 의미 있는 추세인지 알고 싶습니다.

시작하려면 ggplot을 사용하여 y축에 졸업률을, x축에 풀타임 학부생 등록의 로그를 사용하여 산점도를 만들었습니다. 사립학교도 걸러냈기 때문에 공립대학만 분석합니다.

이제 로그를 다루겠습니다. 겁먹지 마세요. 단순히 데이터의 규모를 해석하는 데 도움이 됩니다. 이 경우 값 끝에 있는 0의 수를 알려주는 밑이 10인 로그를 사용하고 있습니다. 예를 들어 로그 눈금의 3.0은 10^3, 즉 1,000입니다. 로그를 취함으로써 우리는 변수들 사이에 더 균일한 확산과 대략적인 선형 관계를 달성합니다.

상관 관계는 두 양적 변수 사이의 일반적으로 선형 관계의 강도를 측정합니다. 이 경우 약 0.22의 양의 상관관계가 있으며 이는 정규 학부 등록이 증가함에 따라 졸업률도 증가하는 경향이 있음을 나타냅니다. 대학 규모와 졸업률 사이의 이러한 양의 관계는 놀랍게 보일 수 있지만 더 자세히 살펴볼 가치가 있습니다.

상관관계의 범위는 -1에서 1까지이므로 상관관계는 상대적으로 약합니다. 상관관계 -1은 완벽한 부정적인 관계를 나타내고 1의 상관관계는 완벽한 긍정적인 관계를 나타냅니다.

이제 이 상관관계가 통계적으로 유의한지 확인하기 위해 R에서 상관관계 테스트를 수행해 보겠습니다. 상관 관계 테스트를 실행하기 위한 구문은 상관 관계 계산과 유사합니다. 두 개의 관심 변수와 함께 cor.test 함수를 사용하여 상관 관계 및 추가 정보를 얻습니다.

이 경우 테스트 결과는 0.001의 p-값을 제공하며, 이는 모집단에서 이러한 변수 사이에 상관관계가 없는 경우 관찰된 상관관계가 약 0.1%의 확률로 무작위로 발생할 것임을 시사합니다. 이렇게 낮은 확률은 우리가 관찰한 상관관계가 통계적으로 유의미하다는 것을 나타내며, 풀타임 학부 등록의 로그와 공립 대학의 졸업률 사이에 상관관계가 있다는 결론을 내릴 수 있습니다.

이제 테스트 자체에 대해 좀 더 자세히 살펴보겠습니다. 샘플 데이터에서 관찰된 상관관계가 임의의 기회에 합리적으로 기인할 수 있는지 여부를 검사합니다. 테스트는 변수와 관찰의 독립성 간의 선형 관계를 가정하므로 시계열 데이터에 적합하지 않습니다. 또한 데이터가 이변량 정규 분포를 따른다고 가정하지만 완벽한 정규성에서 벗어난 편차는 일반적으로 허용됩니다.

이 상관 검정은 특히 모집단 상관이 0이라는 귀무 가설을 검정한다는 점에 유의해야 합니다. 0 이외의 상관 관계를 테스트하는 데 사용할 수 없습니다.

후드 아래에서 테스트는 관찰된 샘플 상관 관계로 계산된 R이라는 테스트 통계를 사용합니다. 이 통계는 상관관계가 0이라는 귀무가설을 가정하고 자유도가 n-2인 스튜던트 t-분포를 따릅니다. n-2로 표시되는 자유도는 표본 크기(n)에 따라 달라지며 추정에 사용할 수 있는 독립적인 관측치의 수에 의해 결정됩니다.

검정은 모집단 상관에 대한 신뢰 구간도 제공합니다. 이 경우 95% 신뢰 구간의 범위는 0.087~0.354입니다. 이 간격은 샘플 데이터를 기반으로 모집단 상관 관계에 대한 그럴듯한 값의 범위를 제공합니다. 구간에 0이 포함되어 있지 않기 때문에 모집단 상관관계가 양수일 가능성이 높다고 추론할 수 있습니다.

상관관계가 인과관계를 의미하지 않는다는 점은 주목할 가치가 있습니다. 두 변수 사이의 상관관계를 관찰했다고 해서 한 변수가 다른 변수를 변경시킨다는 의미는 아닙니다. 상관관계는 단순히 변수 간의 관계를 나타내지만 인과관계를 확립하기 위해서는 추가적인 연구와 분석이 필요합니다.

상관관계를 시각화하기 위해 산점도에 회귀선을 추가할 수 있습니다. 회귀선은 관계의 일반적인 추세를 나타내는 데이터 포인트를 통한 최적의 선을 나타냅니다. 인수 method = "lm"과 함께 ggplot의 geom_smooth 함수를 사용하여 플롯에 회귀선을 추가할 수 있습니다.

이제 데이터 포인트에 맞는 회귀선을 볼 수 있습니다. 풀타임 학부 등록의 대수와 공립 대학의 졸업률 사이의 양의 관계를 시각적으로 표현합니다.

요약하면, 풀타임 학부 등록의 대수와 공립 대학의 졸업률 사이에 통계적으로 유의미한 관계가 있는지 확인하기 위해 상관 검정을 수행했습니다. 검사 결과는 p-값이 0.001로 양의 상관관계를 나타내어 유의한 관계가 있음을 시사합니다. 그러나 상관관계는 인과관계를 의미하지 않으며 인과관계를 설정하려면 추가 분석이 필요합니다.

상관관계 테스트는 통계 분석에서 유용한 도구로, 변수 간의 관계를 탐색하고 잠재적 추세 또는 연관성을 식별할 수 있습니다. 정보에 입각한 결정을 내리고 데이터를 기반으로 의미 있는 결론을 도출하는 데 도움이 됩니다.

Correlation testing in R
Correlation testing in R
  • 2023.03.29
  • www.youtube.com
Does a sample correlation imply a population correlation, or could the observed data just be due to random chance? Let's get into it!If this vid helps you, p...
사유: