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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です