不同 p值時,虛無假設與對立假設下的密度分布

https://poe.com/preview/9or7DmjGwEEGW6nZWcA1

import React, { useState } from 'react';

import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend } from 'recharts';


const PValueDistribution = () => {

    const [power, setPower] = useState(0.8);

    const [alpha, setAlpha] = useState(0.05);

    

    const data = [];

    const lambda = -Math.log(1 - power) / alpha;

    

    for (let x = 0; x <= 1; x += 0.01) {

        data.push({

            pValue: x,

            null: 1,

            alt: Math.exp(-x * lambda) * lambda / (1 - Math.exp(-lambda))

        });

    }


    return (

        <div className="p-4 max-w-4xl mx-auto">

            <div className="text-center mb-6">

                <h1 className="text-2xl font-bold mb-2">

                    不同 p值時,虛無假設與對立假設下的密度分布

                </h1>

                <p className="text-gray-600">

                    顧進裕 20250212 用 Claude-3.5-Sonnet 製作

                </p>

            </div>


            <div className="mb-4 bg-blue-50 p-4 rounded-lg">

                <h3 className="font-bold mb-2">密度的概念說明:</h3>

                <ul className="list-disc ml-4 space-y-2 text-sm">

                    <li>密度值代表在該 p 值附近出現的相對可能性</li>

                    <li>虛無假設下(藍線):p 值在 0 到 1 之間均勻分布,密度恆為 1</li>

                    <li>對立假設下(綠線):小的 p 值出現機會較大,故左側密度較高</li>

                    <li>密度值可以大於 1,但曲線下總面積必須等於 1</li>

                </ul>

            </div>


            <div className="mb-4 flex gap-4">

                <div>

                    <label className="block mb-2 font-medium">檢定力 (Power):</label>

                    <select 

                        value={power}

                        onChange={e => setPower(Number(e.target.value))}

                        className="border rounded p-2"

                    >

                        <option value={0.2}>0.20 (低)</option>

                        <option value={0.3}>0.30 (中低)</option>

                        <option value={0.5}>0.50 (中)</option>

                        <option value={0.7}>0.70 (中高)</option>

                        <option value={0.8}>0.80 (高)</option>

                        <option value={0.9}>0.90 (極高)</option>

                    </select>

                </div>


                <div>

                    <label className="block mb-2 font-medium">顯著水準 (α):</label>

                    <select 

                        value={alpha}

                        onChange={e => setAlpha(Number(e.target.value))}

                        className="border rounded p-2"

                    >

                        <option value={0.01}>0.01</option>

                        <option value={0.05}>0.05</option>

                        <option value={0.10}>0.10</option>

                    </select>

                </div>

            </div>

            

            <div className="w-full h-96 bg-white shadow-lg rounded-lg p-4">

                <LineChart width={600} height={300} data={data}>

                    <CartesianGrid strokeDasharray="3 3" />

                    <XAxis 

                        dataKey="pValue" 

                        domain={[0, 1]}

                        tickFormatter={(value) => value.toFixed(2)}

                        label={{ value: "p值", position: "bottom" }}

                    />

                    <YAxis 

                        domain={[0, 3]}

                        label={{ value: "密度", angle: -90, position: "insideLeft" }}

                    />

                    <Tooltip formatter={(value) => value.toFixed(2)} />

                    <Legend />

                    <Line 

                        type="monotone" 

                        dataKey="null" 

                        stroke="#8884d8" 

                        name="虛無假設" 

                        dot={false}

                    />

                    <Line 

                        type="monotone" 

                        dataKey="alt" 

                        stroke="#82ca9d" 

                        name="對立假設" 

                        dot={false}

                    />

                </LineChart>

            </div>


            <div className="mt-6 bg-gray-50 p-4 rounded-lg">

                <h3 className="font-bold mb-3">密度與曲線下面積的關係:</h3>

                <div className="space-y-3 text-sm">

                    <div className="border-l-4 border-blue-500 pl-3">

                        <p className="font-semibold">拒絕域(0 到 α = {alpha}):</p>

                        <ul className="list-disc ml-4 mt-1">

                            <li>虛無假設:密度為 1,面積 = α(第一類錯誤機率)</li>

                            <li>對立假設:密度較高,面積 = {power}(檢定力)</li>

                        </ul>

                    </div>


                    <div className="border-l-4 border-green-500 pl-3">

                        <p className="font-semibold">接受域(α = {alpha} 到 1):</p>

                        <ul className="list-disc ml-4 mt-1">

                            <li>虛無假設:密度為 1,面積 = {(1-alpha).toFixed(2)}(正確接受)</li>

                            <li>對立假設:密度較低,面積 = {(1-power).toFixed(2)}(第二類錯誤)</li>

                        </ul>

                    </div>


                    <div className="border-l-4 border-yellow-500 pl-3">

                        <p className="font-semibold">密度值的特性:</p>

                        <ul className="list-disc ml-4 mt-1">

                            <li>密度值反映相對可能性,不是機率</li>

                            <li>小區間的機率 ≈ 密度值 × 區間長度</li>

                            <li>檢定力越高,對立假設在小 p 值處的密度越大</li>

                        </ul>

                    </div>

                </div>

            </div>

        </div>

    );

};


export default PValueDistribution;

留言

這個網誌中的熱門文章

可轉移性、普遍性、代表性和外部有效性

頻率學派 vs 貝氏學派

貝氏分析計算器