-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
120 lines (99 loc) · 6.96 KB
/
index.html
File metadata and controls
120 lines (99 loc) · 6.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>我的学术主页 & 科研博客</title>
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script>
window.MathJax = {
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']],
displayMath: [['$$', '$$'], ['\\[', '\\]']],
processEscapes: true
}
};
</script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</head>
<body class="bg-gray-50 font-sans text-gray-800 antialiased">
<header class="bg-slate-800 text-white py-12">
<div class="max-w-4xl mx-auto px-6">
<h1 class="text-4xl font-bold mb-2">潘旭东(Xudong Pan)</h1>
<p class="text-xl text-slate-300">硕士研究生 | 科研笔记 | 技术分享</p>
</div>
</header>
<main class="max-w-4xl mx-auto px-6 py-10">
<section class="mb-12">
<h2 class="text-2xl font-bold text-gray-800 border-b-2 border-blue-500 pb-2 mb-4">关于我 (About Me)</h2>
<p class="text-gray-700 leading-relaxed mb-4">
你好!我是一名在读硕士研究生。建立这个博客的初衷是为了记录和分享我的学术心得、代码实现以及文献阅读笔记。
</p>
</section>
<section class="mb-12">
<h2 class="text-2xl font-bold text-gray-800 border-b-2 border-blue-500 pb-2 mb-4">研究方向 & 技术栈 (Research & Skills)</h2>
<ul class="list-disc list-inside text-gray-700 leading-relaxed mb-4 space-y-2">
<li><strong>研究领域:</strong>大地测量学 (Geodesy) 、重力场反演以及水文领域。</li>
<li><strong>算法与模型:</strong>熟练掌握机器学习 (Machine Learning) 相关算法在科学数据处理中的应用。</li>
<li><strong>工具栈:</strong>熟练使用 Python 进行数据处理与科学可视化 (NumPy, Pandas, <strong>PyGMT</strong> 等);精通 <strong>LaTeX</strong> 论文排版。</li>
</ul>
</section>
<section>
<h2 class="text-2xl font-bold text-gray-800 border-b-2 border-blue-500 pb-2 mb-6">科研随笔 (Recent Posts)</h2>
<article class="bg-white p-6 rounded-lg shadow-sm border border-gray-100 mb-6 hover:shadow-md transition-shadow">
<h3 class="text-xl font-bold text-gray-800 mb-2">时间序列分析:样本自相关函数 (ACF) 的数学表达与 Python 实现</h3>
<p class="text-gray-400 text-sm mb-3">发布于 2026-03-29</p>
<div class="text-gray-700 leading-relaxed space-y-4">
<p>为了量化时间依赖性,我们需要计算相关时间序列 $r_{ij}(t_n)$ 的样本自相关函数 (ACF)。设 $\Delta t$ 为采样间隔(此处 $\Delta t = 1$ 个月),$k$ 为非负整数滞后阶数。</p>
<p>相关时间序列的样本均值定义为:</p>
<div class="bg-gray-50 p-4 rounded overflow-x-auto text-center my-2">
$$ \mu_{ij} = \frac{1}{N} \sum_{n=1}^{N} r_{ij}(t_n) $$
</div>
<p>根据 Wilks 等人的研究 [1],滞后 $k\Delta t$ 的样本自相关定义为:</p>
<div class="bg-gray-50 p-4 rounded overflow-x-auto text-center my-2">
$$ \mathrm{ACF}_{ij}(k\Delta t) = \frac{ \sum_{n=1}^{N-k} \bigl(r_{ij}(t_n) - \mu_{ij}\bigr) \bigl(r_{ij}(t_{n+k}) - \mu_{ij}\bigr) }{ \sum_{n=1}^{N} \bigl(r_{ij}(t_n) - \mu_{ij}\bigr)^2 } $$
</div>
<p>其中 $k = 0,1,2,\dots$。$\mathrm{ACF}_{ij}(k\Delta t)$ 衡量了间隔 $k\Delta t$ 时间的 $r_{ij}(t_n)$ 与 $r_{ij}(t_{n+k})$ 之间的线性相关程度。</p>
<h4 class="text-lg font-bold text-gray-800 mt-8 mb-3 border-l-4 border-blue-500 pl-3">Python 代码实现</h4>
<p>在实际的科学数据处理中,我们可以直接调用 <code>statsmodels</code> 库来快速计算序列的自相关系数。以下是一个处理时间序列数据(例如 Pandas Series 格式的观测值)的基础示例:</p>
<div class="bg-slate-800 rounded-md overflow-hidden my-4 shadow-inner">
<div class="flex items-center px-4 py-2 bg-slate-900 text-slate-400 text-xs font-mono">
<span>python</span>
</div>
<pre class="p-4 text-slate-50 text-sm font-mono overflow-x-auto"><code>import numpy as np
import pandas as pd
import statsmodels.api as sm
# 假设 data 是我们的一维时间序列观测数据
# data = pd.Series(...)
max_lag = 24 # 设定最大滞后阶数
# 调用 statsmodels 计算 ACF
# 设置 adjusted=True 以计算无偏自相关(分母为 N-k)
autocorr_values = sm.tsa.stattools.acf(data, nlags=max_lag, adjusted=True)
print(f"前 5 个滞后阶数的 ACF 值: {autocorr_values[:5]}")</code></pre>
</div>
<p class="text-sm text-gray-500">提示:计算出 <code>autocorr_values</code> 后,可以结合 <code>matplotlib.pyplot.stem</code> 轻松绘制出 ACF 图像,以便直观分析时间序列的记忆效应。</p>
</div>
<div class="mt-8 pt-4 border-t border-gray-100">
<h4 class="text-sm font-bold text-gray-500 uppercase tracking-wider mb-2">参考文献</h4>
<ul class="text-sm text-gray-600 list-none space-y-1">
<li>[1] Wilks, D. S. (2011). <i>Statistical methods in the atmospheric sciences</i> (Vol. 100). Academic press.</li>
</ul>
</div>
</article>
<article class="bg-white p-6 rounded-lg shadow-sm border border-gray-100 mb-6 hover:shadow-md transition-shadow">
<h3 class="text-xl font-bold text-gray-800 mb-2">使用 PyGMT 绘制高质量地学图件的踩坑记录</h3>
<p class="text-gray-400 text-sm mb-3">发布于 2026-03-15</p>
<p class="text-gray-700 mb-3">本文记录了如何使用 Python 调用 PyGMT 库绘制精美的海岸线与重力异常图,并解决了版本依赖的一些问题...</p>
<a href="#" class="text-blue-500 hover:underline">阅读全文 →</a>
</article>
</section>
</main>
<footer class="bg-slate-100 text-center py-6 mt-12 border-t border-gray-200">
<p class="text-slate-500 text-sm">
© 2026 Pxudong. All rights reserved. <br>
Powered by HTML5 & Tailwind CSS.
</p>
</footer>
</body>
</html>