俺的学习笔记

Friday, December 14, 2018

Excel解除不了的链接的对应方法/エクセルの解除できないリンクへの対処法

在打开有些Excel文件的时候,每次都会出现这样的提示:
あるエクセルファイルを開くとき、いつも下記のようなメッセージが表示され。
因为很烦,于是你想去掉它。选择更新,于是出现如下窗口:
面倒くさいので、非表示支度、「更新」を選んだ。下記のエラーが出てきた。
更新失败,预料之中。既然更新失败了,那编辑一下链接,删掉它不就可以了?
「更新できません」、予想通りだね。更新できるなら、編集して、削除すればいいのでは?
于是你点”编辑链接“。
「リンクの編集」をクリック。
一切似乎都进行的很顺利,你按了解除链接,这个链接就应该解除了吧。于是保存、关闭。
うまくいってるわ、「リンクの解除」をクリックし、保存、ファイルを閉じる。
但是下次当你满怀希望再次打开这个文件时,该死的提示又出现了。
ところが、次回開くときに、あれ、いやなメッセージがまた出てきた。
就这,明显是个BUG,从Excel问世就有的,微软特么到现在都还没有修改,而且,你想找到到底是哪里链接了也找不到。
これ、明らかにBUGだよね、Excelが生まれてから今まで、あのマイクロソフトは修正できず、しかも、リンクを張っているところも見つからない。バカ!
俺花了一上午的时间终于找到了问题所在,作为备忘录记在这里。
俺は午前中半日をかけてやっとわかった。ここでメモしよう。
Excel的链接有很多中:
エクセルの中はいろんなリンクがある:
1.最常见的,在cell里面的链接
1.よくあるのは、セルからのリンク
2.由于Excel可以为cell命名,cell名里也特么可以放链接
2.エクセルではセルを命名することができるため、セルの名前にもリンクを張られる
3.Object啊,图形里面也可以放链接
3.シートの中にオブジェクト、チャートがある場合、その中にもリンクがある可能性がある。
1最好办,搜索一下就可以发现了。2可以在Excel的命名管理里面找到,很明显就可以看到:
1の場合は最も解決しやすい、検索することで、リンクを見つけられる。2はエクセルの「名前の管理」機能を使うと解決できる。
如果原来文件找不到了,把链接删掉即可。
リンク元がなければ、リンクを削除すればいい。
3也没有多少,容易找到。
3の場合は、オブジェクトやチャートの数が少ないので探しやすい。
除了上面说的集中情况还有下面这些地方也有链接,而且当你copy-paste时很容易产生”死“链接。
上記以外、下記の所にもリンクがあり、特にコピペするときに上記のようなデッドリンクを作りかねない。
4.数据输入规则
4.データの入力規則
5.条件格式
5.条件付き書式
你只要跨文件拷贝带有输入规则的cell,就会出现死链接的问题,因为Excel只拷贝cell的内容,把输入规则链接到原来的文件中。
ほかのファイルから入力規則付のセルをコピーするとき、デッドリンクが生じる。なぜならば、エクセルはセルの内容をコピーし、入力規則を元のファイルにリンクさせるからだ。
所以,如果有一直消不掉的死链接,你可以找找4和5这类地方。
よって、もし、解除できないデッドリンクがある場合、上記4または5のところでも探して見る。

Monday, December 10, 2018

假设检验的总结/Summary of Hypothesis Test

到这里终于把下面的Hypothesis test都学完了。
不过,其实具体的做法不太重要,关键是要记住在什么情况下用什么方法就可以了(适用于什么样的数据,测试的是均值还是方差,要不要求是正规分布等等)。这个可以从网上找找其应用的例子即可。
※点下面的链接即可跳转到相应的文章。
《Rで統計学を学ぶ》有很好的参考资料。

Labels: , ,

ANalysis Of Means (ANOM)

ANOM=analysis of means这个是用来测试3个以上的样本的均值的。教材里面说是检测3个以上的样本的proportion(比例)。
在R里面没有相应的函数(似乎可以通过package追加)。在minitab中有分析方法。下面是从minitab资料里引用的。
ANOM其实是用控制图的ANOVA。其目的也是来检测多个样本的均值。但是其区别在于,ANOVA检测的是各个样本之间的统计学差异,而ANOM检测的是各个样本与总体平均的统计学差异。
Analysis of means is a graphical alternative to ANOVA that tests the equality of population means. The graph displays each factor level mean, the overall mean, and the decision limits. If a point falls outside the decision limits, then evidence exists that the factor level mean represented by that point is significantly different from the overall mean.
For example, you are investigating how temperature and additive settings affect the rating of your product. After your experiment, you use analysis of means to generate the following graph.
The top plot shows that the interaction effects are well within the decision limits, signifying no evidence of interaction. The lower two plots show the means for the levels of the two factors, with the main effect being the difference between the mean and the center line. In the lower left plot, the point representing the third mean of the factor Temperature is displayed by a red symbol, indicating that there is evidence that the Temperature 200 mean is significantly different from the overall mean at α = 0.05. The main effects for levels 1 and 3 of the Additive factor are well outside the decision limits of the lower right plot, signifying that there is evidence that these means are different from the overall mean.
Comparison of ANOM and ANOVA
ANOVA tests whether the treatment means differ from each other. ANOM tests whether the treatment means differ from the overall mean (also called the grand mean).

