不同 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;
留言
張貼留言