Alice in Wonderland におけるγ分布の検定
先日からAlice in Wonderland の分析を行なっている.
先日の内容を見ていると、文章の長さの分布に特徴がありそうだと考え、検定を行ってみた. 今回行った検定はガンマ分布の検定である.結論としてはγ分布には従わなかったが参考にコードを載せておく.
# ガンマ分布に従うかの検定
def test_gamma_distribution(df):
word_lengths = df['Word_Count']
# ガンマ分布にフィット
params = gamma.fit(word_lengths)
print(f"Fitted gamma parameters: shape={params[0]}, loc={params[1]}, scale={params[2]}")
# Kolmogorov-Smirnov検定
kstest_result = kstest(word_lengths, 'gamma', args=params)
print("Kolmogorov-Smirnov Test for Gamma Distribution:")
print(f"Statistic: {kstest_result.statistic}, p-value: {kstest_result.pvalue}")
return params, kstest_result
# ガンマ分布のプロット
def plot_gamma_distribution(df, params):
word_lengths = df['Word_Count']
x = np.linspace(min(word_lengths), max(word_lengths), 100)
y = gamma.pdf(x, *params)
plt.figure(figsize=(10, 6))
sns.histplot(word_lengths, bins=20, kde=False, stat='density', label='Word Lengths')
plt.plot(x, y, 'r-', label='Fitted Gamma PDF')
plt.title('Histogram and Fitted Gamma Distribution')
plt.xlabel('Word Count')
plt.ylabel('Density')
plt.legend()
plt.show()
# ガンマ分布に従うかの検定
params, kstest_result = test_gamma_distribution(sentence_df)
# ガンマ分布のプロット
plot_gamma_distribution(sentence_df, params)
参考文献
- https://www.gutenberg.org/files/11/11-h/11-h.html