久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網運營的一線實戰(zhàn)洞察。

D3.js置換檢驗散點圖:讓數(shù)據顯著性變得可見

D3.js置換檢驗散點圖:讓數(shù)據顯著性變得可見 這次做的項目叫D3.js研發(fā)置換檢驗散點圖。一句話說清楚用D3.js實現(xiàn)一個交互式散點圖散點圖本身展示兩組樣本在兩個維度上的分布同時在圖的下方實時呈現(xiàn)置換檢驗的零分布直方圖和觀測統(tǒng)計量參考線讓兩組數(shù)據是否顯著不同這個統(tǒng)計結論不再依靠肉眼猜測而是變成看得見的計算過程。起因是我們小組分析一次細胞實驗數(shù)據時出現(xiàn)了分歧。散點圖一畫出來樣本點明顯分成兩團實驗室同學直接說這次藥物處理絕對有效。我盯著圖看了十分鐘總覺得哪里不對——樣本量只有每組18個右上方有幾顆離群點兩團點之間其實還有不少交疊。你問我要不要拍板個結論我是不敢的。肉眼在散點圖上做判斷最容易高估差異的顯著性尤其當樣本量小、分布偏斜、還有離群值的時候。所以我決定做一個工具把散點圖和置換檢驗放進同一個界面里既展示原始數(shù)據的形態(tài)又給出基于重抽樣的顯著性判斷。這個項目適合三類人看一是經常畫散點圖但覺得只看圖不夠嚴謹?shù)臄?shù)據分析人員二是想了解置換檢驗如何落地到前端可視化產品里的開發(fā)者三是在校學生——你們學數(shù)理統(tǒng)計時會發(fā)現(xiàn)把檢驗過程用動畫放出來對理解p值這件事幫助極大。1. 散點圖為什么需要顯著性這個維度1.1 肉眼判斷到底錯在哪先回到那個分組對比的經典問題兩組數(shù)據畫在一張散點圖上怎么看有沒有差異大多數(shù)人看圖的順序是這樣的——先看兩組點的重心有沒有拉開再看兩個顏色云團的重疊面積最后下意識地認為分得越開差異越顯著。但散點圖的信息表達有個天然缺陷它展示的是原始數(shù)據點的位置卻完全隱藏了樣本量、分布形狀和抽樣波動這三項信息。舉例來說A、B兩組各20個點均值差2.0但每組內部標準差很大分布呈明顯的右偏。畫出來的散點圖可能看起來很清爽因為高維數(shù)據投影到二維平面上之后視覺上會被拉開可是如果你真正跑一個統(tǒng)計檢驗p值可能到0.15。反過來兩組各200個點均值差只有0.3圖上看基本是混在一起的但因為樣本量大p值可能小于0.01。這兩種情況單看散點圖都會得出錯誤結論——第一種高估差異第二種低估差異。人的視覺系統(tǒng)對距離敏感對樣本量和分布形態(tài)不敏感。換句話說散點圖回答的是長什么樣統(tǒng)計檢驗回答的是這種差別有多大概率是隨機造成的。兩者是互補關系不是替代關系。所以我在這張圖里強制加入檢驗結果就是希望看圖的人不要只停留在形狀層面。1.2 為什么是置換檢驗而不是t檢驗要做差異顯著性檢驗最常規(guī)的選擇是Students t檢驗但我在這個項目里特意選用了置換檢驗Permutation Test。兩者都檢驗兩組均值是否相等的原假設但對數(shù)據的前置要求完全不同。維度t檢驗置換檢驗前提假設近似正態(tài)、方差齊性無分布假設計算邏輯基于公式計算t統(tǒng)計量與p值通過重復打亂標簽構造零分布樣本量要求小樣本受限于正態(tài)性要求小樣本可以直接做窮舉置換計算成本毫秒級幾乎為零需要數(shù)千次重計算結果輸出一個p值零分布直方圖 經驗p值適用場景數(shù)據形態(tài)良好、追求效率分布偏斜、離群值明顯、需要可視證據選置換檢驗的原因很實際。我們那批實驗數(shù)據分布形態(tài)完全不像正態(tài)右尾特別長還有三個明顯的離群值。t檢驗對離群值高度敏感一個極端點就能顯著改變p值的方向和大小。置換檢驗沒有這個煩惱它的核心假設只有一個——如果分組標簽和觀測值沒有關系那么把標簽隨機打亂后統(tǒng)計量不會系統(tǒng)性地偏向某一邊。這個假設非常寬松幾乎適用于所有實際情況。更重要的原因在可視化上。t檢驗給你一個冷冰冰的p值而置換檢驗天然會產出一條完整的零分布曲線也就是原假設成立時統(tǒng)計量的概率分布。這條曲線本身就是一張圖把它和散點圖放在一起讀者能看到觀測統(tǒng)計量落在零分布的什么位置這個直觀程度是t檢驗沒法給的。1.3 項目的最終形態(tài)整個項目是一個純前端的交互工具數(shù)據以JSON或CSV形式加載。界面分為上下兩個區(qū)域上方SVG散點圖橫軸為第一維指標縱軸為第二維指標樣本點按分組著色。下方置換檢驗統(tǒng)計量的直方圖疊加一條豎線標記觀測統(tǒng)計量的位置以及p值文本。交互方面包含運行置換按鈕啟動打亂標簽的動畫并逐步累積直方圖。進度控制動畫速度、置換次數(shù)、暫停/繼續(xù)。分組切換左側提供維度選擇器切換散點圖的橫縱軸指標。刷選聯(lián)動在散點圖上框選區(qū)域后僅對選中的樣本子集重新做置換檢驗。這套形態(tài)基本覆蓋了我在實際分析里的全部訴求先看圖再檢驗檢驗過程還能講給別人聽。2. 置換檢驗的算法原理與JavaScript實現(xiàn)2.1 打亂標簽的實驗思維置換檢驗的統(tǒng)計學思想可以用一句話概括如果分組沒有真實差異那分組標簽就只是貼上去的記號把它們隨機重貼一遍結果不應該有系統(tǒng)性的變化。這句話展開就是標準流程計算觀測統(tǒng)計量。比如兩組均值差obsStat mean(B組) - mean(A組)。把所有樣本的標簽全部抹掉混合在一起。隨機給每個樣本重新分配標簽保持每組樣本量不變A組n1個B組n2個?;谛聵撕炛匦掠嬎憔挡畹玫揭粋€置換統(tǒng)計量。重復第3、4步N次比如1000次或10000次得到N個置換統(tǒng)計量。統(tǒng)計這N個置換統(tǒng)計量中絕對值不小于abs(obsStat)的比例。這個比例就是經驗p值。用生活化的話講這有點像洗牌實驗口袋里有40顆球20顆紅球20顆藍球每次隨機抽出20顆當成處理組其余當對照組算兩組球的平均重量差。如果原本的差異是真的那么隨機洗出來的差異很難超過真實差異如果能輕易超過說明真實差異可能在隨機波動范圍內。2.2 統(tǒng)計量選哪個均值差、t還是中位數(shù)差置換檢驗框架下只要你能定義一個衡量組間差異的數(shù)值就可以用于檢驗。但選擇不同統(tǒng)計量檢驗的敏感方向不同統(tǒng)計量特點適合場景均值差對離群值敏感檢測重心偏移數(shù)據形態(tài)良好、無強離群值時中位數(shù)差穩(wěn)健不受離群值干擾長尾分布、存在離群值t統(tǒng)計量均值差除以合并標準誤自帶標準化除了位置差異還關注離散度差異秩和統(tǒng)計量基于排序非參數(shù)化最徹底數(shù)據為等級變量、尺度不均時我這批數(shù)據最終選的是均值差作為演示統(tǒng)計量因為它的幾何意義最直觀散點圖上兩組點的重心連線投影到某個方向上就是均值差。但我在界面上保留了統(tǒng)計量切換的下拉框方便對比。實際使用中發(fā)現(xiàn)當數(shù)據里有明顯離群點的時候均值差和中位數(shù)差給出的p值差異能到一個數(shù)量級建議探索階段兩個都跑一遍。需要提醒一點統(tǒng)計量必須在置換之前先固定下來。不存在先看一下數(shù)據哪個統(tǒng)計量顯著再選哪個的做法那是數(shù)據窺探data snooping會讓p值失真。2.3 完整實現(xiàn)一個可嵌入項目的permutation模塊核心代碼我封裝成了一個ES Module方便其他項目中復用。// permutation.js function shuffleArray(arr) { // Fisher-Yates 洗牌 const a arr.slice(); for (let i a.length - 1; i 0; i--) { const j Math.floor(Math.random() * (i 1)); [a[i], a[j]] [a[j], a[i]]; } return a; } function mean(values) { return values.reduce((acc, v) acc v, 0) / values.length; } function calcStat(groupA, groupB, statType meanDiff) { const mA mean(groupA); const mB mean(groupB); if (statType meanDiff) return mA - mB; if (statType medianDiff) { const sortedA [...groupA].sort((x, y) x - y); const sortedB [...groupB].sort((x, y) x - y); const medianA sortedA[Math.floor(sortedA.length / 2)]; const medianB sortedB[Math.floor(sortedB.length / 2)]; return medianA - medianB; } // t 統(tǒng)計量均值差 / 合并標準誤 const pooledSE Math.sqrt( (groupA.length 1 groupB.length 1) ? ((groupA.reduce((s, v) s (v - mA) ** 2, 0) groupB.reduce((s, v) s (v - mB) ** 2, 0)) / (groupA.length groupB.length - 2)) * (1 / groupA.length 1 / groupB.length) : 1 ); return (mA - mB) / pooledSE; } export function permutationTest(values, labels, nPerm 10000, statType meanDiff) { const groupAValues values.filter((_, i) labels[i] 0); const groupBValues values.filter((_, i) labels[i] 1); const obsStat calcStat(groupAValues, groupBValues, statType); const pooled values.slice(); const nA groupAValues.length; const permStats new Float64Array(nPerm); for (let i 0; i nPerm; i) { const shuffled shuffleArray(pooled); const permA shuffled.slice(0, nA); const permB shuffled.slice(nA); permStats[i] calcStat(permA, permB, statType); } let extremeCount 0; for (let i 0; i nPerm; i) { if (Math.abs(permStats[i]) Math.abs(obsStat)) extremeCount; } // 分子分母都 1避免 p 值被低估為 0 const pValue (extremeCount 1) / (nPerm 1); return { obsStat, permStats, pValue }; }這里有兩個細節(jié)必須說明。第一shuffleArray用的是Fisher-Yates洗牌算法時間復雜度O(n)且每個排列的出現(xiàn)概率均勻。直接用Array.prototype.sort(() Math.random() - 0.5)洗牌是新手最常見的錯誤這種寫法產生的排列概率不均勻會導致置換分布產生系統(tǒng)性偏差嚴重時p值會偏移幾個百分點。第二slice(0, nA)這種方式只適用于兩組切分。實際項目里如果有更多組就要改成permutationTest接受組別數(shù)并循環(huán)切分別在這塊偷懶。2.4 p值計算的兩個容易被忽略的細節(jié)p值的規(guī)范定義是在原假設下觀測結果或比觀測結果更極端的概率。在置換檢驗里最直接的做法是統(tǒng)計置換統(tǒng)計量絕對值超過觀測統(tǒng)計量絕對值的比例。但這里有兩個陷阱。第一個陷阱是p值為0。如果置換次數(shù)是10000次而10000次置換里恰好沒有一次超過觀測值你會算出p0。這并不代表絕對不可能只代表你的置換次數(shù)不夠分辨小概率。改進方法統(tǒng)一是加一校正分子加1、分母加1。這樣既避免了p0也保留了觀測數(shù)據本身就是一次天然置換的語義——原始標簽是所有打亂方案中的一種觀測統(tǒng)計量必然包含在零分布里所以最小經驗p值應為1/(N1)。第二個陷阱是雙側檢驗與單側檢驗。我在代碼里用的是Math.abs比較這是雙側檢驗適合回答兩組是否有差異。如果業(yè)務問題是處理組是否嚴格高于對照組則應改為單側比較統(tǒng)計permStats[i] obsStat的比例。同一個數(shù)據集雙側和單側的p值可能差出一倍寫代碼前務必想清楚要回答哪種問題。3. 從比例尺到圓點D3.js散點圖組件搭建3.1 為什么在這個場景里選D3.js現(xiàn)在可視化圖表庫很多ECharts功能強大、上手快Plotly甚至支持Python調用為什么我固執(zhí)地選了D3.js我的理由只有一條這個項目的核心不只是畫圖而是把統(tǒng)計過程掛在圖形狀態(tài)上。散點圖的每一顆圓點在置換動畫中要反復改變顏色來呈現(xiàn)標簽打亂過程散點圖下方的零分布直方圖要在每次置換計算后動態(tài)新增一根柱子觀測統(tǒng)計量豎線要實時移動。這種數(shù)據和圖形元素一一綁定、隨時被業(yè)務邏輯驅動的模式是D3.js的看家本領因為它基于數(shù)據綁定data join模型開發(fā)天然支持enter/update/exit生命周期。方案學習成本自定義交互大數(shù)據性能數(shù)據綁定ECharts低配置項為主復雜交互要寫擴展內置Canvas性能好弱Plotly低有回調機制但靈活度一般中等弱D3.js高完全可控基于DOM/SVG/Canvas取決于寫法強如果只是出圖交給領導看我肯定推薦ECharts但要做一個交互式統(tǒng)計教學/分析工具D3.js的自由度值得多花時間。3.2 從業(yè)務數(shù)據到視覺通道的映射散點圖本質上做的是數(shù)據到視覺通道的映射。在我這個項目里每條樣本記錄有多個數(shù)值字段我預先定義了一個配置對象const channels { x: { field: dose, label: 劑量(μg/mL) }, y: { field: response, label: 響應值 }, color: { field: group, label: 分組 } };D3的關鍵概念是比例尺scale它是數(shù)據值域到屏幕像素域的橋梁。橫軸和縱軸分別建立一個線性比例尺顏色則使用序數(shù)比例尺const xScale d3.scaleLinear() .domain(d3.extent(data, d d[channels.x.field])) .range([margin.left, width - margin.right]); const yScale d3.scaleLinear() .domain(d3.extent(data, d d[channels.y.field])) .range([height - margin.bottom, margin.top]); const colorScale d3.scaleOrdinal() .domain([0, 1]) .range([#0077bb, #ee7733]); // 藍橙色盲友好這里range([height - margin.bottom, margin.top])是SVG坐標系和數(shù)學坐標系方向相反導致的y軸必須從底部映射到頂部新手寫反了會把圖畫成倒置的。顏色選擇方面我沒有用紅綠組合這是考慮到紅綠色盲人群約占總人口8%換成藍橙對比能明顯擴大受眾而且在后臺評審場景下藍橙在黑白打印時的灰度差異也更大。3.3 SVG散點圖的data join核心代碼將數(shù)據綁定到圓點元素的核心代碼如下const circles svg.selectAll(circle) .data(data, d d.id) .join( enter enter.append(circle) .attr(r, 5) .attr(cx, d xScale(d[channels.x.field])) .attr(cy, d yScale(d[channels.y.field])) .attr(fill, d colorScale(d[channels.color.field])) .attr(fill-opacity, 0.8), update update .attr(cx, d xScale(d[channels.x.field])) .attr(cy, d yScale(d[channels.y.field])) .attr(fill, d colorScale(d[channels.color.field])), exit exit.remove() );.join()是D3 v6以上版本的統(tǒng)一入口比舊版的enter().append().merge()更簡潔。一個重要的交互細節(jié)是散點圖坐標變化時比如切換維度不建議直接改圓點的cx/cy而是用transition()讓圓點平滑移動這樣讀者能保留這些點在空間上如何重新分布的認知線索circles.transition().duration(400) .attr(cx, d xScale(d[channels.x.field])) .attr(cy, d yScale(d[channels.y.field]));3.4 零分布直方圖的繪制散點圖下方需要放一個零分布直方圖。D3從v7開始提供了d3.bin作為直方圖計算的工具用法如下const bins d3.bin() .domain(xDomainOfPermStats) .thresholds(40)(permStatsArray); svg.selectAll(rect) .data(bins) .join(rect) .attr(x, d xScaleHist(d.x0)) .attr(width, d xScaleHist(d.x1) - xScaleHist(d.x0) - 1) .attr(y, d yScaleHist(d.length)) .attr(height, d yScaleHist(0) - yScaleHist(d.length)) .attr(fill, #cccccc);這里有個工程細節(jié)直方圖的bin數(shù)量我固定用40個而不是讓D3自動推導原因是用戶通過滑塊改變置換次數(shù)時bin數(shù)要保持一致否則直方圖形狀會跳變破壞零分布是穩(wěn)定形狀的直覺。直方圖x軸的范圍也要固定取permStats的全局最小和最大否則每次計算完后范圍漂移觀測統(tǒng)計量豎線的相對位置就無法比較。同時疊加一條觀測統(tǒng)計量的豎線svg.append(line) .attr(x1, xScaleHist(obsStat)) .attr(x2, xScaleHist(obsStat)) .attr(y1, 0) .attr(y2, heightHist) .attr(stroke, #d7191c) .attr(stroke-dasharray, 4,3);紅色虛線很顯眼和藍橙點顏色區(qū)分開即使色盲用戶也能靠線型區(qū)分。4. 動畫設計把標簽打亂過程變成看得見的分布生長4.1 標簽打亂動畫的核心邏輯純算置換檢驗不需要任何動畫。但我的初衷是讓讀者看見零分布的形成過程所以加入了打亂標簽的動畫。動畫的邏輯非常直接每次置換我們只是重新分配了顏色標簽樣本在二維平面上的位置完全不動。這一點千萬要在代碼里保持住——只更新fill屬性不動cx和cy。如果讓點和顏色一起挪動視覺上會誤以為樣本本身在變而真實假設是樣本不變只有標簽在變這個區(qū)別是整個動畫教學價值的核心。動畫狀態(tài)機我分為三態(tài)空閑idle、運行running、暫停paused。核心是一個定時器驅動的循環(huán)let animationTimer null; let frameCount 0; function runAnimation() { if (animationTimer) return; animationTimer d3.interval(() { // 每次 tick 執(zhí)行一次置換計算并更新界面 const permResult performOnePermutation(); updateHistogram(permResult); updateColorLabels(permResult.labels); frameCount; if (frameCount permCount) { animationTimer.stop(); animationTimer null; finishAllPermutations(); } }, speed); }這里的performOnePermutation每次只計算一次置換這樣動畫越積越多直方圖的柱子而不是一次性算完10000次再統(tǒng)一繪制。讀者會看到一個概率分布從無到有地長出來的過程我在教學演示中實測這種累積式動畫比一次性成圖更能讓人理解p值就是極端情況占總置換次數(shù)的比例。4.2 配色切換的平滑處理一個視覺效果上的細節(jié)當動畫跑得很快時顏色標簽的閃爍會很刺眼。我加了兩個緩解手段。第一圓點的fill-opacity從0.8降到0.55讓顏色切換的視覺沖擊減輕同時緩解了大量圓點重疊時全是一種顏色的假象。第二每次動畫幀之間不直接修改fill顏色值而是通過CSS過渡circle.perm-point { transition: fill 80ms ease, fill-opacity 80ms ease; }這樣每一幀切換時會有輕微的漸變過程眼睛不容易疲勞。但如果動畫速度超過每秒20幀這種過渡會帶來殘影所以我把過渡時間控制在80ms實際手感比較合適。4.3 刷選聯(lián)動局部子集的置換檢驗散點圖還有一個隱藏功能刷選。用D3的brush模塊框選區(qū)域后界面會只保留框選范圍內的樣本點并自動重新計算置換檢驗和零分布。這實際上是在回答一個更深入的問題如果只看這部分樣本組間差異還顯著嗎這個功能在探索性分析里非常有用——往往整體不顯著但某個子區(qū)域內兩組分離明顯這提示可能存在交互效應或亞組差異。刷選的核心實現(xiàn)是監(jiān)聽brush事件const brush d3.brush() .extent([[margin.left, margin.top], [width - margin.right, height - margin.bottom]]) .on(brush end, onBrush); function onBrush(event) { const selection event.selection; const selectedIds new Set(); if (selection) { data.forEach(d { const px xScale(d[channels.x.field]); const py yScale(d[channels.y.field]); const [[x0, y0], [x1, y1]] selection; if (px x0 px x1 py y0 py y1) { selectedIds.add(d.id); } }); } // 用 selectedIds 過濾數(shù)據重跑置換檢驗 runPermutationOnSubset(selectedIds); }刷選后未命中的圓點用淺灰色占位顯示、命中區(qū)域保持原色這樣讀者能理解刷選的作用范圍。一個必須做的防御性處理是散點圖的坐標軸經過比例尺換算后有小數(shù)誤差我在比較時用了和完成邊界包含判斷這樣刷選邊界上的點不會反復抖動。5. 大樣本與高次數(shù)場景下的計算與渲染優(yōu)化5.1 置換次數(shù)到底該取多少置換檢驗的p值分辨率由置換次數(shù)決定。經驗法則很簡單如果只需要判斷p值是否小于0.051000次置換足夠p值標準誤差約為0.014。如果要穩(wěn)妥地報告p值到兩位小數(shù)建議10000次。如果面對的是發(fā)表級嚴謹分析且p值接近臨界值建議50000到100000次。置換次數(shù)與p值標準誤的關系滿足公式SE(p) ≈ sqrt(p(1-p)/N)其中N是置換次數(shù)。p在0.05附近時N1000對應SE約0.0069N10000對應SE約0.0022。我默認設置的10000次在絕大多數(shù)業(yè)務的判斷顯著與否需求上足夠穩(wěn)。從計算量上看10000次置換、每組100個樣本、統(tǒng)計量取均值差在JavaScript主線程里跑大約需要幾百毫秒到1秒。偶爾會覺得卡但總體上能接受。一旦樣本量上升到5000個點、置換次數(shù)50000次主線程就會明顯阻塞界面白屏好幾秒。5.2 SVG和Canvas的取舍D3.js既能畫SVG也能畫Canvas。當樣本點超過3000到5000個時SVG的DOM節(jié)點數(shù)量會讓瀏覽器的渲染性能直線下降拖拽、刷選、動畫全部變得不流暢。這時我建議把散點圖層切換到Canvas只保留文字標簽和坐標軸走SVG。Canvas實現(xiàn)的散點圖層大致是這個形狀const canvas document.querySelector(#scatter-canvas); const ctx canvas.getContext(2d); function drawScatter(data, xScale, yScale, colorScale) { ctx.clearRect(0, 0, canvas.width, canvas.height); data.forEach(d { ctx.beginPath(); ctx.arc(xScale(d[channels.x.field]), yScale(d[channels.y.field]), pixelR, 0, 2 * Math.PI); ctx.fillStyle colorScale(d[channels.color.field]); ctx.globalAlpha 0.6; ctx.fill(); }); }注意Canvas方案需要自己處理globalAlpha和圖層疊加不涉及enter/update/exit因此對動態(tài)修改顏色的動畫支持反而比SVG更輕量——每次重繪一幀即可。缺點是無法像DOM那樣方便地綁定事件做點選、tooltip如果確實需要在Canvas上做高精度點選一般要用四叉樹索引做快速最近點查詢。5.3 Web Worker把計算從主線程里挪走最徹底的性能方案是把置換檢驗計算放進Web Worker主線程只負責接收結果并繪制。這樣即使置換次數(shù)10萬次界面也不會卡死。我封裝了一個worker文件// permutation.worker.js self.onmessage function (e) { const { values, labels, nPerm, statType } e.data; const result permutationTest(values, labels, nPerm, statType); // 結果里可能包含長達 nPerm 的 Float64Array self.postMessage(result, [result.permStats.buffer]); };主線程這樣調用const worker new Worker(permutation.worker.js); worker.onmessage (e) { const { obsStat, permStats, pValue } e.data; updateHistogram(permStats, obsStat, pValue); workerRunning false; }; worker.postMessage({ values: currentValues, labels: currentLabels, nPerm: permCount, statType: currentStatType });這里有個性能關鍵點postMessage傳遞Float64Array時如果數(shù)據量很大默認會發(fā)生拷貝。給postMessage傳入transferable列表就是代碼里的第二個參數(shù)[result.permStats.buffer]就能把ArrayBuffer的所有權轉交給主線程O(1)完成傳輸而不是O(n)拷貝。這點在高頻次置換動畫里差異非常明顯。需要權衡的是Web Worker里不能訪問DOM所以如果你的實時動畫需要每個置換幀都更新UI就必須改成批處理模式worker每次計算一批比如200次置換后postMessage一次主線程收到一批就更新一次直方圖。這樣UI仍然能流暢更新計算也不阻塞。6. 開發(fā)過程中踩過的坑與最終自檢清單6.1 隨機種子可復現(xiàn)性比看起來重要置換檢驗是隨機算法但分析場景里可復現(xiàn)非常重要。同一份數(shù)據這次跑出來p0.038下次跑出來p0.047不管是因為隨機種子還是機器差異都會讓業(yè)務同事質疑結果。我在第一版里直接用Math.random()很快發(fā)現(xiàn)復現(xiàn)性很差。后來引入了帶種子的隨機數(shù)生成器用mulberry32實現(xiàn)成本極低function mulberry32(seed) { return function () { seed | 0; seed (seed 0x6D2B79F5) | 0; let t Math.imul(seed ^ (seed 15), 1 | seed); t (t Math.imul(t ^ (t 7), 61 | t)) ^ t; return ((t ^ (t 14)) 0) / 4294967296; }; }把這一函數(shù)替換Math.random并把種子暴露在界面上默認值比如20240101任何人重新打開頁面、設置相同種子就能復現(xiàn)完全相同的零分布和p值。這一點在團隊協(xié)作和論文復現(xiàn)里價值巨大。6.2 零分布直方圖與散點圖的視覺比例尺沖突我犯過的另一個問題是兩套圖各用各的配色。散點圖用的是藍橙直方圖為了表示零分布用了灰色觀測統(tǒng)計量豎線用了紅色這本身沒問題。問題出在直方圖的x軸范圍早期版本直接取d3.extent(permStats)動態(tài)范圍每次置換次數(shù)改變橫軸范圍就跟著飄移豎線位置也就無法和之前的畫面比較。解決辦法是給直方圖設置一個與統(tǒng)計量理論上界匹配的固定domain。當用戶切換統(tǒng)計量時豎線位置變化幅度很大有時會跑到可視范圍之外。我特意保留了這個出界行為而不是自動縮放——豎線出界本身就能傳遞一個信息當前統(tǒng)計量遠遠超出零分布的尋常范圍p值極小。這種保留沖突的做法反而更符合統(tǒng)計直覺。6.3 邊界問題與最終自檢清單最后整理幾個容易被忽略的邊界問題重復值數(shù)據中有大量相同值時置換分布的連續(xù)性會退化。均值差會離散化直方圖出現(xiàn)梳狀空隙視覺上很怪。可以在直方圖上疊加核密度平滑曲線或者如實標注數(shù)據存在重復值p值為保守估計。方差為零如果某組在某維度上所有值相同均值差依然能算但t統(tǒng)計量會出現(xiàn)除零代碼里對合并標準誤做了分母保護。樣本量差距懸殊A組2個樣本、B組500個樣本時置換檢驗的統(tǒng)計功效會很弱。界面上要顯示兩組樣本量避免用戶對結果過度解讀。多重組別實際數(shù)據可能不止兩組我目前只做了兩組對比。擴展思路是兩兩組合做多重檢驗再用Bonferroni或FDR校正這部分后續(xù)再迭代。最終我把這些教訓沉淀成了一份清單每次改完代碼都核對一遍隨機種子是否可復現(xiàn)。置換次數(shù)是否滿足p值精度需求。雙側/單側檢驗是否與業(yè)務語義一致。p值是否做了分子分母加一校正。直方圖domain是否穩(wěn)定不隨數(shù)據量變化跳變。散點圖顏色是否支持色盲用戶。大數(shù)據量時是否切到Canvas或Web Worker。每次交互后動畫狀態(tài)機是否正確復位——尤其防止重復點擊啟動多個定時器。把個人經驗放到最后說一句這類統(tǒng)計可視化項目最花時間的其實不是統(tǒng)計算法也不是D3的API而是如何讓統(tǒng)計邏輯和視覺交互真正咬合。置換檢驗本身是幾十行代碼的事但當你試圖把零分布、觀測統(tǒng)計量、p值這些抽象概念投影到屏幕上讓非統(tǒng)計背景的人也能一眼讀懂時每一個像素的選擇都藏著統(tǒng)計語義。先把統(tǒng)計原理吃透再來談畫圖順序千萬別顛倒。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
蜜桃臀av一区二区| 男人的天堂三级| A级在线视频| 91在线免费观看处女| 欧美激情内射| 久久久久久久久九九久孕交| 亚洲欧美日韩夜夜| 国内精品久久人妻性色av| 青草影院内射高潮| 大香蕉综合久久| 在线中文字幕极品av| 熟妇人妻精品一区二区| 2000亚洲男人天堂| 日韩三级一区| 蜜乳性色无码专日粉嫩骚逼AV| 国产精品夜夜夜| 女同亚洲欧美一二三区久久电影| 国产激情视频在线观看| 99久久久er直播网址| 欧美欧美啪啪视频| 色爱亚洲| 国产精品一区二区麻豆| 亚洲宗合电影| 九九精品美女高溯喷水| 色妺妺在线视频| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 美欧色综合| 亚洲精品 欧美精品| 97九色人妻| 高清无码 国产精品| 3PAV乱伦视频| 伊人一区二区在线播放| 蜜臀久久99精品久久久久久-DVD| 熟妇激情| 国产精品 午夜福利| 天天日夜夜爽| 大香蕉碰碰| 竹菊影视国产一区二区| 日日操免费视频| 91人精品妻入口| 日本欧美一区二区三区视频麻豆| 日本韩国国产精品一区| 免费?级毛片无码?∨蜜芽试看| 综合97| 日韩91网站| 有码专区最新中文字幕有码| www男人天堂| 亚洲色图A| 亚洲色婷婷综合久久一区二区三区| 九一性生活免费视频| 亚洲综合骚逼| 曰本特级特黄特色黄色A级网站高清在线免费看| 91色综合色| 五十路熟女,国产欧美精品区一区二区三区 | 蜜臀一二三区| 97精品网| 日韩国产成人自拍视频| 日韩一级片在线看| 国产女人高潮视频| 精品小视频在线| 亚洲在高跟鞋自慰久久在色线| 亚洲大色堂| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 69精品少妇一区二区三区蜜桃| 五月丁香六月婷综合成人综合| 丁香五月激情综合国产| 99热97| 欧美熟妇人体| 婷婷精品久久av影视| 九九九九九精品视频| 97香蕉网| 大地资源在线观看中文第二页| 欧美啪啪女女| 91丝袜熟女| 超碰97日韩| 内射老妇BBWX0C0CK| 女人喷水视频在线观看| 欧美日韩黄色片一区二区三区四区人与兽做爱| 智利AV在线网| 欧美成人A√在线一区二区| 牛牛aV| 国产 亚洲 丝袜 制服| 午夜精品视频777| a片久久久久久久久久久久| 麻豆黄站| 欲香欲色天天天综合和网| 一区二区三区在线资源| 日本福利二区视频| 成年人一级黄色毛片大全在线观看| 91情色| 精品国产乱码久久久久久免费| 日本一片一区| 天堂麻豆天美| 久久婷婷在线观看视频| 麻豆久久视频在线地址| 久久精品一区| 中文字幕AV片| 亚洲成人妻日韩在线| 亚州成人a∨| 婷婷色五月激情| 激情久久av一区av二区av| 人人看人人插| 成人a大片在线观看| 超碰97人人cao| 日本影视久久免费| 日本成人在线不卡一区二区三区| 欧美色图色综合| 97超碰色色| 无套后入双马尾| 五月天精品| 超碰在线日韩一区| 加勒比伊人| …亚洲黄色厕厕女女在线播…| 精品十八在线观看| 美女9118禁| 人人妻人人爽人人精品| 色欲av国内精品久久久久久| 91久久青青草原精品| 啊啊啊在线观看| 成人国产视频在线观看| 日韩黄色av中文字幕| 中文字幕日韩人妻视频| 口爆吞精在线观看| 日本在线不卡123| 欧美色66| 大香蕉在线SuP| 欧美精品欧美精品系列| 亚洲人综合19| 99久久亚洲精品无码毛片潘甜甜| 国产乱伦性爱区| 久久精品国产亚洲AV无码做| 青青草色AV| 久久久精品,3| 久久精品国产亚洲妲己影视| 欧美亚洲另类在线蜜桃| 极品色社| 九九视频黄色片| 久久久久人妻二区精品叶可怜| 永久免费av无码网站国产app| 久久久久久亚洲Av无码精| 懂色中文一区二区三区| 国产成人久久久精品免费AV| 欧美日韩人人精品| 精品人妻一区二区蜜桃视频| 中文字幕三四区| 欧美日韩午夜精品一区二区三区 | www四虎| 熟女中出视频| 国产尤物在线三区| 秋霞一级鲁丝片A片| 日本成人电影资源网| 婷婷AV一区二区三区| 日韩啪啪啪啪啪| 歐美一級亂黃99在綫精品| 龙兴卡官方查询| 91丝袜视频在线观看| 中国农村熟妇毛片视频| 曰韩av中文字幕专区| 久久久艹艹艹| 97网站在线观看| 国产九九久久久精品| 久久久久久久久久久999| 久久久久白虎| 日va操| 国内精品不卡无毒99999| 九热超碰| 激情五月天插| 久久久久921| 国产吹潮女在线观看| 精品人妻一区二区免费蜜桃视频| 午夜电影在线观看无码专区| 色第一页| 亚洲熟女性高潮久久久| 国产综合久久久鬼色| 自拍六区| 超碰精品在线| 久男人久久| 国产精品99精品视频网站| 99色色网| 欧美亚洲中文字幕| 无码日韩网站| 999 久久久| 一本色道综合久久欧美| 大香蕉97久久| 欧美春色| 亚洲成av人片色午夜乱码| 久久久99999久网站| 1769一区| 干b在线性社区| 亚洲天堂男人天堂| 青青草视频久久| 久久粉色| 一二三四免费视频| 日韩啊V| 又黄又爽在线观看视频| 欧美的精品的视频| 91亚洲黑人| 亚洲精品乱码久久久久久蜜桃麻豆| 蜜乳Av成人片网站| 欧美91网站| 日韩一级性爱无码| 成人网欧美风情| 欧美国产精品久久九九| 中文字幕av久久爽Av| 色与欲影视| 91在线页| 高潮的A片激情扒开一区| 亚洲免费日韩在线一区二区| 亚洲精品乱码线路中文字幕 | 亚欧成人综合影院| 91N综合网在线| 另类 日韩 熟女| 欧美激色| 99热99re超碰精品| 美女尤物人人操| 欧美极品少妇| 亚洲AV成人在线| 网友自拍第1页| 无码9区| 国内毛片热久久思思热| 欧美一区二区三区成人性生活| 97人人操人人摸人人爱| 日本在线15p| 99综合网| 岛国免费视频在线| 亚洲伊人久久精品影院| 欧美做爰无码A片视频| 国产精品一区二区麻豆| 中文字幕 av v| www.91人妻.com| 亚洲国产青青| 亚洲日本成人动漫| 国产精品午夜福利亚洲综合网| 欧美韩国你懂得在线| 1禁看欧美黄片免费看| 96超碰网| 国产精品高潮久久AV| 日本色色的视频| 少妇久久久久久久久| 蜜桃中文字日产乱幕4区| 搡老人老9丨女老熟人| 成人三级片一区二区三区视频| 欧美嫩性色| 曰韩精品视频一区二区| 国产精品夜夜| 日韩精品电影| 欧美精品成人亚洲| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 亚洲欧美综合网站| 色九九九综合| 男人的天堂亚洲| 国产AV色黄看到爽| 欧美资源| 国产sv美女内射| 五十路熟女工口| 色色色999| 国产51色综合久久免费| 又大又大又大又粗爽高潮观看 | 69人妻精品丰满熟女区| 五月天婷婷基地| 神马久久久久久伦理片| 久草午夜| 综合亚洲网| 国产精品天干天干综合网麻豆| 色色色欧美| HEYZO高无码国产精品227| 男人的天堂一区三区| 日韩成人人妻网站| 亚洲av总站| 97精品综合| 天天色,天天干,天天干| 日韩强奸av| 欧美春色| 久久女女| 超碰色97| 97久久超碰亚洲| 999综合色| 人人妻人人操人人乐| 久操不卡视频| 乱伦AVxx| 久久精品国产亚洲AV高级北京| 免费看黄片现成| 超碰78| 久久黄黄黄| 97爱碰| 操逼精品视频| 宗合情欲网| 欧美另类色| 亚洲欧美激情另类色图| 殴美,日韩国产伦精品| 免费黄色A片| 东亚亚洲无码高清| 99久久久er直播网址| 无码丰满熟妇一区二区浪潮AV| 日本孕妇一区二区视频操逼免费看 | 91精品免费| 久噜噜| 操操操操网黑人| 狠狠图片青青草| 九九九久久久久| 大香蕉宅男伊人| 久久色一区二区| 9999亚洲电影| 五十路成人在线视频二区三区| 天堂网 主播 亚洲| 天天操天天干美女网址导航| 日韩91网| 中文字幕97| 日韩免费福利在线观看| 亚洲色图欧美色图日韩色图| 成人免费福利网站国产| 国产精品交换一区二区| 久热久一区二区三区| 国产精品久久久久绯色| 亚洲精品一卡二卡三卡福利视频网站| 欧美97日韩精品| 91精品久久久久久77777| 人妻熟妇久草在线| 久久区| 国内毛片欧美香蕉精品| 天天操人人操狠狠插| av绯色| 91黑人无码激情在线| 色墦五月丁香| 欧美老妇女内射网址| 欧美乱妇狂野欧美在线视频| 色婷婷日韩精品一区二区三区| 欧美精品庄| TS人妖另类精品视频系列| 成人26uuu| 天天色综亚洲91污| 蜜桃久久综合视频| 999九九精品| 综合亚洲网| 韩国一级做a久久久久| 亚洲小电影免费涩涩成人在线高清 | 天天情欲宗合网| 99re视频这里只有精品| 国产极品粉嫩馒头一线天av| 中文字幕免费看大片| 97AV爱| 国产一区二区久久| 久久精品店| 国产操偷| 久久蜜色情在线视频xxx免费观看| 老女人91| 偷拍 欧美 日韩| 国产精品自在自拍视频| 欧色综合| 欧成人精品H无码| www.av在线视频| 夜夜夜久久| 亚洲在线A| 亚洲乱色熟女一区| 玖玖视频在线资源一区二区三区| 日韩欧美天堂| 日本操逼视频不卡直接放| 丁香九月激情| 国产自产22区| 精品中文字幕第一页| 97久久精品亚洲| 亚洲欧美综合网站| 久久美女国产| 传媒免费一区二区三区| 国产精品久久久久久高清无码免费看| julia高潮后不停追击中出| yy少妇精品久久| 思思热在线视频免费| 久久九九综合| 欧美淫乱视频| 国产精品亚洲免费| 亚洲综人网| 亚洲欧美自拍偷拍| 夜夜狠狠躁日日躁色视频| 人妻铁牛TV| 五月丁香啪啪啪| 欧美性五月| 国产高清在线观看欧美| 综合激情一一91| 中文字幕一区二区日韩网| 久久精彩视频9| 日日夜夜摸| 91久久久久免| 校园春色 欧美| 99只有精品| 欧美日韩妖精91com| 狠狠色噜噜狠狠狠狠狠色综合久久| 久久久久久久久九九久孕交| 国产婷婷综合在线观看| 久偷拍| .精品人妻一区二区三| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 狠狠2050在线观看| 国产精品无码av在线| 蜜屁Av| 久操视频资源站公开| 日韩精品国模| av资源在线观看少妇| 国产一区二区精品久久久不卡蜜臀| 国产精品久久成人免费| 夜夜嗨老熟女AV一区二区三区| 国产精品自在线发布| 九九人妻| 激情五月天色播| 99999re| 91逼逼女人91| 变态乱伦伪娘灌肠一区二区| 果冻传媒一区二区三区| 日本久久精品| 老女人综合网| 欧美日韩人妻少妇 一区二区三区| 男人高清无码一区二区| 熟妇人妻精品一区二区视频色欲| 久久久18禁| 懂色中文一区二区三区| 欧美激色| 五月综合色| 最新亚洲人成网站在线影院| 香蕉视频精品亚洲一区二区三区在线播| 日本午夜福利影院| 97超碰大| 中文字幕人妻色偷偷久久皮 | 中文字幕少妇色| 久久国产熟女影院| AV女资源| 在线视频97| 香一区二区三区| 国产精品高清2021在线| 囯产精品强| 超碰99在线观看| 亚洲 欧美 精品专区 极品| 欧美在线啊啊啊| 免费av大片| 精品福利| 高清不卡 中文 人妻| 免费观看有码高清视频| 亚洲色图加勒比| 思思热国产在线视频| 日韩本不卡视频在线观看| 9久久9综合| 黄色欧美性爱视频| 亚洲熟伦熟妇AV无码春色| 日韩 欧美 国产 麻豆| 大香蕉色十月| 欧美日韩第一页| 国产精品麻豆免费视频| 久久免费9| jiujiujiujingpin| 91丝袜美女| 色爱国产| 久久一区二区三区入口| 亚洲啪啪视频免费| 久久97超碰| 精品大全99999| 亚洲淫色网中文| 日本三级韩三级99久久| 啊v视频在线观看| 人妻 丝袜美腿 中文字幕| 精品午夜福利| 亚洲熟女诱惑| 亚洲激情深爱文学小说网站| 超碰无码五月97| 久草资源在线视频官方总站日韩丝袜美腿| 色色无码| 久草婷婷| 在线播放成人网站| 久久久久久AⅤ无码免费肉站| 少妇高潮流水av免费| 久久男人的天堂| 久久女人| 天天看夜夜看日日干| 91 国产丝袜在线播放-百度| 亚洲中文电影| 欧美精品久久96人妻无码| 五月婷婷丁香六月| 亚洲图片偷拍视频区| 一区操逼| 一区久久久二区| 大香蕉啪啪网| 五月天偷拍| 日本五区不卡| 和协影院中文字幕三区| 人人操人人摸人人骑| 嗯,啊。舔我逼| 色婷婷av在线观看| 久久久97| 日韩三级一区| 青青爽| 日日夜夜干| 99精品在线观看| 日本三级中国三级99人妇网站| 97最新在线播放视频| 视频二区熟女人妻| 久久9亚洲| 艾草av| 六月天婷婷| 乱色视频中文字幕| 日日干夜夜干| 亚洲最大的黄色电影网站。| 九九热五区| 蜜臀久久99精品| 欧美中字不卡| 国产精品日日摸天天碰| 野狼福利社区| 欧美五十路熟| 欧美亚洲中文字幕| 六九九九| 欧美日韩精品国产91| 少妇内射视频| 欧美色九九| 欧美乱伦专区| 一级aaaaa欧美中文字幕录像片| 八人操人人摸人人看| 人妻熟女av国产网站| 日本3级一区二区免费| 99精品在线观看| 91丝袜美腿网站| 青青草色插素人| 天天干夜夜操一区二区| 很很操在线| 永久免费发布性爱网| 99视频自拍| 99999精品成人| 日本精品无码三级网站| 91性高潮久久久久久久久| 夜夜爽爽爽| 熟女精品一区二区在线观看| 超碰人妻久久| 台湾成人无码AV| 免费精品99| 人妻酒店出差被中出免费在线播放| 免费国产| 精品无码欧美三级| 色色色色网站| 丁香五月天久久精品视频一区二区三区| 精久久久| 在线播放成人高清免费视频| 五月综合婷婷久久网站| 久久超碰亚洲人| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 一起草视频在线| 久久精品国产99精品亚洲蜜...| 五月天色色色| 欧美熟女丝袜| 一本色道无码DVD中文字幕| 人人操人人摸人 | 中文字幕av色| 骚日日av| 麻花豆传媒剧国产MV出差| 日本超碰在线国产一区| 玖玖爱伊人玖玖爱| 先锋激情∨在线视频播放| 五月婷婷丁香| 欧美,日韩,中文,另类| 91人妻精华帖| 97干色天堂| 男人的天堂免费| 日本午夜福利影院| 国产精品粉嫩福利在线| 久久精品国产99精品亚洲蜜...| 禁片 高清 在线观看视频网站| 国产天天噜一噜久久久| 国产人妖视频一区在线观看| 青青草国产亚洲精品久久| 久久精品电影在线| 综合久久中文字幕综合日韩精品| 熟妇xxxxx性春色| 亚洲欧美精品91| 亚洲日精品| 久久香蕉综合一本到3atv| 欧亚成人在线视频| 波多野结衣一级视频| 97硬碰| 91久久久亚洲| 不卡码视频| 成年人网站在线免费观看| 97超碰国产精品| 78超碰| 67914亚洲精品| 99av| 18一区二区三区| 亚洲成人激情小说视频| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 亚洲午夜蜜臀| 亚洲日本韩国在线| 成人三级片一区二区三区视频| 亚洲操人| 熟女精品日韩一区二区三区| 大香蕉色十月| 亚洲不卡三级手机播放| 后入内射蜜桃臀| 国产美女裸体秘 永久无遮挡| 狠狠搞 亚洲91| 新久久AV| 国产精品久久久午夜夜伦鲁鲁| 一区二区娱乐网站| 99re免费| 国产精品高潮久久AV| 18禁美女裸体无遮挡啪啪| 美女丝袜激情小说| 欧美色婷婷| 久久78| 97精品第3页| 亚洲乱码尤物193YW| 9 1果冻精品视频| 乱老女人一区二区视频| 午夜无码精品免费看性色| 一牛一区二区三区久久| 精品偷拍13p欧美dodk视频| 任我爽在线视频免费观看| 婷婷深爱五月| 精品免费一区| 精品人妻一区二区三区视频| 欧美精品自慰系列寂寞少妇| 国产女人视频三四五区| 91美女在线视频| 无遮挡猛进视频免费无限观看| 日本精品免费一区二区三区四区| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV| 亚洲无码太久| 情色五月天就去干| 天天日B狠狠操| 岛国大片国产| 久夜操| 久久亚洲不卡一区二区三区| 日韩亚洲Av人人夜夜澡人人爽| 欧美激情视频一区二区| 成人在线视频一区| 婷婷五月天小说| 蜜乳av一区二区| 91性网| 日本九九久久99| 五月天婷婷影院| 性爱乱伦视频免费| 久久久久久97| 91熟女视频网| 超碰中文字幕人妻草一区| 久久婷五月天| 亚洲国产精品成人无码久久久| 97爱综合| 美女十八禁| 小草av不卡亚洲二区| 大胆91| 在线观看av区| 日本三级一区二区 在线| 青娱乐啪啪视频| 久久精品国产97欧美精品亚洲| 欧美少妇第一页| 久久精品国产精品亚洲艾通辽熟妇 | 人人看人人爰人人操| 射综合网| 啊啊啊啊好疼| 久久久三区二区一区| 99色婷婷中文字幕乱色| 精品熟女一区=区三区| 精品成人av一区二区三区在线| 亚洲精品三区在线观看| www国产无码| 久久99九九九九6666免费观看软件| 欧美男人亚洲天堂| 日韩美女,国产传媒,视频一区| 99久久com免费视频′| 激情五月婷| 一区二区三区机械有限公司| 天天日B夜夜干B时时操B| 日日日日做夜夜夜夜无码| 亚洲黄片免费在线播放| 日韩免费a级毛片无码a∨| 97亚洲中文| 97干在线视频| 国产熟女无套内射| 欧美日韩久久精品爱爱| 情色图区| 久草看看看| 大香蕉淫人| 亚洲视频精选| 免费视频一二三区| 999综合网| 九九九九热| 欧洲在线性爱视频| 精品国模无码| 男女猛烈无遮掩视频免费软件| 日韩操啪| 国产三级资源在线观看| 青娱乐欧美激情一区二区| 国产一区二区三区白丝| 在线欧美69V免费观看视频| 精品午夜福利国产一区二区在线观看 | 激情文学小说一区二区 | 97爱碰| 97视频免费在线| 久久这里只精品| 欧美在线天堂| 欧美不卡在线一区二区| 亚洲欧洲综合成人av一区| 狠狠色狠狠色狠狠五月| 亚洲偷拍自拍在线视频| 色婷婷五月天| 久热久一区二区三区| 一区 欧美 日韩 麻豆| 媚薬在线视频麻豆| 久久久精| 蜜臀99久久精品久久久久| 中国AAAAAA黄色片| 国产精品黄色三级av| 777奇米影视777四色| 九九综合色| 不卡九肏| 曰本道人妻久久久在线不卡色视频 | 亚洲国产精品久久久久久久久久| 亚洲熟女国产综合另类| 欧美日韩亚洲五月天婷婷| 天天操熟妇| 啊啊啊好多水| 大黄片做爱的大的| 九热视频| 欧美视频第二页| 舔人妻中文免费视频| 大香蕉欧美| 操逼操逼逼操操逼91 | 98色网| 性色av一区二区| 乱人乱色一区二区三区免费| 国产精品国产亚洲区艳妇糸列| 国产综合网站在线播放| 亚洲男人bt天堂| 日本久久综合| 亚州男人天堂| 把腿张开老子CAO烂你| 天天狠| 啊嗯嗯啊好大好爽| 中英熟女操女| 日韩在线观看中文字幕视频| 97se综合网| 日日骚网站| 亚州操逼图| 国产精品情侣啪啪| 97欧美资源| 日本东京热加勒比久久| 青青爽| 欧日韩一二三f区| 岛国激情视频在线观看| 天天综合91在线| 熟女91网| 国产视频一区二区三区在线免费观看| 大香蕉伊人久久| 色眯眯av| 一级做a爰片久久毛片图片| 亚洲天堂区| 人人妻人人色一区二区三区| 欧美日韩黄片精品在线| 91neishe| 啊啊啊啊好疼| 国产一级αv免费看片| 性生活无遮挡纯毛片在线看| 91性色| 69人妻精品一区二区绯色| 五月天亚洲网| 日本日逼高清| 国产农村妇女精品一| 久久久久久性爱免费视频| 色色色色综合网| 91老熟女91老女人| 色网在线视频观看免费| 91麻豆天美国产| 少妇久久久| 99色色| 美女91网址| 美国日韩黄色片| 97超碰中文| 自拍视频一区在线观看| 超碰综合色| 国产最新小视频在线播放下载| 另类亚洲图色| 超碰在线欧美性爱激情| 爱干爱射网啊啊啊| 男女啪啪啪18禁网站| 啊啊啊com| 日本人妻丰满熟妇久久久久久| 曰韩精品九九无码| 欧美狠狠| 日本三级日本三级三级人妇四虎| 欧美精品宗合| 67194无码不卡| 人妻二区| A男人的天堂| 多乙久久久久久| 亚洲97网站| 激情专区综合| 色欧洲| 久久久久久久 九九九九九九九| 蜜臀久久99精品久久久电影| 国产久久久9999| 影音先锋日本一区二区| 亚洲老司机123专区| 亚洲成人一区二区精品| 日本高清视频在线观看黄已三辽| 欧美性爱另类综合| 91精品91久久久中77777| 欧美综合97www| 国产精品福利视频播放| 日本精品九九九| 国产精品秘 福利姬在线观看| 少妇三p| 韩日男人的天堂| 欧美成人A天堂片在线观看| 校园春色欧美| 好吊妞转入那个网| 国产美女口爆吞精视频| 亚洲清纯唯美| 精品久久久久久亚洲| 亚洲一卡二卡在线免费| 亚洲电影91| 丁香五月影院| 操人人| 九九九不卡| 日韩99999色| 91社区拍啪人妻| 粉嫩av一区二区三区天美传媒| 亚洲高清欧美总合| 91狠| 亚洲国产精品9999在线观看| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 另类图片综合| 亚洲天天影视综合网| 无码伊人久久大杳蕉中文无码| 大香蕉久久| 青青青艹在线视频| 亚洲人成网www| 日本一级婬片试看三分钟| 久久黄人人爽视频| 国产亚洲日本| 67914亚洲精品| 人人操人人搞人人草| 天天射日日干| 97伦乱| 99re69| 人妻少妇精品一区二区三区| 黄色片,com| 超碰97亚洲| 欧美综合自拍亚洲综合图| 青青草吊丝| 97人人射| 日操粉逼逼| 欧美不卡在线一区二区| 亚洲人妻精品一区二区| 天天射夜夜| 夜夜狼人妻| 人人色97| 日韩av乱伦| 郑州宾馆老熟女露脸啪啪| 日韩三级伦理中文字幕| 99re久久| 久久久性少妇| 香蕉免费一区二区三区不读| 91女人的网站| 天天色综合图片| 人妻熟女av国产网站| 狠狠中文字幕| 在线观看亚洲成人精品| 试看60秒 爽| 国产sv美女内射| 欧美淫乱视频| 亚洲AV在线资源| 97碰碰日本乱偷人妻中文的| 日韩欧美成人大香蕉| 国产999精品久久久久久| 大香蕉乱伦视频网| 日本精品高清一二区一本到| 爽极品影院| 涩涩涩综合| 激情五月综合开心五月| 中文乱码字字幕在线第5页| 91丝袜在线播放| 久久嫩草| 国产99热| 亚洲激情视频| 清纯唯美亚洲综合| 亚洲天堂资源网| 久久精品无码专区| 久久黄人人爽视频| 欧综合网| 天天噜| 日本一二区不卡| 色婷婷一区二区三区久久| 超碰久超碰久| 五十路一区无码| 91丝袜美女视频| 欧美99999| 日韩国产精品人妻无码久久久| 中文字幕在线观| 中国一级αV| 一级性爱视频免费观看| 97无码视频在线播放| 国产美女在线精品免费看| 在线人成亚洲视频免费观看| 乱操乱伦AV| 久思思热视频在线观看| 综合 欧美 亚洲 日本| 秋霞免费AV| 国产做?爰片久久毛片?片美国| 天美麻花大全视频| 中亚精品极乱| 日韩精品高清资源在线| 一区,二区,三区视频| 欧美在线 亚洲| 亚洲成人在线乱码色午夜| 丰满人妻一区二区三区免费| 女性91网站| 老子午夜伦不卡影院| 精品久久久久av影院| 综合欧美日本三级| 亚洲 欧美 91| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 私人尤物在线精品不卡| 影音先锋少妇| 亚洲福利中文字幕在线| 精品久久青青草| 日本97久久久精品| 极品AV网站在线观看| 婷婷人妻激情| 免费A片三p视频| 免费看国产曰批40分钟怎么下载| 欧美 亚洲 偷拍自拍| 东亚亚洲无码高清| 婷婷五月天激情网| 天天干2区3区| 蜜臀一二三| 夜夜欢天天干| 日本三级A片网站com| 性爱av网站| 刺激性视频黄页| 蜜桃精品一区二区三区久在线| 亚洲男人在线观看天堂| 天天视频网站黄| 午夜福利成人免费视频| 亚洲中文字幕有码视频一区二区三区| 2017大香蕉国产精品久久| 99热精品在线观看| 黄色视频60分钟| 99这里有精品视频| 天美传媒Av在线| 性猛交| 老司机老司机午夜影院| 99热色这里只有精品| 精品中文一区二区| 亚洲精品97| www.人人cao| 99re8免费高清在线| 亚洲色图A| 操逼操逼逼操操逼91| 少妇99成人麻豆| 91亚洲丝袜熟女| 日韩性爱1级片视频| 欧美亚洲综合色| 成人一级二级| 国产精品久久久久无码Av网曝门| 日韩操人| 97热视频在线观看| 青娱乐福利99| 欧美国产日韩清纯唯美| 五月天欧美色图| 黄片视频,下载| 欧美制服另类丝袜| 九九九九九九综合| 久操视频资源站公开| 欧美午夜色妇色鬼| 天天综合-91入口| 久久婷色| 丰满欧美放荡少妇在线| 久久首页| 爱爱动态试试看6 0秒| 综合网欧美| 9 9精品一区二区三区| 久艹99| 亚洲1区2区三区高清中文字幕| 欧美一二三区四五区| 亚州综合色| AV中文在线可看| 精品国产乱子伦一区二区三区,精品一| 黄片aaaaa一区| 老熟妇一区二区三区啪啪| 啪啪啪精品| 麻豆福利视频导航| 国产无码精品成人| 蜜桃久久久久久久| 日韩性爱小视频| 国产超碰国产97| 97国产超碰| 97天天搞在线| 极品国产内射| 91大神电影天堂| 久久久久久久强迫| 男人天堂站| 亚洲成人黄色在线观看| 91青视频| 日本国产亚洲一区在线观看| 亚洲AV乱码专区国产噜噜亚洲| 欧美天天| yazhousetuoumei| 亚洲一卡二卡在线免费| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 精品欧美老熟女一二区| 国产人伦精品一区二区三区 | 成年男人的天堂| 亚洲精品国语在线播放| 伊人久久国产免费观看视频| 1000部熟女视频在线观看| 中文字幕在在线观看网站| 亚洲国产成人精品999| 色偷偷色偷偷欧美日韩| 无码精品人妻一区二区三区妖精| 日韩中文字幕宗合在线| 破苞ⅩXXX性无码动漫无码| 大香蕉99re| 激情自拍 校园春色| a片自拍直播视频| 97一区二压| 色爱国产| 日本不卡二区| 粉嫩AV一区夜夜嗨| 日韩欧美国产高清视频| 久久黄人人爽视频| 欧美日韩黄色片一区二区三区四区人与兽做爱| 三级精品三级在线观看| 日韩中文9| 99只有精品| 久久久精品91八戒| 国产麻豆一区二三区| 亚洲激情综合| 91精品无码久久久久久久| 小骚逼被操的爽不爽| 久99视频| 超碰免费人妻人人| 在线 欧美 亚洲| 一区黄二区黄| 浪人综合网| 久久人| 在线岛| 91色综合激情| 最新av网站在线观看| 校园春色综合香蕉| 色爱国产| 免费无码婬片AAAA片直播色戒| 综合天天网| 97人人草| 欧美日韩另类在线播放| 亚洲激情欧美色图| 91色黑人少妇| 中文字幕亚洲在线一区 | 67914在线精品观看| 极品美女福利在线观看| 日本一区二区中文字幕久久| 国产精品视频在线播放| 日本三级韩国三级99| 在线一道啪| 亚洲加勒比久久日本道| 欧美第二页午夜| 青青草原狼av| 熟女视频久久| 黑人白女精品一区| 天天噜| 九九热午夜欧亚国产视频| 99re不伦| 中文字幕在线观看丝袜| 97人人操人人摸| www.av家庭乱伦| 欧美大的香蕉有线电视视频| 免费成人在线熟妇网| WWW4虎| 婷婷丁香六月| 福利在线黄片| 四虎国产精品永久地址入口| 久久专区| 天天干夜夜鈤| 哑洲在线| 夜夜 中文视频rt| 91网亚洲| 亚洲精品819| 五月婷婷色| 国产激情av女片自拍| 日本欧美韩国国产在线| av影片在线观看不卡| 麻豆熟妇乱妇熟色A片在线看| 激情人妻另类| 亚洲成人色情五月天丁香花| 色女网日韩| 激情四射婷婷四五月天| 丁香五月久久| 性爱1区| 国产女生在线| 亚洲国产高清福利视频| 超碰在线观看av不卡| 无码人妻一区二区三区色欲aⅴ| 日本 免费 一区二区三区 久久香蕉| 亚洲国产精品成人久久蜜臀| 男人的天堂久久| 少好三P| 黑人精品久久97| 二级久久网| 久久久av爱| 91在线色| 四虎国产成人精品免费一女五男| 乱理日韩中文| 96AV久久久| 欧美亚洲一区二区久久久婷精品大包诱| 久草久热| 久久精品免费| 亚洲国产综合久久久性感熟妇| 97久久精品亚洲| 95精品在线| 97免费在线视频在线观看| 国色天香av| 久热热| 大逼色网站| www.91视频网| 超碰在线一区二区| 久久色网| 一级性爱视频免费在线| 综合久久久久久久久91| 日韩黄色片子| 日韩乱伦AⅤ| 久久久麻豆精品| 天天天天天干夜夜夜夜夜操| 婷婷99狠狠| 日本熟妇熟色97一本在线观看| 欧洲射精91| 精品人妻一区春色| 天天操熟妇| 好爽视频在线观看| 久久婷婷电影网| 一级@啪啪视频| 无码国产精品久久久久| 色吧综合网| 97高清啪啪| AV99热18这里只有精品| 欧美高潮| 少妇的嫩逼图片| 2017av无码免费无线播| 亚川综合视频| 天天操天天舔| 欧洲无码一区二区| 激情欧美日韩女同久久| 日日玩天天干| 国产剧情在线| 色欲无码人妻日韩欧美精品| 在线国产探花| 在线人妻熟女一区二区三区四区五区| 91高跟美女在线播放| 丝袜视频网国产90| 天天综合91| 色欲蜜臀AV| 国产一区96在线| 欧美97在线观看| 欧美,日韩,中文,另类| 操逼操逼操| 国产男人又猛又粗又爽| 国产欧美伊人| 日韩 女同 综合| 综合网91|