Often, both analyses yield similar results. However, there are some scenarios in which the results can differ:
If one group of means is above the overall mean and a different group of means is below the overall mean, ANOVA might indicate evidence for differences where ANOM might not.
If the mean of one group is separated from the other means, the ANOVA F-test might not indicate evidence for differences whereas ANOM might flag this group as being different from the overall mean.
One more important difference is that ANOVA assumes that your data follow a normal distribution, while ANOM can be used with data that follows a normal, binomial, or Poisson distribution.

Labels: , ,

Friday, December 7, 2018

Van der Waerden Normal scores test

这个Van der Waerden test是用来测试k个样本的分布是否相等。
Van der Waerden测试用来Ordinal数据,它把排序数据(rank data)转换成标准正太分布的分位数(quantile)后做测试,因此也叫normal score test。
这个R里没有对应的函数(需另外安装软件包),所以也就不必深究它的具体做法,只要记住这个是测试3个以上样本Ordinal数据分布情况的即可。

Labels: , ,

Wednesday, December 5, 2018

Kruskal-Wallis test/Friedman test

对于Ordinal Data的多群检测。可以用Kruskal-Wallis test或Friedman test来测中间值(median)的同一性。
※注意,多群检验,重复做两-两之间的两群检验是不行的,原因在学习ANOVA的时候解释过了。
如果多群是独立的数据,就用Kruskal-Wallis test
如果是相关的(paired),就用Friedman test

这里的第12.5章,有个pdf文件说的比较清楚,还有例子。
The Mann-Whitney Test looks for differences in median values between two samples.
Both the Kruskal-Wallis and Friedman Tests look for differences in median values between more than two samples.
The Kruskal-Wallis Test is used to analyse the effects of more than two levels of just one factor on the experimental result. It is the non-parametric equivalent of the One Way ANOVA.
The Friedman Test analyses the effect of two factors, and is the nonparametric
equivalent of the Two Way ANOVA.
也就是说,Kruskal-Wallis Test是测试受1个因素影响的,多个样本的median的差异(独立多群)。而Friedman Test则是2个因素(paired多群?)。
这两个检测方法都是针对Ordinal Data的,比如排序啊,满足度啊之类的顺序尺度而不是实际的数值。
例子:
对医院的12名新护士的技术水准打分,得到的结果如下:
※注意,各个组的人数完全可以不等
内科50805881
外科67697288
眼科54627577
请问这三个科室的护士技术水平有差异吗?
这个因为是受一个因素影响的,多群的平均值判定,而且是ordinal data,所以用Kruskal-Wallis Test。
因为是Ordinal data,所以计算方法如下:
1.先俺上述得分从小到大排列好,并列出其排名
科室
得分505458626769727577808188
名次123456789101112
※注:得分相同的名次按平均值计算,比如如果第3和第4得分相同,则第三第四名次都是(3+4)/2=3.5。
2.然后把各个科室的名次列出来,并计算其名次的和以及平均值

平均
内科110311256.25
外科56712307.5
眼科2489235.75
然后用如下公式计算出其H值:
其中N是数据的总个数,k是群数,Ri是各个群组的名次和。上式计算得到H=0.500。
由于有3个群组,因此自由度=(3-1)=2。
计算出H值以后,在于样本数较小的情况,Hcrit可以通过查表得到。
对于样本数较大的情况(一说大于5),Hcrit可以用Χ平方代替。
当然了,这些都很麻烦,其实用R就可以简单地计算出来了。
> vx=c(50,80,58,81)
> vy=c(67,69,72,88)
> vz=c(54,62,75,77)
> kruskal.test(x=list(vx,vy,vz))

  Kruskal-Wallis rank sum test

data: list(vx, vy, vz)
Kruskal-Wallis chi-squared = 0.5, df = 2, p-value = 0.7788
上面是直接输入数据。当然了,输入名次也可以得到相同的结果
> vx=c(1,10,3,11)
> vy=c(5,6,7,12)
> vz=c(2,4,8,9)
> kruskal.test(x=list(vx,vy,vz))

  Kruskal-Wallis rank sum test

