import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
from scipy import stats
from typing import *
核密度估計法是一種通過某個(連續的)概率分布的樣本來估計這個概率分布的密度函式的方法。
說到用樣本來估計概率密度,最基礎的就應該是「直方圖」了。我們可以把直方圖看作是乙個幾乎處處連續的函式,用這樣乙個連續的函式作為未知概率分布的近似。對樣本點,取分點,直方圖這樣乙個連續函式:
當樣本數量趨於無窮並且劃分區間長度趨於0時,是幾乎處處收斂與原概率分布的密度函式的。
以下**生成了100個標準正態分佈隨機數並畫出了它們的直方圖
核密度估計是一種比較平滑地估計未知分布概率密度的方法。
我們可以針對每乙個,用來估計(其中表示集合的元素個數)
即: 如果把上面的區間改為左開右閉區間, 就有:
,是經驗分布函式。
即是對經驗分布函式用差分近似估計導數的結果。
這種估計叫做「rosenblatt 直方圖估計」
設函式rosenblatt 直方圖估計可以寫成
這裡的叫做核函式。
def kernel_density(k, sample, h):
"""k: density function, h: bandwidth
返回樣本的核密度估計函式
注意到:
這個我們一般叫做頻寬(bandwidth),它的選取需要平衡偏差和方差。漸近地取, 核密度估計的均方誤差為。
除了rosenblatt直方圖估計,還有一些其它的核函式:
比如說高斯核函式,用它來估計就具有非常好的光滑性。sns.displot
函式的kde=true
就會使用高斯核密度估計來擬合樣本!
gauss 核密度估計
「以下是真實分布與核密度方法近似的比較:」
參考:韋來生.數理統計
概率密度函式估計筆記
概率密度函式估計是貝葉斯決策的基礎,有兩大類方法 引數法和非引數法。所謂的引數法是指已知引數形式,但不知道引數,我們要對引數進行估計的過程。這裡主要介紹點估計的兩種方法 一種是最大似然估計,一種是貝葉斯估計。最大似然估計 假設 我們要估計的引數 是確定但未知的 樣本之間是獨立同分布的 或者是條件獨立...
概率密度估計簡介
1 概率密度函式 在分類器設計過程中 尤其是貝葉斯分類器 需要在類的先驗概率和類條件概率密度均已知的情況下,按照一定的決策規則確定判別函式和決策面。但是,在實際應用中,類條件概率密度通常是未知的。那麼,當先驗概率和類條件概率密度都未知或者其中之一未知的情況下,該如何來進行類別判斷呢?其實,只要我們能...
Matlab 概率密度函式
以下函式均是對應分布模型的概率密度函式 函式函式功能 y binopdf x,n,p 產生引數為n,p的二項分布,x為取值點,y為對應的值 y poisspdf x,lambda 泊松分布,引數為lambda y geopdf x,p 幾何分布,引數為p y unidpdf x,m 離散型均勻分布,...