data: list(vx, vy, vz)
Kruskal-Wallis chi-squared = 0.5, df = 2, p-value = 0.7788

下面看看Friedman test
这篇文章说的似乎比较清楚,而且和Kruskal-Wallis test进行了比较。
它说Friedman test检测的是两个要素的影响。
比如:药物的浓度和时间对细菌数量的影响。
0(h)
1(h)
2(h)
3(h)
濃度a(%)
100
90
80
73
濃度b(%)
100
80
70
60
濃度c(%)
100
60
45
34
这种情况就可以用Friedman test来做。
具体做法略过,可以用R的friedman.test来做。
> va=c(1.00, 0.90, 0.80, 0.73)
> vb=c(1.00, 0.80, 0.70, 0.60)
> vc=c(1.00, 0.60, 0.45, 0.34)
> friedman.test(y=matrix(c(va,vb,vc),ncol=3))

    Friedman rank sum test

data: matrix(c(va, vb, vc), ncol = 3)
Friedman chi-squared = 6, df = 2, p-value = 0.04979
※当然了,直接输入数字而不是百分比也是同样的结果。
> va=c(100.0, 90.0, 80.0, 73.0)
> vb=c(100.0, 80.0, 70.0, 60.0)
> vc=c(100.0, 60.0, 45.0, 34.0)
> friedman.test(y=matrix(c(va,vb,vc),ncol=3))

    Friedman rank sum test

data: matrix(c(va, vb, vc), ncol = 3)
Friedman chi-squared = 6, df = 2, p-value = 0.04979
再进一步,直接输入排序,也可以得到同样的结果。
0(h)
1(h)
2(h)
3(h)
濃度a(%)
100
90
80
73
2
35.56
濃度b(%)
100
80
70
60
2
5.579.5
濃度c(%)
100
60
45
34
2
9.51011
> va=c(2,3,5.5,6)
> vb=c(2,5.5,7,9.5)
> vc=c(2,9.5,10,11)
> friedman.test(y=matrix(c(va,vb,vc),ncol=3))

    Friedman rank sum test

data: matrix(c(va, vb, vc), ncol = 3)
Friedman chi-squared = 6, df = 2, p-value = 0.04979

https://plaza.umin.ac.jp/~health-stat/wpsystem/wp-content/uploads/2017/01/chapter8_slide.pdf
https://data-science.gr.jp/implementation/ist_r_kruskal_wallis_test.html
https://towardsdatascience.com/what-is-a-p-value-b9e6c207247f
https://towardsdatascience.com/statistical-significance-hypothesis-testing-the-normal-curve-and-p-values-93274fa32687

Labels: , ,

Levene Test

Levene Testは日本語でLeveneの等分散性検定といいます。
Leveneの等分散性検定はBartlett検定の代わりによく用いられるが、正規分布あるいはそれに近い分布の標本の等分散性検定にはBartlett検定を使った方が感度がよいと言われています。
Levene検定の帰無仮説と対立仮説は:


也就是说,Levene Test是检验多个样本的方差是否相同的检验方法,和Bartlett test一样。但是在样本不是正规分布的情况下使用。
1.Bartlett検定
母集団の分布が正規分布もしくは、正規分布に近い分布をしているときに有効な検定です。
2.Levene検定
正規分布を満たさない母集団がある場合に適用することがあります。
具体不是学统计学的,就不深究了,在R里,安装了lawstat软件包即可使用 levene.test()函数做Levene Test。这篇《Rによるルビーン検定》里介绍的相当清楚。
只要记住Levene Test是用来测多个样本之间的方差是否相同的测试即可

Labels: , ,

Tuesday, December 4, 2018

Bartlett Test

刚才的ANOVA Test是用来测试3个以上的组的平均值有无差异,现在这个Bartlett Test是用来测试3个以上的组的方差有无差异
A组301, 311, 325, 291, 388, 402, 325, 361, 287, 261, 238, 362
B组197, 180, 178, 260, 247, 199, 179, 134, 163, 200
C组209, 331, 192, 155, 234, 290, 175, 116, 285, 216, 237, 301
D组343, 247, 316, 395, 324, 138, 245, 228, 214, 374, 235
这个可以用R的bartlett.test函数来计算:
vx=c(301311325291388402325361287261238362,
 197, 180178260247199179134163200209331192155,
 234, 290175116285216237301343247316395324138,
 245, 228214374235)
> fx=factor(rep(c("A", "B", "C", "D"), c(12, 10, 12, 11)))
> bartlett.test(formula=vx~fx)

  Bartlett test of homogeneity of variances

data: vx by fx
Bartlett's K-squared = 5.2629, df = 3, p-value = 0.1535
(from here)

Labels: , ,

Sunday, December 2, 2018

ANalysis Of VAriance (ANOVA) 分散分析

注意,虽然ANOVA叫analysis of variance(分散分析)但它其实比较的是平均值
     2つの平均値の相違を検討するにはt検定を用いるが、 3つ以上の平均値の相違を検討する場合にはANOVAを用いる
    分散分析には2つ以上の変数間の相違を、全体的または同時に、さらに変数を組み合わせて検討する。
    全体的な相違が認められた場合、どこに相違があるのかも検討する。
 すべての群を比較するのではなく、要因による効果を検定する。
 従って、どの群とどの群の平均値が有意差があるかはわからない。→多重比較検定
 ↓分散を分析するのではなく、分散を用いて、多群の平均値を分析する検定法である。
 分散分析には、要因分散分析反復測定分散分析とがある。
 要因が2つ以上ある場合は、主効果だけではなく、複数の要因による交互作用を検定する。
 個々のデータを変動させている要因を分解し、分散分析表を作成して検定する。
 要因変動誤差変動から、F値をもとめる。
 ↓F値は、フィッシャーのイニシャルである。
(from here)
根据教材,ANOVA用来分析interval/ratio数据的,3个以上样本平均值有无差异。
那么为什么比较3个以上的样本,不用t-test两两比较,而要用ANOVA方法来比较呢?
比如A,B,C三个样本,彼此之间的t-test的p-value都是0.05,那么3个样本之间至少有一对之间存在有统计意义的差的概率(p-value)为:1-(1-0.05)*(1-0.05)*(1-0.05)=0.142625。

在R里有函数aov、anova和oneway.test三个函数,这篇文章这篇文章说的都比较清楚。
比如,有下面4组数据,分析他们的平均值有无差异:
A组56, 48, 72, 60, 55
B组60, 62, 76, 84
C组78, 53, 62, 44, 90, 57
D组77, 72, 83, 81, 91, 83
vx=c(56, 48, 72, 60, 55, 60, 62, 76, 84, 78, 53, 62, 44, 90, 57, 77, 72, 83, 81, 91, 83)
fx=factor(rep(c("A", "B", "C", "D"), c(5, 4, 6, 6)))
anova(aov(vx~fx))
Analysis of Variance Table

Response: vx
          Df Sum Sq Mean Sq F value Pr(>F)
fx        3  1629.2 543.06 3.9141 0.02708 *
Residuals 17 2358.6 138.74
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
Pr(>F)=0.02708,小于0.05说明有统计学意义上的差异。
用oneway.test来做可以得到同样的结果
oneway.test(vx~fx, var.equal=T)

  One-way analysis of means

data: vx and fx
F = 3.9141, num df = 3, denom df = 17, p-value =0.02708

Labels: , ,

2 proportion test

比如,按照某一流程生产10,000个零件,有100个不合格,即失败率是0.01,成功率0.99。
经过三个月的改进,这次生产力8,000个零件,有72个不合格,即失败率变成0.009,成功率为0.991。
那么,经过这次的改进,有没有效果呢?
p1=0.99,p2=0.009
用统计学的观点就是检验如下假设:
H0:p1=p2,H1:p1≠p2 (two trail)
H0:p1≥p2,H1:p1<p2 (less)
H0:p1≤p2,H1:p1>p2 (greater)
具体的计算方法就不用学了,R里面有相应的函数。
参见这里
上面这个改进,用R来分析的话,如下:
> prop.test(x = c(8000-72, 10000-100), n = c(8000, 10000),alternative = "greater")

  2-sample test for equality of proportions with
  continuity correction

data: c(8000 - 72, 10000 - 100) out of c(8000, 10000)
X-squared = 0.36989, df = 1, p-value = 0.2715
alternative hypothesis: greater
95 percent confidence interval:
-0.001498884 1.000000000
sample estimates:
prop 1 prop 2
0.991 0.990
p-value = 0.2715,大于0.05,所以改进没有效果。

同样的问题,如果经过改进,8,000个零件里只有55个不合格,即失败率变成0.006875。那么再做同样的分析:
> prop.test(x = c(8000-55, 10000-100), n = c(8000, 10000),alternative = "greater")

  2-sample test for equality of proportions with
  continuity correction

data: c(8000 - 55, 10000 - 100) out of c(8000, 10000)
X-squared = 4.7246, df = 1, p-value = 0.01487
alternative hypothesis: greater
95 percent confidence interval:
0.0007792111 1.0000000000
sample estimates:
prop 1 prop 2
0.993125 0.990000
p-value = 0.01487,小于0.05所以改进有统计学意义。

Labels: , ,